Bulk-Write CSV Data
Scrivere molte voci sul canale in formato CSV con un singolo POST HTTP
Descrizione
Per risparmiare energia sul dispositivo o aggiornare i canali di gruppo, puoi utilizzare l'API di aggiornamento collettivo. Quando utilizzi l'API di aggiornamento collettivo, raccogli i dati nel tempo, quindi li carichi su ThingSpeak™. Per scrivere i dati in formato JSON, vedere Bulk-Write JSON Data
. Per scrivere una singola voce, vedere Write Data
.
Nota
Se imposti React app con Test Frequency impostato su On Data Insertion, la tua React viene attivata solo una volta per richiesta di scrittura di massa quando il Condition Type corrisponde al Condition, anche se il Condition viene abbinato più di una volta.
Richiesta
Metodo HTTP
POST
URL
https://api.thingspeak.com/channels/
<channel_id>
/bulk_update.csv
Parametri URL
Nome | Descrizione |
---|---|
| (Obbligatorio) ID canale per il canale di interesse. |
Esempio URL:https://api.thingspeak.com/channels/999990/bulk_update.csv
Tipo di contenuto
application/x-www-form-urlencoded
Parametri del corpo
Nome | Descrizione | Tipo di valore |
---|---|---|
write_api_key | (Obbligatorio) Specificare la chiave API di scrittura per questo canale specifico. La chiave API di scrittura si trova nella scheda API Keys della visualizzazione canale. | stringa |
time_format | (Obbligatorio) Specificare l'ora assoluta dell'evento con | stringa |
updates | Dati in blocco da pubblicare sul canale. Separare le voci successive con un carattere pipe ( | Vedi Aggiorna parametri. |
L'aggiornamento contiene i dati da pubblicare sul tuo canale. I parametri appaiono in sequenza in ogni aggiornamento nell'ordine mostrato nella tabella. In ciascun aggiornamento viene visualizzata solo una delle specifiche temporali.
Nome | Descrizione | Tipo valore |
---|---|---|
timestamp | (Obbligatorio) Se | datetime o intero |
campo<X> dati | (Obbligatorio) Dati del campo X, dove X è l'ID del campo | qualunque |
latitudine | (Obbligatorio) Latitudine in gradi, specificata come valore compreso tra | decimale |
longitudine | (Obbligatorio) Longitudine in gradi, specificata come valore compreso tra | decimale |
elevazione | (Obbligatorio) Altitudine in metri | numero intero |
stato | (Obbligatorio) Messaggio per l'immissione nel campo stato | stringa |
Formato del corpo
Ogni scrittura in blocco CSV contiene una chiave API di scrittura e una specifica del formato dell'ora. Ogni scrittura in blocco può contenere più aggiornamenti. Separare le voci successive con un carattere pipe (|
). Fornire dati o una voce vuota per ciascun parametro sequenziale fino all'ultimo parametro con dati validi.
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
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
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
Risposta
Successo
200 OK
La risposta è un oggetto JSON che indica il successo:
{ "success": true }
Errore
Per l'elenco completo, vedere Codici di errore.
Limitazioni
Il numero di messaggi in un singolo aggiornamento collettivo è limitato a 960 messaggi per gli utenti di account gratuiti e 14.400 messaggi per gli utenti di account a pagamento. L'intervallo di tempo tra le chiamate sequenziali di aggiornamento collettivo deve essere pari o superiore a 15 secondi.
Gli abbonamenti MQTT non segnalano gli aggiornamenti al canale derivanti da operazioni di scrittura in blocco.
Tutti gli aggiornamenti devono utilizzare lo stesso formato ora.
Tutti i timestamp devono essere univoci. Se invii timestamp duplicati, tutti i tuoi aggiornamenti verranno rifiutati, altrimenti verranno rifiutati solo gli aggiornamenti con timestamp già presenti nel canale.