1.接入mqtt
2.设置设备影子Topic
物联网平台已为每个设备预定义了两个Topic,用于实现设备影子数据流转。
- /shadow/update/${YourProductKey}/${YourDeviceName}设备和应用程序发布消息到此Topic。物联网平台收到该Topic的消息后,将消息中的状态更新到设备影子中。
- /shadow/get/${YourProductKey}/${YourDeviceName}设备影子更新状态到该Topic,设备订阅此Topic获取最新消息。
3.设置影子数据
数据格式
设备影子需要的JSON文档示例:{
"state": {
"desired": {
"color": "RED",
}
"reported": {
"color": "GREEN"
}
},
"metadata": {
"desired": {
"color": {
"timestamp": 1469564492
}
},
"reported": {
"color": {
"timestamp": 1469564492
}
}
},
"timestamp": 1469564492,
"version": 1
}
JSON属性描述,如下表所示。
属性 | 描述 |
---|---|
desired | 设备的预期状态。仅当设备影子文档具有预期状态时,才包含desired部分。 应用程序向desired部分写入数据,更新事物的状态,而无需直接连接到该设备。 |
reported | 设备的报告状态。设备可以在reported部分写入数据,报告其最新状态。 应用程序可以通过读取该参数值,获取设备的状态。 JSON文档中也可以不包含reported部分,没有reported部分的文档同样为有效影子JSON文档。 |
metadata | 当用户更新设备状态文档后,设备影子服务会自动更新metadata的值。 设备状态的元数据的信息包含以 Epoch 时间表示的每个属性的时间戳,用来获取准确的更新时间。 |
timestamp | 影子文档的最新更新时间。 |
version | version参数为int型。为防止参数溢出,您可以手动传入。 |