天天看点

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

作者:俏巴

概述

物联网平台提供设备影子功能,用于缓存设备状态。设备在线时,可以直接获取云端指令;设备离线时,上线后可以主动拉取云端指令。设备影子是一个 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详解 设备影子概览

继续阅读