首页 > 云计算 > 公有云实践 > IoT物联网平台「设备影子」开发实战——实践类

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

阿里云IoT物联网平台的设备影子 不支持增量delta推送,设备更新影子状态后也不会触发规则引擎流转消息事件,业务系统 无法实时感知设备状态(reported)变化。
物联网平台产品介绍详情:https://www.aliyun.com/product/iot/iot_instc_public_cn

阿里云物联网平台客户交流群
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70017009/viewspace-2931005/ ,如需转载,请注明出处,否则将追究法律责任。