1.接入mqtt

请参照MQTT协议方式接入(java版)

2.设置设备影子Topic

物联网平台已为每个设备预定义了两个Topic,用于实现设备影子数据流转。

  • /shadow/update/${YourProductKey}/${YourDeviceName}设备和应用程序发布消息到此Topic。物联网平台收到该Topic的消息后,将消息中的状态更新到设备影子中。
  • /shadow/get/${YourProductKey}/${YourDeviceName}设备影子更新状态到该Topic,设备订阅此Topic获取最新消息。

    3.设置影子数据

    数据格式

    设备影子需要的JSON文档示例:
    1. {
    2. "state": {
    3. "desired": {
    4. "color": "RED",
    5. }
    6. "reported": {
    7. "color": "GREEN"
    8. }
    9. },
    10. "metadata": {
    11. "desired": {
    12. "color": {
    13. "timestamp": 1469564492
    14. }
    15. },
    16. "reported": {
    17. "color": {
    18. "timestamp": 1469564492
    19. }
    20. }
    21. },
    22. "timestamp": 1469564492,
    23. "version": 1
    24. }

JSON属性描述,如下表所示。

属性 描述
desired 设备的预期状态。仅当设备影子文档具有预期状态时,才包含desired部分。
应用程序向desired部分写入数据,更新事物的状态,而无需直接连接到该设备。
reported 设备的报告状态。设备可以在reported部分写入数据,报告其最新状态。
应用程序可以通过读取该参数值,获取设备的状态。
JSON文档中也可以不包含reported部分,没有reported部分的文档同样为有效影子JSON文档。
metadata 当用户更新设备状态文档后,设备影子服务会自动更新metadata的值。
设备状态的元数据的信息包含以 Epoch 时间表示的每个属性的时间戳,用来获取准确的更新时间。
timestamp 影子文档的最新更新时间。
version version参数为int型。为防止参数溢出,您可以手动传入。