AWS IoT に公開している気象観測所があります。
次の形式のメッセージをシャドウ サービスに公開することにより、環境の測定値だけでなく状態も報告します。
{
"state": {
"reported": {
"temperature" : 22,
"humidity" : 70,
....
"wind" : 234,
"air" : 345
}
}
ステーションには_led1
やのようなインタラクティブなプロパティがいくつか_led2
あり、「必要な」状態を設定することで、Shadows サービスを介して報告および更新することもできます。そのために、次のようなメッセージをデバイスに送信できます。
{
"state": {
"desired": {
"_led1" : "on",
"_led2" : "off",
....
"_lock99" : "open"
}
}
シャドウ サービスのおかげで、デバイスがオンラインになるたびに同期状態を受け取り、LED とロックを目的の位置に切り替えます。
ただし、デバイスをリアルタイムで操作したい場合があります。デバイスのトラブルシューティングを行う場合、リアルタイム コマンドを送信してデバイスを再起動したい場合や、デバイスが稼働中でメッセージを受信した場合は、デバイスを再起動する必要があります。デバイスがオフラインの場合、何も起こりません (再起動コマンドがデバイスに到達することはありません)。
では、デバイスをリアルタイムで制御する最良の方法は何でしょうか? それを達成するためにまだシャドウサービスを試してみますか? または、別のトピックを作成するだけです。my-things/{thing_name}/real-time-commands
デバイスに強制的にサブスクライブさせますか?