【发布时间】:2020-10-02 22:12:53
【问题描述】:
我正在开发一个 Azure IoT 应用程序。我的所有设备都连接到 Azure IoT 中心并使用设备孪生。我的问题是这样的:
如果设备脱机,然后我的后端 Web 应用程序导致设备所需的孪生属性发生更改,则设备稍后重新启动时似乎无法获取该信息。
设备如何在重启时得到这个?当设备重新启动时,我希望它检索离线时收到的所有所需属性通知。这可能吗?如果可以,有什么方法可以做到?
【问题讨论】:
-
再看看我给你的关于真机和后端同步分布式状态的回答,stackoverflow.com/questions/57288383/…在重启(rebooting)的情况下,设备应该读取所有设备所需的属性,并通过它们以过渡状态的方式进行同步。
-
是的,但是当设备在重新启动后获得所需的属性时,我认为它没有获得元数据,因此无法知道哪些所需的属性具有比报告的时间戳更新的时间戳。
-
设备连接到 Azure IoT Hub 后,设备可以从 IoT Hub 获取所需的属性。每个所需的属性都应该表示为一些状态对象,其中包含有关转换的详细信息。这个细节实际上将描述状态转换的状态。在设备和后端等末端所做的每项更改都必须经过转换,这就是我们拥有报告和所需属性的原因。
-
嗯,我相信我可能已经找到了我的问题。在我的解决方案中,当我的后端收到报告属性更改的通知时,它不会更改等效的所需属性。这是不正确的行为吗? (顺便说一句。我确实有一个 Web 应用程序,它可以从所需的属性和报告的属性中读取数据,并且对于每个属性,使用元数据显示较新的属性。)
-
由后端服务根据报告的属性对所需属性执行操作。在设备达到其状态时删除所需的属性或保留它。
标签: azure azure-iot-hub