阿里云物联网平台设备影子功能演示

概述

物联网平台提供设备影子功能,用于缓存设备状态。设备在线时,可以直接获取云端指令;设备离线时,上线后可以主动拉取云端指令。设备影子是一个 JSON 文档,用于存储设备上报状态、应用程序期望状态信息。每个设备有且只有一个设备影子,设备可以通过MQTT获取和设置设备影子来同步状态,该同步可以是影子同步给设备,也可以是设备同步给影子。本文使用MQTT.fx工具快速测试设备影子的相关功能。

实验测试

设备影子Topic

物联网平台已为每个设备预定义了两个Topic,用于实现数据流转,可以直接使用。

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

测试工具

这里使用MQTT.fx验证测试相关功能,关于MQTT.fx连接阿里云物联网平台,参考:使用MQTT.fx接入物联网平台


一、设备主动上报状态

阿里云物联网平台设备影子功能演示

阿里云物联网平台设备影子功能演示

阿里云物联网平台设备影子功能演示


二、应用程序改变设备状态

使用Open API Exployer调用UpdateDeviceShadow接口。

阿里云物联网平台设备影子功能演示

阿里云物联网平台设备影子功能演示

阿里云物联网平台设备影子功能演示


三、设备主动获取影子内容

阿里云物联网平台设备影子功能演示

阿里云物联网平台设备影子功能演示


四、设备主动删除影子属性

阿里云物联网平台设备影子功能演示

阿里云物联网平台设备影子功能演示

五、注意
1、主动更新版本号时,设备影子会检查请求中的version值是否大于当前版本号;
2、version参数为long型。为防止参数溢出,您可以手动传入-1将版本号重置;
3、删除操作也要求版本号大于当前的版本号。

更多参考

设备影子数据流
设备影子JSON详解
设备影子概览

上一篇:Python:使用itsdangerous生成jwt签名


下一篇:阿里云视觉智能开放平台使用简明教程