Main Content

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

Bulk-Write CSV Data

Écrivez de nombreuses entrées sur le canal au format CSV avec un seul HTTP POST

Description

Pour économiser l'alimentation de appareil ou les mises à jour de canal de groupe, vous pouvez utiliser l'API de mise à jour en masse. When using the bulk-update API, you collect data over time, and then upload the data to ThingSpeak™. To write data in JSON format, see Bulk-Write JSON Data. To write a single entry, see Write Data.

Nota

If you set the React app with the Test Frequency set to On Data Insertion, your React is triggered only once per bulk-write request when the Condition Type matches the Condition, even if the Condition is matched more than once.

Requête

Méthode HTTP

POST

URL

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

Paramètres d'URL

NomDescription

<channel_id>

(Required) Channel ID for the channel of interest.

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

Type de contenu

application/x-www-form-urlencoded

Paramètres du corps de la requête

NomDescriptionType de valeur
write_api_key

(Obligatoire) Spécifiez la clé d'API en écriture pour ce canal spécifique. La clé API d'écriture se trouve dans l'onglet API Keys de la vue des canaux.

chaîne de caractère

time_format

(Required) Specify absolute time of the event with time_format=absolute or time between measurements with time_format=relative.

string absolute or relative

updates

Données groupées à publier sur le canal. Separate successive entries with a pipe character (|). Commencez chaque mise à jour avec une date/heure absolue ou un nombre de secondes. Séparez les champs successifs par une virgule

See Paramètres de mise à jour.

Paramètres de mise à jour

La mise à jour contient les données à publier sur votre canal. Les paramètres apparaissent séquentiellement dans chaque mise à jour dans l'ordre indiqué dans le tableau. Une seule des spécifications de temps apparaît dans chaque mise à jour.

NomDescriptionType de valeur
horodatage

(Required) If time_format=absolute, specify datetime in ISO 8601, EPOCH, or MYSQL formats. If time_format=relative, specify seconds elapsed since last entry. L'horodatage doit être unique dans le canal.

dateheure ou entier

field<X> data

(Obligatoire) Données du champ X, où X est l'ID du champ

n'importe quel

latitude

(Required) Latitude in degrees, specified as a value between -90 and 90.

décimal

longitude

(Required) Longitude in degrees, specified as a value between -180 and 180.

décimal

élévation

(Obligatoire) Altitude en mètres

entier

statut(Obligatoire) Message pour la saisie du champ d'étatchaîne de caractère

Format du corps

Chaque écriture groupée CSV contient une clé d'API en écriture et une spécification de format d'heure. Chaque écriture en bloc peut contenir plusieurs mises à jour. Separate successive entries with a pipe character (|). Fournissez des données ou une entrée vide pour chaque paramètre séquentiel jusqu'au dernier paramètre avec des données valides.

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
Spécifier le format d'heure absolue
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
Spécifier le format d'heure relative
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

Réponse

Succès

Code HTTP Status

200 OK

Corps

La réponse est un objet JSON indiquant le succès :

{
    "success": true
}

Erreur

For the full list, see Codes d'erreur.

Limites

  • Le nombre de messages dans une seule mise à jour groupée est limité à 960 messages pour les utilisateurs de comptes gratuits et 14 400 messages pour les utilisateurs de comptes payants. L'intervalle de temps entre les appels séquentiels de mise à jour en bloc doit être de 15 secondes ou plus.

  • Les abonnements MQTT ne signalent pas les mises à jour du canal à partir des opérations d'écriture en masse.

  • Toutes les mises à jour doivent utiliser le même format d'heure.

  • Tous les horodatages doivent être uniques. Si vous soumettez des horodatages en double, toutes vos mises à jour sont rejetées, sinon seules les mises à jour avec des horodatages déjà dans le canal sont rejetées.

Esempi

espandi tutto

You can configure POSTMAN to try RESTful API calls. Pour envoyer une requête HTTP POST afin de mettre à jour en bloc un flux du canal à l'aide de données au format CSV, configurez POSTMAN.

  1. Sélectionnez POST dans la liste déroulante des verbes HTTP.

  2. Enter the URL, changing <channel_id> to your channel ID.

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

  3. Select x-www-form-urlencoded.

  4. Entrez write_api_key dans la section Key et entrez la clé API d'écriture de votre canal dans la section value.

  5. Enter time_format in the Key section, and enter relative in the value section.

  6. Enter updates in the Key section and then enter 0,2,,,,,,,,,,,|2,2,,,,,,,,,,,|1,16,,,,,,,,,,,|2,2,,,,,,,,,,,|5,164,,,,,,,,,,,|1,22,,,,,,,,,,,|3,116,,,,,,,,,,,|

    in the value section. Utilisez une virgule pour chaque entrée vide.

  7. Envoyez la requête.

La réponse à la requête est un objet JSON indiquant le succès.

{
    "success": true
}

Les six valeurs affichées dans un appel au canal à 19:07:20 sont affichées dans le graphique. La dernière entrée a l'horodatage de l'heure à laquelle la requête a été soumise. Chaque mise à jour dans la requête avec des horodatages relatifs est décrémentée dans le temps à partir de la dernière entrée.

Pour les appareils dotés d'une horloge en temps réel intégrée, vous pouvez fournir un horodatage relatif pour chaque entrée. Specifytime_format=relative. Chaque entrée commence par le temps en secondes depuis la mesure précédente.

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

Le message doit être encodé en URL. %2C et %7C représentent les caractères d'encodage d'URL pour "," et "|" respectivement.

La réponse à la requête est un objet JSON indiquant le succès.

{
    "success": true
}
Les six valeurs affichées dans un appel au canal à 18:05:37 sont affichées dans le graphique.