Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

チャネル フィードの一括更新

デバイスの電力を節約する場合は、特定のシナリオで一括更新 API を使用できます。一括更新 API を使用する場合は、一定期間にわたってデータを収集してからデータを ThingSpeak™ にアップロードできます。一括更新 API は、JSON または CSV でエンコードされたデータを受け取り、チャネルを更新します。

メモ

[Test Frequency][On Data Insertion] に設定して React アプリを使用する場合には、[Condition Type][Condition] に一致すると、[Condition] が複数回一致する場合でも、React は一括更新要求ごとに 1 回だけトリガーされます。

特定の [Condition Type] を指定して React を特定の [Test Frequency] で実行するように設定する場合は、React がどのようにトリガーされるかに注意してください。データは一定の期間にわたり収集され、一括で更新されます。React をトリガーする [Condition Type] は、データの 1 つのバッチ内で変わることがあります。

JSON

タイトルJSON オブジェクトを使用してチャネル フィードを一括更新するための HTTP POST 要求
URLhttps://api.thingspeak.com/channels/CHANNEL_ID/bulk_update.json
HTTP メソッドPOST
HTTP ヘッダーContent-Type: application/json
データ パラメーター{"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"},{"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"},{"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"}]}
成功応答202: Accepted
エラー コード

400: Bad request
401: Invalid API key or channel mismatch
413: Request too large
429: Too many requests

HTTP 呼び出しのサンプル

POST /channels/12/bulk_update.json HTTP/1.1
Host: api.thingspeak.com
Content-Type: application/json

{
"write_api_key":"XXXXXXXXXXXXXXXXX",
"updates":[{"created_at":"2017-01-30 10:26:21 -0500","field1":1500,"field2":150,"field3":100,"field4":100,"field5":100,"field6":100,"field7":100,"field8":100},
{"created_at":"2017-01-30 10:26:2 -0500","field1":100,"field2":150,"field3":100,"field4":100,"field5":100,"field6":100,"field7":100,"field8":100},
{"created_at":"2017-01-30 10:26:2 -0500","field1":100,"field2":150,"field3":100,"field4":100,"field5":100,"field6":100,"field7":100,"field8":100},
{"created_at":"2017-01-30 10:26:2 -0500","field1":100,"field2":150,"field3":100,"field4":100,"field5":100,"field6":100,"field7":100,"field8":100}]
}

メモCHANNEL_ID をチャネル ID に、WRITE_API_KEY をチャネルの Write API キーに置き換えます。DATETIME_STAMP は、ISO 8601EPOCH、または MYSQL の形式に従わなければなりません。

リアルタイム クロックのないデバイスでは、絶対タイムスタンプの代わりに相対タイムスタンプを使用できます。相対タイムスタンプを使用するには、updates JSON オブジェクト内で "created_at""delta_t" に置き換えます。ここで、"delta_t" は、最後の測定が記録されてから経過した秒数を表します。たとえば、updates=[{"delta_t":"0","field1":"70.5","field2":"123.4","field8":"17"},{"delta_t":"10","field1":"71.6","field2":"123.5","field8":"17"}] となります。

単一のメッセージは {"delta_t":"0","field1":"70.5","field2":"123.4","field8":"17"} という形式です。各メッセージは "created_at" パラメーターまたは "delta_t" パラメーターで開始しなければならず、それに関連付けられた相対タイムスタンプまたは絶対タイムスタンプをもたなければなりません。1 回の一括更新におけるメッセージ数は、無料ユーザーの場合は 960 件、有料ユーザーの場合は 14,400 件に制限されます。逐次一括更新呼び出しの時間間隔は、15 秒以上にする必要があります。読み取り要求の時間間隔は、いかなるユーザーに対しても ThingSpeak により制限されることはありません。

HTTP ステータス応答 202: Accepted は、サーバーがチャネル更新の要求を受け入れたことを示します。サーバーは、チャネルを有限の時間で更新します。エラー コードには、チャネル更新の要求が拒否された理由が一覧表示されます。

POSTMAN 要求のサンプル

RESTful API 呼び出しを試行するように POSTMAN を構成できます。JSON オブジェクトを使用してチャネル フィードを一括更新するように HTTP POST 要求を送信するには、次のように POSTMAN を構成します。

  • [Headers] タブで、Content-Typeapplication/json として設定します。

  • 要求の [Body]raw JSON オブジェクトとして設定します。

CSV

タイトルCSV 形式データを使用してチャネル フィードを一括更新するための HTTP POST 要求
URLhttps://api.thingspeak.com/channels/CHANNEL_ID/bulk_update
HTTP メソッドPOST
HTTP ヘッダーContent-Type: application/x-www-form-urlencoded
データ パラメーター

write_api_key = WRITE_API_KEY

time_format=absolute

updates=DATETIME_STAMP,FIELD1_VALUE,FIELD2_VALUE,FIELD3_VALUE,FIELD4_VALUE,FIELD5_VALUE,FIELD6_VALUE,FIELD7_VALUE,FIELD8_VALUE,LATITUDE,LONGITUDE,ELEVATION,STATUS | DATETIME_STAMP,FIELD1_VALUE,FIELD2_VALUE,FIELD3_VALUE,FIELD4_VALUE,FIELD5_VALUE,FIELD6_VALUE,FIELD7_VALUE,FIELD8_VALUE,LATITUDE,LONGITUDE,ELEVATION,STATUS

または

write_api_key = WRITE_API_KEY

time_format=relative

updates=SECONDS_PASSED,FIELD1_VALUE,FIELD2_VALUE,FIELD3_VALUE,FIELD4_VALUE,FIELD5_VALUE,FIELD6_VALUE,FIELD7_VALUE,FIELD8_VALUE,LATITUDE,LONGITUDE,ELEVATION,STATUS | SECONDS_PASSED,FIELD1_VALUE,FIELD2_VALUE,FIELD3_VALUE,FIELD4_VALUE,FIELD5_VALUE,FIELD6_VALUE,FIELD7_VALUE,FIELD8_VALUE,LATITUDE,LONGITUDE,ELEVATION,STATUS

成功応答202: Accepted
エラー応答

400: Bad request
401: Invalid API key or channel mismatch
413: Request too large
429: Too many requests

HTTP 呼び出しのサンプル

POST /channels/12/bulk_update.json HTTP/1.1
Host: api.thingspeak.com
Content-Type: application/x-www-form-urlencoded

write_api_key = XXXXXXXXXXXX&time_format=relative&updates=20%2C70.5%2C60%2C50%2C%2C%2C%2C%2C%2C%2C%2C500%2CfirstMessage%7C40%2C71.5%2C60.5%2C52%2C%2C%2C%2C%2C%2C%2C%2C400%2CsecondMessage%7C50%2C71.3%2C62.5%2C53%2C%2C%2C%2C%2C%2C%2C%2C450%2CthirdMessage

メモCHANNEL_ID をチャネル ID に、WRITE_API_KEY をチャネルの Write API キーに置き換えます。time_format=absolute パラメーターを使用する場合、DATETIME_STAMP は、ISO 8601EPOCH、または MYSQL の形式に従わなければなりません。%2C および %7C は、それぞれ ",""|"URL エンコード文字を表します。

リアルタイム クロックのないデバイスの場合は、絶対タイムスタンプの代わりに相対タイムスタンプを使用します。相対タイムスタンプを使用するには、time_format=relative と設定します。ここで、SECONDS_PASSED は、最後の測定が記録されてから経過した秒数を表します。たとえば、updates=20,70.5,60,50,,,,,,,,500,firstMessage | 40,71.5,60.5,52,,,,,,,,400,secondMessage は 20 秒間隔で測定された 2 つの連続したメッセージを表します。

updates パラメーター内の連続するメッセージを | によって区切ります。updates パラメーター内の 1 つのメッセージを順序付けます。たとえば、updates=2017-01-30 10:26:21 -0500,70.5,60,50,,,,,,,,500 は Field 1 を 70.5、Field 2 を 60、高度を 500 に更新します。

POSTMAN 要求のサンプル

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

関連する例

詳細