はじめに
Azure IoT Hub のデバイスツインの 3 つの機能のうち、タグについてのメモです。
- 必要なプロパティ(Desired properties)
- 報告されるプロパティ(Reported properties)
- タグ(Tags)
公式ドキュメント
デバイスツインとは
"デバイスツイン" は、デバイスの状態に関する情報 (メタデータ、構成、状態など) を格納するJSONドキュメントです。
Azure IoT Hub は、IoT Hubに接続する各デバイスにデバイスツインを保持します。
デバイスツインの実態は JSON ドキュメントです。
IoT Hub に接続(登録)しているデバイスごとに JSON ドキュメントが生成されます。
デバイスツインのタグとは
タグはバックエンド アプリケーションによって設定され、デバイスに送信されることはありません。
タグはデバイスの整理に使用します。
タグを使ってデバイスを整理できます。
どのデバイスをどこに設置したか、などの情報を付与しておくと便利です。
Azureポータルでデバイスツインを開く
IoT Hub > IoTデバイス > 対象のデバイス > デバイスツイン
から開けます。
タグを設定する
タグは、デバイスツインの"tags"
プロパティに設定します。
今回は試しに自宅のセンサーを整理するためのの 3 つのプロパティを設定してみます。
- area:設置エリア
- room:部屋
- sensing-target:センサーの種類(温度・湿度 etc...)
先程開いたデバイスツインのページではそのまま JSON を編集できます。
トップレベルに以下のプロパティを追加します。
"tags": {
"location": {
"area": "tokyo",
"room": "living-room"
},
"sensingTarget": "temperature"
},
(JSON 全量はこちら)
追加するとこんな感じです。保存
を忘れずにクリックしましょう。
ちなみに、タグのネストは 10 段階までいけます。大体のケースでは十分足りるでしょう。
タグをつけたデバイスを見つける
IoT Hub には、大量のデバイスの中から対象のデバイスを見つけるために、SQL に似たクエリ言語が用意されています。
デバイスをクエリする方法
IoTHub ポータル上でデバイスをクエリする方法は 2 つあります。
- クエリエクスプローラーを使う
- クエリビルダーを使う
今回は簡単に利用できるクエリビルダーを使ってみます。
クエリビルダーの使い方
クエリビルダーは、IoTHubポータル > IoTデバイス
のページ上部に表示されています。
使い方は以下のとおりです。
- (1):クエリの条件を入力します(SQL でいうと WHERE 句に相当します)
- (2):
+
をクリックすると、AND 条件を追加できます。 - (3):
デバイスのクエリ
をクリックして、クエリを実行します。 - ((4):クエリを直接記入できるクエリエディターに切り替えることもできます)
事前にデバイスを 3 台登録しておきました。
タグの内容はこんな感じ。
デバイスID | location.area | location.room | sensingTarget |
---|---|---|---|
m5atom-lite-1 | tokyo | bed-room | temperature |
m5atom-lite-2 | tokyo | living-room | temperature |
m5atom-lite-3 | tokyo | bed-room | humidity |
クエリしてみる
東京にあるデバイスを表示してみましょう。
フィールド:tags.location.area
値:'tokyo'
(※'
も必要です!)。
クエリを実行します。
location.area
にtokyo
を登録したデバイスがすべて表示されました。
続いて、気温を測るデバイスを表示してみましょう。
フィールド:tags.sensingTarget
値:'temperature'
sensingTarget
がtemperature
のデバイスのみ表示されました。
まとめ
デバイスツインのタグを利用して、デバイスの設置場所・用途を設定しました。
また、対象のデバイスを見つけるクエリビルダーの使い方を紹介しました。