如何将 Azure IoT 中心设备孪生与设备更改同步?
How to syncronize Azure IoT Hub device twin with device changes?
对于我们的 IoT 解决方案,我们正在尝试解决设备孪生的同步问题。
在正常情况下,云是负责的。因此,云将在 IoT 中心设备孪生中设置所需的 属性。设备将收到通知,更改设备上的 属性 并写入报告的 属性 设备已同步。
但对于我们的案例,设备的用户也可以在本地更改属性。因此,在这种情况下,报告的 属性 将发生变化并且与所需的不同步。
我们应该如何处理?更新所需的?保持原样?
还有一种情况是可以从两侧删除属性。见附件
Writen use cases
这里是 json 双胞胎的例子:
"desired" : {
"recipes" : {
"recipe1" : {
"uri" : "blob.name.csv",
"version" : "1"
},{
"recipe2" : {
"uri" : "blob.name.csv",
"version" : "1"
},{
"recipe3" : {
"uri" : "blob.name.csv",
"version" : "1"
}
}
},
"reported" : {
"recipes" : {
"recipe1" : {
"uri" : "blob.name.csv",
"version" : "1"
},{
"recipe2" : {
"uri" : "blob.name.csv",
"version" : "3"
},{
"recipe3" : {
"uri" : "blob.name.csv",
"version" : "2"
}
}
我希望问题很清楚。提前致谢。
亲切的问候,
马克
解决冲突的方法因业务而异,无法定义通用规则。在某些情况下,用户意图比服务更重要,反之亦然。
例如,一个工作到很晚的员工想要 76F 的办公室温度,而自动建筑管理服务想要 70F 的非工作时间温度,在这种情况下,用户获胜(期望 属性 被丢弃)。在另一个示例中,一名员工想在下班时间进入办公大楼并打开所有灯,但大楼管理服务不允许(而大楼管理员将被允许......)等等
对于我们的 IoT 解决方案,我们正在尝试解决设备孪生的同步问题。
在正常情况下,云是负责的。因此,云将在 IoT 中心设备孪生中设置所需的 属性。设备将收到通知,更改设备上的 属性 并写入报告的 属性 设备已同步。
但对于我们的案例,设备的用户也可以在本地更改属性。因此,在这种情况下,报告的 属性 将发生变化并且与所需的不同步。 我们应该如何处理?更新所需的?保持原样?
还有一种情况是可以从两侧删除属性。见附件
Writen use cases
这里是 json 双胞胎的例子:
"desired" : {
"recipes" : {
"recipe1" : {
"uri" : "blob.name.csv",
"version" : "1"
},{
"recipe2" : {
"uri" : "blob.name.csv",
"version" : "1"
},{
"recipe3" : {
"uri" : "blob.name.csv",
"version" : "1"
}
}
},
"reported" : {
"recipes" : {
"recipe1" : {
"uri" : "blob.name.csv",
"version" : "1"
},{
"recipe2" : {
"uri" : "blob.name.csv",
"version" : "3"
},{
"recipe3" : {
"uri" : "blob.name.csv",
"version" : "2"
}
}
我希望问题很清楚。提前致谢。
亲切的问候,
马克
解决冲突的方法因业务而异,无法定义通用规则。在某些情况下,用户意图比服务更重要,反之亦然。
例如,一个工作到很晚的员工想要 76F 的办公室温度,而自动建筑管理服务想要 70F 的非工作时间温度,在这种情况下,用户获胜(期望 属性 被丢弃)。在另一个示例中,一名员工想在下班时间进入办公大楼并打开所有灯,但大楼管理服务不允许(而大楼管理员将被允许......)等等