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 JSON Data

Escriba muchas entradas en el canal en formato JSON con un solo HTTP POST

Descripción

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

Nota

Si configura el aplicación reaccionar con el Test Frequency ajustado a 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 los Condition coincide más de una vez.

Solicitud

Método HTTP

POST

URL

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

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

Parámetros del cuerpo y miembros del objeto

El cuerpo de la operación de escritura masiva de JSON es un objeto JSON con los miembros y matrices enumerados en estas tablas.

NombreDescripciónTipo de valor
write_api_key

(Obligatorio para canales privados) Especifique la clave API de escritura para este canal específico. Puede encontrar la clave API de escritura en el API Keys pestaña de la vista del canal.

cadena

updates

(Obligatorio) Especifique la variedad de actualizaciones de su canal.

matriz de objetos JSON con los miembros que se muestran en Actualizaciones

Actualizaciones

Una actualización es una matriz JSON de objetos JSON, cada uno de los cuales tiene los siguientes pares clave-valor.

NombreDescripciónTipo de valor
created_at

(Requerido a menos que delta_t incluido) Hora absoluta del evento en formato ISO 8601, EPOCH o MYSQL. La marca de tiempo debe ser única dentro del canal.

cadena
delta_t

(Requerido a menos que created_at incluido) Especifique los segundos transcurridos desde la última entrada con delta_t. Valores para delta_t no puede ser cero, excepto el primer valor de la matriz.

cadena
field<X>

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

ningún

latitude

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

número

longitude

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

número

elevation

(Opcional) Elevación en metros

cadena

status(Opcional) Mensaje para la entrada del campo de estado<cadena>

Tipo de contenido

application/json

Formato del cuerpo

{
	"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...
		}
	]
}
Especificar formato de hora 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"
		}
	]
}
Especificar formato de hora 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"
		}
	]
}

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 sola 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 de MQTT no notifican actualizaciones al canal a partir de operaciones de escritura masiva.

  • Todos los objetos en la matriz de actualizaciones deben usar el mismo formato de hora.

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

Ejemplos

expandir todo

Puedes configurar POSTMAN para probar las llamadas a la API RESTful. Para enviar una solicitud HTTP POST para actualizar de forma masiva un feed de canal mediante un objeto JSON, configure POSTMAN como se muestra:

  1. En el Headers pestaña, configure el Content-Type como application/json.

  2. Selecciona el Body de la solicitud como raw Objeto JSON e ingrese el objeto JSON en POSTMAN.

    El formato para el POST completo se muestra aquí.

    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 respuesta es un objeto JSON que indica éxito.

Para dispositivos sin un reloj en tiempo real incorporado, puede proporcionar una marca de tiempo relativa para cada entrada. Cada entrada comienza con delta_t y enumera el tiempo en segundos desde la medición anterior.

Ingrese el código postal. El proceso exacto y el formato varían dependiendo de su 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"
		}
	]
}

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 se decrementa hacia atrás en el tiempo desde la última entrada. La respuesta a la solicitud es un objeto JSON que indica el éxito.

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