Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

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. Lorsque vous utilisez l'API de mise à jour groupée, vous collectez des données au fil du temps, puis téléchargez les données sur ThingSpeak™. Pour écrire des données au format JSON, voir Bulk-Write JSON Data. Pour écrire une seule entrée, voir Write Data.

Remarque

Si vous définissez le React app avec le Test Frequency défini sur On Data Insertion, votre React n'est déclenché qu'une seule fois par requête d'écriture en masse lorsque le correspond au Condition, même si le Condition correspond plus d'une fois.

Requête

Méthode HTTP

POST

URL

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

Paramètres d'URL

NomDescription

<channel_id>

(Obligatoire) ID du canal pour le canal d’intérêt.

Exemple d'URL :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

(Obligatoire) Spécifiez l'heure absolue de l'événement avec time_format=absolute ou le temps entre les mesures avec time_format=relative.

chaîne de caractère absolute ou relative

updates

Données groupées à publier sur le canal. Séparez les entrées successives par un caractère barre verticale (|). Commencez chaque mise à jour avec une date/heure absolue ou un nombre de secondes. Séparez les champs successifs par une virgule

Voir 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

(Obligatoire) Si time_format=absolute, spécifiez la date/heure aux formats ISO 8601, EPOCH ou MYSQL. Si time_format=relative, précisez les secondes écoulées depuis la dernière entrée. L'horodatage doit être unique dans le canal.

dateheure ou entier

champ<X> données

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

n'importe quel

latitude

(Obligatoire) Latitude en degrés, spécifiée comme une valeur comprise entre -90 et 90.

décimal

longitude

(Obligatoire) Longitude en degrés, spécifiée comme une valeur comprise entre -180 et 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. Séparez les entrées successives par un caractère barre verticale (|). 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

Pour la liste complète, voir 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.

Exemples

développer tout

Vous pouvez configurer POSTMAN pour essayer les appels d'API RESTful. 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. Saisissez l'URL en remplaçant <channel_id> par l'ID de votre canal .

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

  3. Sélectionnez 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. Entrez time_format dans la section Key et entrez relative dans la section value.

  6. Entrez updates dans la section Key, puis entrez 0,2,,,,,,,,,,,|2,2,,,,,,,,,,,|1,16,,,,,,,,,,,|2,2,,,,,,,,,,,|5,164,,,,,,,,,,,|1,22,,,,,,,,,,,|3,116,,,,,,,,,,,|

    dans la section value. 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. Spécifieztime_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.