智能边缘平台 IEF-设备数据上云:监听设备孪生事件
监听设备孪生事件
通过获取节点关联的终端设备成员和获取设备孪生以后,即可获取到节点绑定的终端设备ID,随后即可监听该终端设备的事件。
在云端更新设备孪生属性,设置期望值从而达到控制边侧终端设备的目的。
例如某个设备有两个孪生属性,humidity和temperature。
在“设备孪生”页签中编辑孪生属性,将humidity由9改为10。属性修改完成以后,在端侧可收到两个事件:“设备孪生变更事件”和“设备孪生delta事件”。
- 设备孪生变更事件:包含变更前和变更后的设备孪生信息详情。
- 设备孪生delta事件:包含设备孪生的详情信息以及设备孪生属性期望值与实际值不一致的delta部分。
订阅这两个Topic,就可以收到变更设备孪生的消息。
- 订阅设备孪生变更。
Topic:$hw/events/device/{device_id}/twin/update/document
在边侧收到变更消息如下:
{ "event_id": "0f921313-4074-46a2-96f6-aac610721059", "timestamp": 1555313685831, "twin": { "humidity": { "last": { "expected": { "value": "9", "metadata": { "timestamp": 1555313665978 } }, "optional": true, "metadata": { "type": "int" } }, "current": { "expected": { "value": "10", "metadata": { "timestamp": 1555313685831 } }, "optional": true, "metadata": { "type": "int" } } }, "temperature": { "last": { "expected": { "value": "0", "metadata": { "timestamp": 1555313665978 } }, "actual": { "value": "2", "metadata": { "timestamp": 1555299457284 } }, "optional": true, "metadata": { "type": "int" } }, "current": { "expected": { "value": "0", "metadata": { "timestamp": 1555313685831 } }, "actual": { "value": "2", "metadata": { "timestamp": 1555299457284 } }, "optional": true, "metadata": { "type": "int" } } } } }
- 订阅设备孪生delta。
Topic:$hw/events/device/{device_id}/twin/update/delta
在边侧收到变更消息如下:{ "event_id": "60fb5baf-d4ad-47b0-a21e-8b57b52d0978", "timestamp": 1555313685837, "twin": { "humidity": { "expected": { "value": "10", "metadata": { "timestamp": 1555313685831 } }, "optional": true, "metadata": { "type": "int" } }, "temperature": { "expected": { "value": "0", "metadata": { "timestamp": 1555313685831 } }, "actual": { "value": "2", "metadata": { "timestamp": 1555299457284 } }, "optional": true, "metadata": { "type": "int" } } }, "delta": { "humidity": "10", "temperature": "0" } }