Main Content

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Bulk-Write CSV Data

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

Beschreibung

Um Gerätestrom zu sparen oder Kanalaktualisierungen zu gruppieren, können Sie die Bulk-Update-API verwenden. Wenn Sie die Massenaktualisierungs-API verwenden, sammeln Sie im Laufe der Zeit Daten und laden die Daten dann auf ThingSpeak™ hoch. Informationen zum Schreiben von Daten im JSON-Format finden Sie unter Bulk-Write JSON Data. Um einen einzelnen Eintrag zu schreiben, siehe Write Data.

Hinweis

Wenn Sie React app festlegen und Test Frequency auf On Data Insertion setzen, wird Ihre Reaktion nur einmal pro Massenschreibanforderung ausgelöst, wenn die Condition Type stimmt mit Condition überein, auch 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 spezifischen Kanal an. Der Schreib-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 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 (|). Starten Sie jedes Update mit einem absoluten Datum, 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 werden bei jedem Update nacheinander in der in der Tabelle angegebenen Reihenfolge angezeigt. In jedem Update erscheint nur eine der Zeitangaben.

NameBeschreibungWerttyp
Zeitstempel

(Erforderlich) Wenn time_format=absolute, geben Sie datetime 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

field<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ängengrad

(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 den StatusfeldeintragZeichenfolge

Körperformat

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 sequentiellen 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
Geben Sie das absolute Zeitformat an
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
Geben Sie das relative Zeitformat an
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 Massenaktualisierungsaufrufen muss 15 Sekunden oder mehr betragen.

  • MQTT-Abonnements melden keine Aktualisierungen von Massenschreibvorgängen an den Kanal.

  • Alle Aktualisierungen müssen dasselbe Zeitformat verwenden.

  • Alle Zeitstempel müssen eindeutig sein. Wenn Sie doppelte Zeitstempel einreichen, werden alle Ihre Aktualisierungen abgelehnt. Andernfalls werden nur Aktualisierungen mit Zeitstempeln, die sich bereits im Kanal befinden, abgelehnt.

Beispiele

alle erweitern

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

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

  2. Geben Sie die URL ein und ändern Sie <channel_id> in 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 Key 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 Uhr gepostet wurden, werden im Diagramm angezeigt. Der letzte Eintrag enthält den Zeitstempel für den Zeitpunkt der Übermittlung der Anfrage. Jede Aktualisierung in der Anfrage mit relativen Zeitstempeln wird vom letzten Eintrag 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-Kodierungszeichen für "," und "|" dar. jeweils.

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 Uhr gepostet wurden, werden im Diagramm angezeigt.