本ドキュメントでは、IoT Platform におけるデバイスシャドウの JSON プロパティと構造について説明します。
デバイスシャドウ JSON ドキュメントの例:
{
"state": {
"desired": {
"color": "RED",
"sequence": [
"RED",
"GREEN",
"BLUE"
]
},
"reported": {
"color": "GREEN"
}
},
"metadata": {
"desired": {
"color": {
"timestamp": 1469564492
},
"sequence": {
"timestamp": 1469564492
}
},
"reported": {
"color": {
"timestamp": 1469564492
}
}
},
"timestamp": 1469564492,
"version": 1
}
JSON プロパティについては、JSON プロパティの説明をご参照ください。
| プロパティ | 説明 |
| desired | デバイスの希望の状態です。デバイスシャドウに希望の状態がある場合にのみ、desired セクションが表示されます。 アプリケーションは、デバイスに直接接続することなくデバイスの状態を更新するために、desired セクションに書き込みます。 |
| reported | デバイスによって報告された状態です。デバイスは、自身の最新の状態を報告するために reported セクションに書き込みます。 アプリケーションは、このセクションを読み取ってデバイスの状態を取得します。 reported セクションはオプションです。デバイスシャドウは reported セクションがなくても有効です。 |
| metadata | ユーザーがデバイス状態ドキュメントを更新すると、デバイスシャドウサービスはメタデータを自動的に更新します。 デバイス状態内の各プロパティには、最後に更新された時刻を示す Epoch タイムのタイムスタンプが含まれます。 |
| timestamp | シャドウドキュメントが最後に更新された時刻です。 |
| version | ユーザーがバージョン番号を明示的に更新する場合、デバイスシャドウサービスは、リクエスト内の version 値が現在のバージョンを超えているかどうかを確認します。 超えている場合、サービスはデバイスシャドウを更新し、version をリクエストされた値に設定します。それ以外の場合、リクエストは拒否されます。 バージョンは更新のたびにインクリメントされるため、常に最新バージョンのドキュメントを確実に変更できます。 version パラメーターは long 型です。オーバーフローを防ぐには、 |
説明
デバイスシャドウは配列をサポートしていますが、配列は全体を一括で更新する必要があります。
配列データの更新例:
- 初期状態:
{ "reported" : { "colors" : [ "RED", "GREEN", "BLUE" ] } } - 更新:
{ "reported" : { "colors" : [ "RED" ] } } - 最終状態:
{ "reported" : { "colors" : [ "RED" ] } }