Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la versión original en inglés.

Bulk-Write CSV Data

Escriba muchas entradas al canal en formato CSV con un solo HTTP POST

Descripción

Para conservar la energía del dispositivo o las actualizaciones de canales grupales, puede utilizar la API de actualización masiva. Cuando utiliza la API de actualización masiva, recopila datos a lo largo del tiempo y luego los carga en ThingSpeak™. Para escribir datos en formato JSON, consulte Bulk-Write JSON Data. Para escribir una sola entrada, consulte Write Data.

Nota

Si configura React app con Test Frequency configurado en On Data Insertion, su React se activa solo una vez por solicitud de escritura masiva cuando el Condition Type coincide con el Condition, incluso si el Condition coincide más de una vez.

Pedido

Método HTTP

POST

URL

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

Parámetros de URL

NombreDescripción

<channel_id>

(Obligatorio) ID de canal para el canal de interés.

Ejemplo de URL:https://api.thingspeak.com/channels/999990/bulk_update.csv

Tipo de contenido

application/x-www-form-urlencoded

Parámetros del cuerpo

NombreDescripciónTipo de valor
write_api_key

(Obligatorio) Especifique Escribir clave API para este canal específico. La clave de API de escritura se encuentra en la pestaña API Keys de la vista del canal.

cadena

time_format

(Obligatorio) Especifique el tiempo absoluto del evento con time_format=absolute o el tiempo entre mediciones con time_format=relative.

cadena absolute o relative

updates

Datos masivos para publicar en el canal. Separe las entradas sucesivas con un carácter de barra vertical (|). Inicie cada actualización con una fecha y hora absoluta o un número de segundos. Separe los campos sucesivos con una coma

Ver Actualizar parámetros.

Actualizar parámetros

La actualización contiene los datos para publicar en tu canal. Los parámetros aparecen secuencialmente en cada actualización en el orden que se muestra en la tabla. Solo aparece una de las especificaciones de tiempo en cada actualización.

NombreDescripciónTipo de valor
marca de tiempo

(Obligatorio) Si time_format=absolute, especifique la fecha y hora en formatos ISO 8601, EPOCH o MYSQL. Si time_format=relative, especifique los segundos transcurridos desde la última entrada. La marca de tiempo debe ser única dentro del canal.

fechahora o número entero

campo<X> datos

(Obligatorio) Datos del campo X, donde X es el ID del campo

cualquier

latitud

(Obligatorio) Latitud en grados, especificada como un valor entre -90 y 90.

decimal

longitud

(Obligatorio) Longitud en grados, especificada como un valor entre -180 y 180.

decimal

elevación

(Obligatorio) Elevación en metros

entero

estado(Obligatorio) Mensaje para la entrada del campo de estadocadena

Formato del cuerpo

Cada escritura masiva de CSV contiene una clave API de escritura y una especificación de formato de hora. Cada escritura masiva puede contener varias actualizaciones. Separe las entradas sucesivas con un carácter de barra vertical (|). Proporcione datos o una entrada en blanco para cada parámetro secuencial hasta el último parámetro con datos válidos.

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
Especificar formato de hora absoluta
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
Especificar formato de hora 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

Respuesta

Éxito

Código de estado HTTP

200 OK

Cuerpo

La respuesta es un objeto JSON que indica éxito:

{
    "success": true
}

Error

Para obtener la lista completa, consulte Códigos de error.

Limitaciones

  • La cantidad de mensajes en una única actualización masiva está limitada a 960 mensajes para usuarios de cuentas gratuitas y 14,400 mensajes para usuarios de cuentas pagas. El intervalo de tiempo entre llamadas secuenciales de actualización masiva debe ser de 15 segundos o más.

  • Las suscripciones MQTT no informan actualizaciones del canal a partir de operaciones de escritura masiva.

  • Todas las actualizaciones deben utilizar el mismo formato de hora.

  • Todas las marcas de tiempo deben ser únicas. Si envía marcas de tiempo duplicadas, se rechazarán todas sus actualizaciones; de lo contrario, solo se rechazarán las actualizaciones con marcas de tiempo que ya estén en el canal.

Ejemplos

expandir todo

Puede configurar POSTMAN para probar llamadas API RESTful. Para enviar una solicitud HTTP POST para actualizar de forma masiva el feed de un canal utilizando datos con formato CSV, configure POSTMAN.

  1. Seleccione POST de la lista desplegable de verbos HTTP.

  2. Ingresa la URL, cambiando <channel_id> por el ID de tu canal.

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

  3. Seleccione x-www-form-urlencoded.

  4. Ingrese write_api_key en la sección Key e ingrese la clave API de escritura para su canal en la sección value .

  5. Ingrese time_format en la sección Key e ingrese relative en la sección value .

  6. Ingresa updates en la sección Key y luego ingresa 0,2,,,,,,,,,,,|2,2,,,,,,,,,,,|1,16,,,,,,,,,,,|2,2,,,,,,,,,,,|5,164,,,,,,,,,,,|1,22,,,,,,,,,,,|3,116,,,,,,,,,,,|

    en la sección value . Utilice una coma para cada entrada en blanco.

  7. Envía la solicitud.

La respuesta a la solicitud es un objeto JSON que indica éxito.

{
    "success": true
}

En el gráfico se muestran los seis valores publicados en una llamada al canal a las 19:07:20. La última entrada tiene la marca de tiempo del momento en que se envió la solicitud. Cada actualización en la solicitud con marcas de tiempo relativas disminuye hacia atrás en el tiempo desde la última entrada.

Para dispositivos con un reloj en tiempo real incorporado, puede proporcionar una marca de tiempo relativa para cada entrada. Especifiquetime_format=relative. Cada entrada comienza con el tiempo en segundos de la medición anterior.

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

El mensaje debe estar codificado en URL. %2C y %7C representan caracteres de codificación de URL para "," y "|" respectivamente.

La respuesta a la solicitud es un objeto JSON que indica éxito.

{
    "success": true
}
En el gráfico se muestran los seis valores publicados en una llamada al canal a las 18:05:37.