メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

Bulk-Write CSV Data

1 回の HTTP POST で多数のエントリを CSV 形式でチャネルに書き込む

説明

デバイスの電力を節約したり、チャネルの更新をグループ化したりするには、一括更新API を使用できます。一括更新API を使用する場合、一定期間にわたってデータを収集し、そのデータを ThingSpeak™ にアップロードします。JSON 形式でデータを書き込むには、Bulk-Write JSON Data を参照してください。単一のエントリを書き込むには、Write Data を参照してください。

メモ

React アプリTest FrequencyOn Data Insertion に設定した場合、Condition が複数回一致したとしても、Condition TypeCondition と一致すると、一括書き込み要求ごとに React が 1 回だけトリガーされます。

要求

HTTPメソッド

POST

URL

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

URLパラメーター

名前説明

<channel_id>

(必須) 関心のあるチャネルのチャネルID。

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

Content-Type

application/x-www-form-urlencoded

Bodyパラメーター

名前説明値のタイプ
write_api_key

(必須) この特定のチャネルの書き込み API キーを指定します。書き込み API キーは、チャネルビューの API Keys タブにあります。

string

time_format

(必須) イベントの絶対時間を time_format=absolute で指定するか、測定間の時間を time_format=relative で指定します。

文字列absolute または relative

updates

チャネルに投稿する一括データ。連続するエントリはパイプ文字 (|) で区切ります。各更新を絶対日時または秒数で開始します。連続するフィールドはコンマで区切る

パラメーターの更新を参照してください。

パラメーターの更新

アップデートには、チャネルに投稿するためのデータが含まれています。パラメーターは、表に示されている順序で各更新に連続して表示されます。各更新では、時間指定の 1 つだけが表示されます。

名前説明値のタイプ
timestamp

(必須) time_format=absolute の場合は、ISO 8601、EPOCH、または MYSQL 形式で日時を指定します。time_format=relative の場合は、最後のエントリからの経過秒数を指定します。タイムスタンプはチャネル内で一意である必要があります。

日時または整数

フィールド<X>データ

(必須) フィールドXデータ(XはフィールドID)

任意

緯度

(必須) 緯度(度)。-90 から 90 までの値として指定します。

小数

経度

(必須) 経度(度)。-180 から 180 までの値として指定します。

小数

標高

(必須)標高(メートル)

整数

ステータス(必須) ステータスフィールド入力のメッセージstring

Bodyの形式

各 CSV 一括書き込みには、書き込み API キーと時間形式の指定が含まれます。各一括書き込みには複数の更新を含めることができます。連続するエントリはパイプ文字 (|) で区切ります。有効なデータを持つ最後のパラメーターまで、各連続パラメーターにデータまたは空白のエントリを入力します。

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
絶対時間形式を指定する
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
相対時間形式を指定する
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

応答

成功

HTTPステータスコード

200 OK

Body

応答は成功を示す JSON オブジェクトです。

{
    "success": true
}

エラー

完全なリストについては、エラーコード を参照してください。

制限

  • 1 回の一括一括更新で送信できるメッセージ数は、無料アカウントのユーザーの場合は 960 件、有料アカウントのユーザーの場合は 14,400 件に制限されています。連続する一括更新呼び出し間の時間間隔は 15 秒以上である必要があります。

  • MQTT サブスクリプションは、一括書き込み操作からのチャネルへの更新を報告しません。

  • すべての更新で同じ時間形式を使用する必要があります。

  • タイムスタンプはすべて一意でなければなりません。重複したタイムスタンプを送信すると、すべての更新が拒否されます。それ以外の場合は、すでにチャネル内にあるタイムスタンプを持つ更新のみが拒否されます。

すべて展開する

RESTful API 呼び出しを試すように POSTMAN を設定できます。CSV 形式のデータを使用してチャネルフィードを一括更新の HTTP POST要求を送信するには、 POSTMANを構成します。

  1. HTTP 動詞のドロップダウン リストから POST を選択します。

  2. URL を入力し、<channel_id> を自分のチャネルID に変更します。

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

  3. x-www-form-urlencodedを選択します。

  4. Key セクションに write_api_key と入力し、value セクションにチャネルの書き込み API キーを入力します。

  5. Key セクションに time_format を入力し、value セクションに relative を入力します。

  6. Keyセクションにupdatesと入力し、次に0,2,,,,,,,,,,,|2,2,,,,,,,,,,,|1,16,,,,,,,,,,,|2,2,,,,,,,,,,,|5,164,,,,,,,,,,,|1,22,,,,,,,,,,,|3,116,,,,,,,,,,,|と入力します。

    value セクションにあります。空白のエントリごとにカンマを使用します。

  7. 要求を送信します。

要求への応答は成功を示す JSON オブジェクトです。

{
    "success": true
}

19:07:20 にチャネルへの 1 回の呼び出しで投稿された 6 つの値がプロットに表示されます。最後のエントリには、要求が送信された時刻のタイムスタンプが含まれます。相対タイムスタンプを持つ要求内の各更新は、最後のエントリから時間的に遡って減算されます。

リアルタイム クロックが組み込まれたデバイスの場合は、各エントリに相対的なタイムスタンプを提供できます。time_format=relative を指定します。各エントリは、前回の測定からの秒数で始まります。

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

メッセージは URL エンコードされている必要があります。%2C と %7C はそれぞれ、"," と "|" の URL エンコード文字を表します。

要求への応答は成功を示す JSON オブジェクトです。

{
    "success": true
}
18:05:37 にチャネルへの 1 回の呼び出しで投稿された 6 つの値がプロットに表示されます。