Main Content

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l’originale in inglese.

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

NomeDescrizione

<channel_id>

(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.

NomeDescrizioneTipo 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

Aggiornamenti

Un aggiornamento è un array JSON di oggetti JSON, ciascuno con le seguenti coppie chiave-valore.

NomeDescrizioneTipo di valore
created_at

(Obbligatorio a meno che non sia incluso delta_t ) Ora assoluta dell'evento in formato ISO 8601, EPOCH o MYSQL. Il timestamp deve essere univoco all'interno del canale.

stringa
delta_t

(Obbligatorio a meno che non sia incluso created_at ) Specificare i secondi trascorsi dall'ultima voce con delta_t. I valori per delta_t non possono essere zero, ad eccezione del primo valore nell'array.

stringa
field<X>

(Facoltativo) Dati del campo X, dove X è l'ID del campo

qualunque

latitude

(Facoltativo) Latitudine in gradi, specificata come valore compreso tra -90 e 90.

numero

longitude

(Facoltativo) Longitudine in gradi, specificata come valore compreso tra -180 e 180.

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...
		}
	]
}
Specificare il formato dell'ora 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"
		}
	]
}
Specificare il formato dell'ora 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

Codice di stato HTTP

200 OK

Corpo

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.

Esempi

espandi tutto

Puoi configurare POSTMAN per provare le chiamate API RESTful. Per inviare una richiesta HTTP POST per aggiornare in blocco un feed di canale utilizzando un oggetto JSON, configura POSTMAN come mostrato:

  1. Nella scheda Headers , imposta Content-Type come application/json.

  2. Imposta il Body della richiesta come oggetto JSON raw e inserisci l'oggetto JSON in POSTMAN.

    Il formato per il POST completo è mostrato qui.

    POST /channels/999900/bulk_update.json HTTP/1.1
    Host: api.thingspeak.com
    Content-Type: application/json
    {
    	"write_api_key": "JNWIVP3CD54ZGI9X",
    	"updates": [{
    			"created_at": "2018-01-30 10:26:2 -0500",
    			"field1": 100
    		},
    		{
    			"created_at": "2017-01-30 10:26:23 -0500",
    			"field1": "red",
    			"field2": "blue",
    			"field3": "green",
    			"field4": "fish",
    			"field5": "alimony",
    			"field6": 100,
    			"field7": 100,
    			"field8": 100,
    			"status": "good"
    		},
    		{
    			"created_at": "2018-01-30 10:26:26 -0500",
    			"field1": 1500,
    			"field2": 150,
    			"field3": 100,
    			"field4": 100,
    			"field5": 100,
    			"field6": 100,
    			"field7": 100,
    			"field8": 100,
    			"latitude": 123,
    			"longitude": 23,
    			"elevation": 34
    		}
    	]
    }
  3. La risposta è un oggetto JSON che indica il successo.

Per i dispositivi senza orologio in tempo reale integrato, è possibile fornire un timestamp relativo per ciascuna voce. Ogni voce inizia con delta_t ed elenca il tempo in secondi dalla misurazione precedente.

Inserisci il codice POST. Il processo e il formato esatti variano a seconda del cliente.

POST /channels/999900/bulk_update.json HTTP/1.1
Host: api.thingspeak.com
Content-Type: application/json
{
	"write_api_key": "XXXXXXXXXXXXXXXX",
	"updates": [{
			"delta_t": "0",
			"field1": 100
		},
		{
			"delta_t": "2",
			"field1": "200"
		},
		{
			"delta_t": "1",
			"field1": 103
		},
		{
			"delta_t": "2",
			"field1": "23"
		},
		{
			"delta_t": "1",
			"field1": 86
		},
		{
			"delta_t": "5",
			"field1": "201"
		}
	]
}

L'ultima voce riporta il timestamp relativo al momento in cui è stata inoltrata la richiesta. Ogni aggiornamento nella richiesta con relativi timestamp viene decrementato a ritroso nel tempo dall'ultima voce. La risposta alla richiesta è un oggetto JSON che indica il successo.

{
    "success": true
}
Nel grafico vengono mostrati i sei valori pubblicati in una chiamata al canale alle 18:05:37.