このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
チャネル フィードの一括更新
デバイスの電力を節約する場合は、特定のシナリオで一括更新 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 要求 |
---|---|
URL | https://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 |
エラー コード |
|
HTTP 呼び出しのサンプル |
{ "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 8601 、EPOCH 、または 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-Type
をapplication/json
として設定します。要求の [Body] を
raw
JSON オブジェクトとして設定します。
CSV
タイトル | CSV 形式データを使用してチャネル フィードを一括更新するための HTTP POST 要求 |
---|---|
URL | https://api.thingspeak.com/channels/CHANNEL_ID/bulk_update |
HTTP メソッド | POST |
HTTP ヘッダー | Content-Type: application/x-www-form-urlencoded |
データ パラメーター |
または
|
成功応答 | 202: Accepted |
エラー応答 |
|
HTTP 呼び出しのサンプル |
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
8601 、EPOCH 、または 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 を構成します。
関連する例
- Arduino MKR1000 ボードまたは ESP8266 ボードを使用して継続的にデータを収集し、ThingSpeak チャネルを一括更新
- Particle Photon ボードを使用してデータを継続的に収集し、ThingSpeak チャネルを一括更新
- Raspberry Pi ボードを使用してデータを継続的に収集し、ThingSpeak チャネルを一括更新