リモート監視構成済みソリューションのデバイス情報メタデータ
Azure IoT Suite のリモート監視構成済みソリューションは、デバイス メタデータを管理するためのアプローチを示しています。 この記事では、このソリューションが理解できるようにするためのアプローチについて説明します。
- ソリューションに格納されるデバイス メタデータ。
- ソリューションがデバイス メタデータを管理する方法。
コンテキスト
リモート監視構成済みソリューションでは、Azure IoT Hub 使用して、デバイスがクラウドにデータを送信できるようにします。 ソリューションは、次の 3 つの異なる場所にデバイスに関する情報を格納します。
場所 | 格納されている情報 | 実装 |
---|---|---|
ID レジストリ | デバイス ID、認証キー、有効な状態 | IoT Hub への組み込み |
デバイス ツイン | メタデータ: 報告されたプロパティ、必要なプロパティ、タグ | IoT Hub への組み込み |
Cosmos DB(コスモス DB) | コマンドとメソッドの履歴 | ソリューションのカスタム |
IoT Hub には、IoT ハブへのアクセスを管理するための デバイス ID レジストリ が含まれており、デバイス ツイン を使用してデバイス メタデータを管理します。 コマンドとメソッドの履歴を格納するリモート監視ソリューション固有の デバイス レジストリ もあります。 リモート監視ソリューションでは、Cosmos DB データベースを使用して、コマンドとメソッドの履歴用のカスタム ストアを実装します。
注
リモート監視構成済みソリューションでは、デバイス ID レジストリと Cosmos DB データベース内の情報の同期が維持されます。 どちらも同じデバイス ID を使用して、IoT ハブに接続されている各デバイスを一意に識別します。
デバイス メタデータ
IoT Hub では、リモート監視ソリューションに接続されているシミュレートされたデバイスや物理デバイスごとに、デバイス ツイン を維持しています。 このソリューションでは、デバイス ツインを使用して、デバイスに関連付けられているメタデータを管理します。 デバイス ツインは IoT Hub によって管理される JSON ドキュメントであり、ソリューションは IoT Hub API を使用してデバイス ツインと対話します。
デバイス ツインには、次の 3 種類のメタデータが格納されます。
- 報告されたプロパティ は、デバイスによって IoT ハブに送信されます。 リモート監視ソリューションでは、シミュレートされたデバイスは起動時、およびデバイスの状態を変更する コマンドやメソッドに応答して、報告されたプロパティを送信します。 ソリューション ポータルでは、デバイスの一覧 と デバイスの詳細 に報告されたプロパティを表示できます。 報告されるプロパティは読み取り専用です。
- 必要なプロパティ は、デバイスによって IoT ハブから取得されます。 デバイスで必要な構成を変更するのは、デバイスの責任です。 また、デバイスは、変更を報告されたプロパティとしてハブに報告する必要もあります。 ソリューション ポータルを使用して、必要なプロパティ値を設定できます。
- タグ デバイス ツインにのみ存在し、デバイスと同期されることはありません。 ソリューション ポータルでタグ値を設定し、デバイスの一覧をフィルター処理するときに使用できます。 また、ソリューションでは、タグを使用して、ソリューション ポータルでデバイスに表示するアイコンを識別します。
シミュレートされたデバイスから報告されるプロパティの例には、製造元、モデル番号、緯度、経度などがあります。 シミュレートされたデバイスは、サポートされているメソッドの一覧も報告されるプロパティとして返します。
注
シミュレートされたデバイス コードでは、Desired.Config.TemperatureMeanValue のみを使用し、Desired.Config.TelemetryInterval 必要なプロパティを して、IoT Hub に送信された報告されるプロパティを更新します。 その他の必要なプロパティ変更要求はすべて無視されます。
デバイス レジストリ Cosmos DB データベースに格納されているデバイス情報メタデータ JSON ドキュメントには、次の構造があります。
{
"DeviceProperties": {
"DeviceID": "deviceid1",
"HubEnabledState": null,
"CreatedTime": "2016-04-25T23:54:01.313802Z",
"DeviceState": "normal",
"UpdatedTime": null
},
"SystemProperties": {
"ICCID": null
},
"Commands": [],
"CommandHistory": [],
"IsSimulatedDevice": false,
"id": "fe81a81c-bcbc-4970-81f4-7f12f2d8bda8"
}
注
デバイス情報には、デバイスが IoT Hub に送信するテレメトリを記述するメタデータを含めることもできます。 リモート監視ソリューションでは、このテレメトリ メタデータを使用して、動的テレメトリ ダッシュボードの表示方法をカスタマイズします。
ライフサイクル
ソリューション ポータルで最初にデバイスを作成すると、コマンドとメソッドの履歴を格納するエントリが Cosmos DB データベースに作成されます。 この時点で、ソリューションではデバイス ID レジストリにデバイスのエントリも作成されます。これにより、デバイスが IoT Hub で認証するために使用するキーが生成されます。 また、デバイスツインも作成します。
デバイスが最初にソリューションに接続すると、報告されたプロパティとデバイス情報メッセージが送信されます。 報告されたプロパティ値は、デバイス ツインに自動的に保存されます。 報告されるプロパティには、デバイスの製造元、モデル番号、シリアル番号、サポートされているメソッドの一覧が含まれます。 デバイス情報メッセージには、コマンド パラメーターに関する情報を含む、デバイスがサポートするコマンドの一覧が含まれます。 ソリューションは、このメッセージを受信すると、Cosmos DB データベース内のデバイス情報を更新します。
ソリューション ポータルでデバイス情報を表示および編集する
ソリューション ポータルのデバイスの一覧には、既定で次のデバイス プロパティが列として表示されます。状態、DeviceId、Manufacturer、Model Number、シリアル番号、ファームウェア、プラットフォーム、プロセッサ、および インストールされたRAM。 列エディターをクリックして、列をカスタマイズできます。 Bingマップ上の位置を決定するのは、緯度 と経度 のデバイスプロパティです。
ソリューション ポータルの [デバイスの詳細] ウィンドウで、必要なプロパティとタグを編集できます (報告されるプロパティは読み取り専用です)。
ソリューション ポータルを使用して、ソリューションからデバイスを削除できます。 デバイスを削除すると、ソリューションによって ID レジストリからデバイス エントリが削除され、デバイス ツインが削除されます。 このソリューションでは、Cosmos DB データベースからデバイスに関連する情報も削除されます。 デバイスを削除する前に、デバイスを無効にする必要があります。
を削除する
デバイス情報メッセージの処理
デバイスによって送信されるデバイス情報メッセージは、テレメトリ メッセージとは異なります。 デバイス情報メッセージには、デバイスが応答できるコマンドと、コマンド履歴が含まれます。 IoT Hub 自体は、デバイス情報メッセージに含まれるメタデータを認識せず、デバイスからクラウドへのメッセージを処理するのと同じ方法でメッセージを処理します。 リモート監視ソリューションでは、Azure Stream Analytics (ASA) ジョブが IoT Hub からメッセージを読み取ります。 DeviceInfo、"ObjectType": "DeviceInfo" を含むメッセージのストリーム分析ジョブ フィルターを実行し、Web ジョブで実行される EventProcessorHost ホスト インスタンスに転送します。 EventProcessorHost インスタンスのロジックでは、デバイス ID を使用して、特定のデバイスの Cosmos DB レコードを検索し、レコードを更新します。
注
デバイス情報メッセージは、標準的なデバイスからクラウドへのメッセージです。 このソリューションでは、ASA クエリを使用してデバイス情報メッセージとテレメトリ メッセージを区別します。
次のステップ
これで、構成済みソリューションをカスタマイズする方法の学習が完了しました。IoT Suite の事前構成済みソリューションのその他の機能を調べることができます。
- 予測メンテナンス構成済みソリューションの概要
- 頻繁に寄せられるIoT Suite に関する質問
- ゼロから IoT セキュリティを