Bulk-Write JSON Data
Scrivi molte voci sul canale in formato JSON 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 CSV, vedere Bulk-Write CSV 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.json
Parametri URL
Nome | Descrizione |
---|---|
| (Obbligatorio) ID canale per il canale di interesse. |
Esempio URL: https://api.thingspeak.com/channels/999990/bulk_update.json
Parametri del corpo e membri dell'oggetto
Il corpo dell'operazione di scrittura JSON in blocco è un oggetto JSON con i membri e gli array elencati in queste tabelle.
Nome | Descrizione | Tipo di valore |
---|---|---|
write_api_key | (Obbligatorio per i canali privati) Specificare la chiave API di scrittura per questo canale specifico. Puoi trovare la chiave API di scrittura nella scheda API Keys della visualizzazione del canale. | stringa |
updates | (Obbligatorio) Specifica la gamma di aggiornamenti per il tuo canale. | array di oggetti JSON con i membri mostrati in Aggiornamenti |
Un aggiornamento è un array JSON di oggetti JSON, ciascuno con le seguenti coppie chiave-valore.
Nome | Descrizione | Tipo di valore |
---|---|---|
created_at | (Obbligatorio a meno che non sia incluso | stringa |
delta_t | (Obbligatorio a meno che non sia incluso | stringa |
field | (Facoltativo) Dati del campo X, dove X è l'ID del campo | qualunque |
latitude | (Facoltativo) Latitudine in gradi, specificata come valore compreso tra | numero |
longitude | (Facoltativo) Longitudine in gradi, specificata come valore compreso tra | numero |
elevation | (Facoltativo) Altitudine in metri | stringa |
status | (Facoltativo) Messaggio per l'immissione nel campo stato | <stringa> |
Tipo di contenuto
application/json
Formato del corpo
{ "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... } ] }
created_at
{ "write_api_key": "WRITE_API_KEY", "updates": [{ "created_at": "2018-01-30 10:26:2 -0500", "field1": "1.0", "field2": "2.0" }, { "created_at": "2018-02-02 11:27:27 -0500", "field1": "1.1", "field2": "2.2", "status": "well done" } ] }
delta_t
{ "write_api_key": "WRITE_API_KEY", "updates": [{ "delta_t": 4, "field1": 1.0, "field2": "2.0" }, { "delta_t": 2, "field1": 1.1, "field2": 2.2, "elevation": 6, "status": "Good" } ] }
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 di 15 secondi o più.
Gli abbonamenti MQTT non segnalano gli aggiornamenti al canale derivanti dalle operazioni di scrittura in blocco.
Tutti gli oggetti nell'array degli 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.