Gravio 4のHTTP Requestでセンサーからの情報をhttpbinに送って確認してみる
Gravio 4はHTTP Requestコンポーネントを使ってクラウドのサービスなどにセンサーデータを送ることができる。
その際、うまくデータが送れているのかを確認する方法はいくつかあるが、httpbin.orgというサービスにリクエストを投げてみるとうまく送れているのかどうかがわりと簡単に確認できるのでやってみる。
使用環境
- Raspberry Pi 4 Model B w/4GB RAM
- Ubuntu Server 20.04.1 LTS
- Gravio HubKit v4.1.0-6380
- Gravio Studio v4.1.5432.0
手順
アクションを作成し、HTTP Requestコンポーネントを追加する。
プロパティには以下の値を設定する。URLなどはいろいろ試したい内容によって変わるので、本家のサイトを見てみてください。
プロパティ | 値 |
---|---|
HTTPメソッド | POST |
URL | https://httpbin.org/post |
Content-Type | (デフォルト) |
Pre Mappingsでは、ボディにJSON形式でセンサー情報を送るために、cv.Payload
に次の値を設定してみます。
{"AreaId": tv.AreaId, "AreaName": tv.AreaName, "LayerId": tv.LayerId, "LayerName": tv.LayerName, "KindId": tv.KindId, "KindName": tv.KindName, "PhysicalDeviceId": tv.PhysicalDeviceId, "PhysicalDeviceName": tv.PhysicalDeviceName, "Timestamp": tv.Timestamp, "DataId": tv.DataId, "Data": tv.Data, "KeyAreaName": tp.KeyAreaName, "KeyLayerName": tp.KeyLayerName, "TriggerName": tp.TriggerName}
センサー情報はトリガー変数とトリガープロパティから取得します。tv.
で始まるのがトリガー変数、tp.
で始まるのがトリガープロパティです。トリガープロパティではトリガーの情報が定義されていますが、トリガー内で宣言しないと使えませんのであとで説明します。
トリガー変数は以下のようになっています。詳しくは「アクション内で利用できる変数と変数型」を参考にしてください。
トリガー変数名 | 説明 |
---|---|
tv.AreaId | エリアID |
tv.AreaName | エリア名 |
tv.LayerId | レイヤーID |
tv.LayerName | レイヤー名 |
tv.KindId | データ種別ID |
tv.KindName | データ種別名 |
tv.PhysicalDeviceId | センサーの物理デバイスID |
tv.PhysicalDeviceName | センサーの物理デバイス名 |
tv.Timestamp | センサーからデータが出力されたときの時刻。フォーマットはRFC3339Nano |
tv.DataId | このセンサーデータ固有ID |
tv.Data | センサーデータの値。tv.Dataは最初のコンポーネントのcv.Payloadと同じになります |
トリガープロパティ名 | 説明 |
---|---|
tp.KeyAreaName | エリア名。tv.AreaName と同じです |
tp.KeyLayerName | キーレイヤー名。tv.LayerName と同じです |
tp.TriggerName | トリガー名 |
実行してみます。
httpbin.orgからのレスポンスがログに表示されます。jsonの値が送った内容ですね。Studioから実行したので、各データにはダミーのデータが入ってます。トリガープロパティは宣言されてないのでnull
ですね。
試しにCO2の値をキーにトリガーを設定してみます。
今度はアクションのコンソールがないのでHTTP Requestの設定でダンプをログに出力しておきます。
ログビューアーを見るとちゃんとした値が設定されてます。ログビューアーだと逆順に表示されるので少し見づらいですが、もし必要ならログファイルを直接確認してみてください。
参考
(2021/2/10修正)
いくつかのトリガー変数が漏れていたので追加しました
Author And Source
この問題について(Gravio 4のHTTP Requestでセンサーからの情報をhttpbinに送って確認してみる), 我々は、より多くの情報をここで見つけました https://qiita.com/zrock/items/7e17b44971ce5fa261bc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .