首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python集线器设备开发工具包从物联网设备检索完整的iot双设备

如何使用python集线器设备开发工具包从物联网设备检索完整的iot双设备
EN

Stack Overflow用户
提问于 2019-01-28 20:57:49
回答 1查看 616关注 0票数 0

我正在用Python语言编写一个带有iot集线器设备开发工具包的azure物联网设备应用程序。

我在应用程序中使用设备双胞胎状态所需的属性,并通过device_twin_callback()对来自azure的设备双胞胎更改进行更新。但是,当我重新配置我的设备时(例如,在重新启动时),我会得到IoT中指定的初始设备双状态,而不是DPS集线器的当前双状态。

有没有办法在IoT中使用python device SDK重新配置时检索当前设备的孪生状态?

我想要避免的一个解决方案是将设备的最后状态保存在一个文件中。

EN

回答 1

Stack Overflow用户

发布于 2019-01-29 18:29:35

有没有办法在IoT中使用python device SDK重新配置时检索当前设备的孪生状态?

你的问题不是准确性。没有其他方法可以检索当前设备的孪生状态,只有REST API Service - Get Twin及其相关的Python API iothub_twin_method.get_twin

包括在重新提供的设备状态数据中的设备twin仅取决于Reprovisioning policies的选择,如下所示。

  • Re-provision和migrate data:此策略是新注册条目的默认策略。当与注册条目关联的设备提交新请求(%1)时,此策略将执行操作。根据注册条目配置,设备可能会被重新分配到另一个IoT集线器。如果设备正在更改IoT集线器,则将删除向初始IoT集线器注册的设备。来自初始IoT集线器的更新的设备状态信息将被迁移到新的IoT集线器(2)。在迁移过程中,设备的状态将报告为Assigning.
  • Re-provision并重置为初始配置:此策略在与注册条目关联的设备提交新的资源调配请求时执行(1)。根据注册条目配置,设备可能会被重新分配到另一个IoT集线器。如果设备正在更改IoT集线器,则将删除向初始IoT集线器注册的设备。供应服务实例在设备被供应时接收的初始配置数据被提供给新的IoT集线器(2)。在迁移过程中,设备的状态将报告为正在分配。此策略通常用于出厂重置,而无需更改IoT hubs.
  • Never re-provision:设备永远不会重新分配到不同的集线器。提供此策略是为了向后管理compatibility.

使用Azure IoT SDK for Python,重置策略由ReprovisionPolicy object的参数update_hub_assignmentmigrate_device_data设置,请参考下面的解释。

将设备重新配置到IoT集线器时,

服务的行为。必须填充所有必需的参数才能发送到Azure。:param update_hub_assignment:必填。设置为true (默认值)时,设备调配服务将评估设备的IoT集线器分配,并在必要时对来自给定设备的第一个以外的任何调配请求进行更新。如果设置为false,设备将保持分配给其当前IoT集线器。默认值: True。:type update_hub_assignment: bool :param migrate_device_data:必填。设置为true (默认值)时,设备调配服务将在IoT集线器分配更新期间将设备数据(双胞胎、设备功能和设备ID)从一个IoT集线器迁移到另一个。如果设置为false,则设备配置服务会将设备数据重置为存储在相应注册列表中的初始所需配置。默认值: True。:类型migrate_device_data: bool

ReprovisionPolicy对象是在EnrollmentGroupIndividualEnrollment对象中初始化的属性。

所以请尝试修改ReprovisionPolicy的参数update_hub_assignmentmigrate_device_data的组合,以满足您的需求。否则,缓存历史数据的变通方法是唯一的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54402545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档