Hauptinhalt

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um das englische Original zu sehen.

Bulk-Write CSV Data

Schreiben Sie viele Einträge im CSV-Format mit einem einzigen HTTP POST in den Kanal

Beschreibung

Um Gerätestrom zu sparen oder Kanalaktualisierungen zu gruppieren, können Sie die API für Massenaktualisierungen verwenden. Wenn Sie die API für Massenaktualisierungen verwenden, sammeln Sie im Laufe der Zeit Daten und laden die Daten dann in ThingSpeak™ hoch. Informationen zum Schreiben von Daten im JSON-Format finden Sie unter Bulk-Write JSON Data. Informationen zum Schreiben eines einzelnen Eintrags finden Sie unter Write Data.

Hinweis

Wenn Sie die React-App mit Test Frequency auf On Data Insertion setzen, wird Ihr React nur einmal pro Massenschreibanforderung ausgelöst, wenn Condition Type mit Condition übereinstimmt, selbst wenn Condition mehr als einmal übereinstimmt.

Anfrage

HTTP-Methode

POST

URL

https://api.thingspeak.com/channels/<channel_id>/bulk_update.csv

URL-Parameter

NameBeschreibung

<channel_id>

(Erforderlich) Kanal-ID für den gewünschten Kanal.

URL-Beispiel:https://api.thingspeak.com/channels/999990/bulk_update.csv

Inhaltstyp

application/x-www-form-urlencoded

Körperparameter

NameBeschreibungWerttyp
write_api_key

(Erforderlich) Geben Sie den Schreib-API-Schlüssel für diesen bestimmten Kanal an. Der Write-API-Schlüssel befindet sich auf der Registerkarte API Keys der Kanalansicht.

Zeichenfolge

time_format

(Erforderlich) Geben Sie die absolute Zeit des Ereignisses mit time_format=absolute oder die Zeit zwischen den Messungen mit time_format=relative an.

Zeichenfolge absolute oder relative

updates

Massendaten zum Posten im Kanal. Trennen Sie aufeinanderfolgende Einträge mit einem Pipe-Zeichen (|). Beginnen Sie jedes Update mit einem absoluten Datum und einer Uhrzeit oder einer Anzahl von Sekunden. Trennen Sie aufeinanderfolgende Felder durch ein Komma

Siehe Parameter aktualisieren.

Parameter aktualisieren

Das Update enthält die Daten, die Sie auf Ihrem Kanal veröffentlichen können. Die Parameter erscheinen in jedem Update nacheinander in der in der Tabelle angegebenen Reihenfolge. In jedem Update erscheint nur eine der Zeitangaben.

NameBeschreibungWerttyp
Zeitstempel

(Erforderlich) Wenn time_format=absolute, geben Sie Datum und Uhrzeit in den Formaten ISO 8601, EPOCH oder MYSQL an. Wenn time_format=relative, geben Sie die seit der letzten Eingabe verstrichenen Sekunden an. Der Zeitstempel muss innerhalb des Kanals eindeutig sein.

Datum/Uhrzeit oder Ganzzahl

Feld <X> Daten

(Erforderlich) Feld X-Daten, wobei X die Feld-ID ist

beliebig

Breite

(Erforderlich) Breitengrad in Grad, angegeben als Wert zwischen -90 und 90.

dezimal

Länge

(Erforderlich) Längengrad in Grad, angegeben als Wert zwischen -180 und 180.

dezimal

Elevation

(Erforderlich) Höhe in Metern

ganze Zahl

Status(Erforderlich) Nachricht für StatusfeldeintragZeichenfolge

Körper-Format

Jeder CSV-Massenschreibvorgang enthält einen Schreib-API-Schlüssel und eine Zeitformatspezifikation. Jeder Massenschreibvorgang kann mehrere Aktualisierungen enthalten. Trennen Sie aufeinanderfolgende Einträge mit einem Pipe-Zeichen (|). Geben Sie für jeden aufeinanderfolgenden Parameter bis zum letzten Parameter mit gültigen Daten Daten oder einen leeren Eintrag an.

write_api_key=WRITE_API_KEY&time_format=TIME_FORMAT&updates=TIMESTAMP,FIELD1_VALUE,FIELD2_VALUE,FIELD3_VALUE,FIELD4_VALUE,FIELD5_VALUE,FIELD6_VALUE,FIELD7_VALUE,FIELD8_VALUE,LATITUDE,LONGITUDE,ELEVATION,STATUS | DATETIME_STAMP_OR_SECONDS_FROM_LAST_ENTRY,FIELD1_VALUE,FIELD2_VALUE,FIELD3_VALUE,FIELD4_VALUE,FIELD5_VALUE,FIELD6_VALUE,FIELD7_VALUE,FIELD8_VALUE,LATITUDE,LONGITUDE,ELEVATION,STATUS
Absolutes Zeitformat angeben
write_api_key=XXXXXXXXXXXXXXXX&time_format=absolute&updates=2018-06-14T12:12:22-0500,1,,3,0.4,1.5,1.6,,1.8,40.0,5.4,0,wet|2018-01-30T10:26:23-0500,1.2,2.3,3,4,5,6,7,8,42.0,0.5,50,falling
Relatives Zeitformat angeben
write_api_key=XXXXXXXXXXXXXXXX&time_format=relative&updates=4,1.1,2,0.3,,,6,7.7,0.8,41.2,19.5,100,ok|3,1,2,3,4,5,6,7,8,41.2,25.1,110,rising

Antwort

Erfolg

HTTP-Statuscode

200 OK

Körper

Die Antwort ist ein JSON-Objekt, das den Erfolg anzeigt:

{
    "success": true
}

Fehler

Die vollständige Liste finden Sie unter Fehlercodes.

Einschränkungen

  • Die Anzahl der Nachrichten in einem einzelnen Massenupdate ist auf 960 Nachrichten für Benutzer kostenloser Konten und 14.400 Nachrichten für Benutzer kostenpflichtiger Konten begrenzt. Das Zeitintervall zwischen aufeinanderfolgenden Bulk-Update-Aufrufen muss mindestens 15 Sekunden betragen.

  • MQTT-Abonnements melden dem Kanal keine Aktualisierungen aus Massenschreibvorgängen.

  • Alle Updates müssen dasselbe Zeitformat verwenden.

  • Alle Zeitstempel müssen eindeutig sein. Wenn Sie doppelte Zeitstempel übermitteln, werden alle Ihre Aktualisierungen abgelehnt, andernfalls werden nur Aktualisierungen abgelehnt, deren Zeitstempel sich bereits im Kanal befinden.

Beispiele

alle erweitern

Sie können POSTMAN so konfigurieren, dass RESTful-API-Aufrufe ausprobiert werden. Um eine HTTP-POST-Anfrage zum Massenupdate eines Kanal-Feeds mithilfe von Daten im CSV-Format zu senden, konfigurieren Sie POSTMAN.

  1. Wählen Sie POST aus der Dropdownliste der HTTP-Verben aus.

  2. Geben Sie die URL ein und ersetzen Sie <channel_id> durch Ihre Kanal-ID.

    https://api.thingspeak.com/channels/<channel_id>/bulk_update.csv

  3. Wählen Sie x-www-form-urlencoded.

  4. Geben Sie write_api_key im Abschnitt Key ein und geben Sie den Write-API-Schlüssel für Ihren Kanal im Abschnitt value ein.

  5. Geben Sie time_format im Abschnitt Key und relative im Abschnitt value ein.

  6. Geben Sie updates im Abschnitt Key ein und geben Sie dann 0,2,,,,,,,,,,,|2,2,,,,,,,,,,,|1,16,,,,,,,,,,,|2,2,,,,,,,,,,,|5,164,,,,,,,,,,,|1,22,,,,,,,,,,,|3,116,,,,,,,,,,,| ein

    im Abschnitt value. Verwenden Sie für jeden leeren Eintrag ein Komma.

  7. Senden Sie die Anfrage.

Die Antwort auf die Anfrage ist ein JSON-Objekt, das den Erfolg anzeigt.

{
    "success": true
}

Die sechs Werte, die in einem Aufruf des Kanals um 19:07:20 gepostet wurden, werden im Diagramm angezeigt. Der letzte Eintrag enthält den Zeitstempel für den Zeitpunkt der Übermittlung der Anfrage. Jedes Update in der Anfrage mit relativen Zeitstempeln wird vom letzten Eintrag aus zeitlich rückwärts dekrementiert.

Bei Geräten mit integrierter Echtzeituhr können Sie für jeden Eintrag einen relativen Zeitstempel angeben. Geben Sie time_format=relative an. Jeder Eintrag beginnt mit der Zeit in Sekunden seit der vorherigen Messung.

POST /channels/266256/bulk_update.csv HTTP/1.1
Host: api.thingspeak.com
Content-Type: application/x-www-form-urlencoded
time_format: relative


write_api_key=JNWIVP3CD54ZGI9X&time_format=absolute&updates=2018-01-30T10%3A26%3A2-0500%2C2%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%7C2018-01-30+10%3A26%3A23-0500%2C2%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%7C2018-01-31+10%3A27%3A2-0500%2C16%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%7C2018-01-31+11%3A26%3A32-0500%2C2%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%7C2018-01-31+11%3A27%3A22-0500%2C164%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C

Die Nachricht muss URL-codiert sein. %2C und %7C stellen URL-Codierungszeichen für "," bzw. "|" dar.

Die Antwort auf die Anfrage ist ein JSON-Objekt, das den Erfolg anzeigt.

{
    "success": true
}
Die sechs Werte, die in einem Aufruf des Kanals um 18:05:37 gepostet wurden, werden im Diagramm angezeigt.