Bulk-Write CSV Data
Scrivere molte voci sul canale in formato CSV con un singolo HTTP POST
Descrizione
Per risparmiare energia del dispositivo o per raggruppare gli aggiornamenti dei canali, puoi utilizzare l'API di aggiornamento in blocco. Quando si utilizza l'API di aggiornamento in blocco, si raccolgono dati nel tempo e poi si caricano i dati su ThingSpeak™. Per scrivere dati in formato JSON, vedere Bulk-Write JSON Data. Per scrivere una singola voce, vedere Write Data.
Nota
Se imposti l'app React con Test Frequency impostato su On Data Insertion, React viene attivato solo una volta per richiesta di scrittura in blocco quando Condition Type corrisponde a Condition, anche se Condition corrisponde 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 del canale di interesse. |
Esempio di 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 vista canale. | stringa |
time_format | (Obbligatorio) Specificare il tempo assoluto dell'evento con | stringa |
updates | Dati in blocco da post sul canale. Separare le voci successive con un carattere barra verticale ( | Vedi Aggiornamento parametri. |
L'aggiornamento contiene i dati da post sul tuo canale. I parametri vengono visualizzati in sequenza in ogni aggiornamento, nell'ordine indicato nella tabella. In ogni aggiornamento compare solo una delle specifiche temporali.
| Nome | Descrizione | Tipo di valore |
|---|---|---|
| marca temporale | (Obbligatorio) Se | data e ora 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 | intero |
| stato | (Obbligatorio) Messaggio per l'immissione del campo di 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 barra verticale (|). Fornire dati o una voce vuota per ogni 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,STATUSwrite_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 di massa è limitato a 960 messaggi per gli utenti di account gratuiti e a 14.400 messaggi per gli utenti di account a pagamento. L'intervallo di tempo tra le chiamate sequenziali di aggiornamento in blocco deve essere di almeno 15 secondi.
Gli abbonamenti MQTT non segnalano gli aggiornamenti al canale derivanti dalle operazioni di scrittura in blocco.
Tutti gli aggiornamenti devono utilizzare lo stesso formato orario.
Tutti i timestamp devono essere univoci. Se invii timestamp duplicati, tutti gli aggiornamenti verranno rifiutati, altrimenti verranno rifiutati solo gli aggiornamenti con timestamp già presenti nel canale.


