我有一个发布到 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
并强制设备订阅它?