Main Content

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

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

NomeDescrizione

<channel_id>

(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

NomeDescrizioneTipo 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 time_format=absolute o il tempo tra le misurazioni con time_format=relative.

stringa absolute oppure relative

updates

Dati in blocco da pubblicare sul canale. Separare le voci successive con un carattere pipe (|). Avvia ogni aggiornamento con una data/ora assoluta o un numero di secondi. Separare i campi successivi con una virgola

Vedi Aggiorna parametri.

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.

NomeDescrizioneTipo valore
timestamp

(Obbligatorio) Se time_format=absolute, specificare data e ora nei formati ISO 8601, EPOCH o MYSQL. Se time_format=relative, specificare i secondi trascorsi dall'ultima immissione. Il timestamp deve essere univoco all'interno del canale.

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 -90 e 90.

decimale

longitudine

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

decimale

elevazione

(Obbligatorio) Altitudine in metri

numero intero

stato(Obbligatorio) Messaggio per l'immissione nel campo statostringa

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
Specificare il formato dell'ora assoluta
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
Specificare il formato dell'ora relativa
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

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

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 dati in formato CSV, configura POSTMAN.

  1. Seleziona POST dall'elenco a discesa dei verbi HTTP.

  2. Inserisci l'URL, sostituendo <channel_id> con l'ID del tuo canale.

    https://api.thingspeak.com/channels/<channel_id>/bulk_update.csv

  3. Selezionare x-www-form-urlencoded.

  4. Inserisci write_api_key nella sezione Key e inserisci la chiave API di scrittura per il tuo canale nella sezione value .

  5. Inserisci time_format nella sezione Key e relative nella sezione value .

  6. Inserisci updates nella sezione Key e poi inserisci 0,2,,,,,,,,,,,|2,2,,,,,,,,,,,|1,16,,,,,,,,,,,|2,2,,,,,,,,,,,|5,164,,,,,,,,,,,|1,22,,,,,,,,,,,|3,116,,,,,,,,,,,|

    nella sezione value . Utilizza una virgola per ogni voce vuota.

  7. Invia la richiesta.

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 19:07:20. L'ultima voce riporta il timestamp relativo al momento in cui è stata inoltrata la richiesta. Ogni aggiornamento nella richiesta con relative marche temporali viene decrementato a ritroso nel tempo dall'ultima voce.

Per i dispositivi dotati di orologio in tempo reale integrato, è possibile fornire un timestamp relativo per ciascuna voce. Specificaretime_format=relative. Ogni immissione inizia con il tempo in secondi dalla misurazione precedente.

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

Il messaggio deve essere codificato in URL. %2C e %7C rappresentano i caratteri di codifica URL per "," e "|" rispettivamente.

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.