Wie ein JSON-Patch erstellt wird, kann man hier nachlesen. Nach diesem Format soll der JSON-Patch aussehen:

Content-Type
application/json
Body Format
{
	"write_api_key": "WRITE_API_KEY",
	"updates": [{
			"created_at": "DATETIME_STAMP",
			"field1": FIELD1_VALUE,
			"field2": FIELD2_VALUE,
			"field3": FIELD3_VALUE,
			"field4": FIELD4_VALUE,
			"field5": FIELD5_VALUE,
			"field6": FIELD6_VALUE,
			"field7": FIELD7_VALUE,
			"field8": FIELD8_VALUE,
			"Latitude": LATITUDE_VALUE,
			"Longitude": LONGITUDE_VALUE,
			"Elevation": ELEVATION_VALUE,
			"Status": "STATUS_STRING"
		},
		{
			"created_at": "DATETIME_STAMP",
			"field1": "FIELD1_VALUE",
			Etc...
		}
	]
}

Im vorherigen Kapitel ist der Abbildung "Bulkupload" zu sehen, dass vorher der Header "applications/json" hinzugefügt wird. Darauf wird der Rest in folgender Funktion erstellt: Im Body der JSON wird der API-Key zu einem stehen und dann das eigentlich Update also die Änderungen für die Fields.

Beim Update steht zuerst das Datum mit Uhrzeit, und dann wird der Lichtwert in field1 geschrieben. Dies wiederholt sich bis alle Lichtwerte im Patch vorhanden sind. Die einzelnen Werte werden mit einem Komma im Update getrennt, wie es oben in der Abbildung zu sehen ist.

String createJsonPatch(unsigned int counter, time_t now)
{
  String jsonString = "{\"write_api_key\": \"3GJ2Z7R6882OH85D\", \"updates\": [";
  for(int i = 0; i < counter; i++)
  {
    unsigned int storedLuxValue;
    EEPROM.get(0 + sizeof(unsigned int) + sizeof(unsigned int) + i * sizeof(unsigned int), storedLuxValue);
    time_t timestampOfLuxValue = now - ((counter - i - 1) * SLEEPTIME / (1e6));

    //Convert timestamp to ISO 8601 format:
    char convertedTimestamp[sizeof "2011-10-08T07:07:09Z"];
    strftime(convertedTimestamp, sizeof convertedTimestamp, "%FT%TZ", localtime(&timestampOfLuxValue));
    jsonString = jsonString + "(\"created_at\": \"" + convertedTimestamp + "\",\"field1\": " + storedLuxValue + "}";
    if(i < counter - 1)
    {
      jsonString = jsonString + ",";
    }
  }
  jsonString = jsonString + "]}";
  Serial.println(jsonString);
  return jsonString;
}
Zuletzt geändert: Donnerstag, 28. April 2022, 15:12