写点什么

IoT 物联网平台「设备影子」开发实战——实践类

作者:阿里云AIoT
  • 2023-01-05
    浙江
  • 本文字数:951 字

    阅读完需:约 3 分钟

传送门:5个视频讲解,30个场景案例汇总


image.png


IoT 物联网平台提供设备影子功能,在云端通过一个 JSON 文件持久化存储设备上报状态值和业务系统的期望值。每个设备有且只有一个设备影子,设备可以通过 MQTT 协议获取期望值 desired 和设置设备状态 reported,业务系统通过 HTTPS 协议获取设备状态 reported 和设置设备期望值 desired


  • 设备可以主动上报运行状态,业务系统可以随时读取,而不需要关心设备是否在线。

  • 当云端业务系统给指定设备设置期望值后,如果设备在线,可以实时接收云端期望值变更;设备离线,再次上线可以主动拉取云端期望值。


设备影子通信的两个 Topic:


image.png


设备影子 JSON

在 IoT 物联网平台控制台,设备详情,可以查看设备影子,默认影子 JSON 数据,如下图:


image.png


1.更新设备状态 reported

IoT 物联网设备可以主动更新当前状态数据到云端设备影子的(reported)节点中,通信报文,示例如下:


image.png


成功更新云端设备影子后,设备端会收到云端下发的响应报文,如下:


image.png


我们在 IoT 物联网控制台,设备详情的设备影子中,可以查看完整的设备影子 JSON 文件,如下图


image.png


2.获取设备状态 reported

业务系统可以通过调用设备影子的 GetDeviceShadow API,获取到设备状态数据(reported),示例代码如下(Node.js):


image.png


返回结果如下,其中 ShadowMessage 为设备影子 JSON 的字符串形式,如下图:


image.png


3.设置设备期望值 desired

业务系统调用 UpdateDeviceShadow API,可以给设备设置期望值(desired),代码示例如下(Node.js):


image.png


设置成功后,我们在 IoT 物联网控制台,设备详情的设备影子中,可以查看最新影子文件,如下图:


image.png


与此同时,在线的设备会实时收到设备影子消息推送,内容如下:


image.png


离线的设备,再次上线时,可以主动获取设备影子


image.png


云端回复设备影子消息推送,内容如下:


image.png


4.删除设备影子

设备可以主动删除设备影子属性,其中 method 为 delete,要删除的属性的值为 null


image.png


删除成功后,我们在控制台查看设备影子如下图:


image.png


设备上报时,将 reported 设置为 null,可以删除全部属性的值。


image.png


删除成功后,我们在控制台查看设备影子如下图:


image.png


5.增量 delta 和规则引擎事件

阿里云 IoT 物联网平台的设备影子不支持增量 delta 推送,设备更新影子状态后也不会触发规则引擎流转消息事件,业务系统无法实时感知设备状态(reported)变化


物联网平台产品介绍详情:https://www.aliyun.com/product/iot/iot_instc_public_cn


阿里云物联网平台客户交流群

用户头像

阿里云AIoT

关注

物联网内容搬运者 2022-04-22 加入

还未添加个人简介

评论

发布
暂无评论
IoT物联网平台「设备影子」开发实战——实践类_JavaScript_阿里云AIoT_InfoQ写作社区