物联网IoT平台 设备影子服务 业务流程
图1 设备影子服务业务流图一、基本概念1、设备影子服务,由云端提供,还是设备端也会集成这个服务?云端 提供 影子服务。2、设备影子服务,存在形式?影子服务,就是一个 json 文件。每个设备有且仅有 一个影子服务。3、设备影子服务,的作用?影子服务json 文件,用来存储 设备上报状态值 以及 业务系统期望值。是持久化存储的。设备端1、设备端可以通过,有发布 全向的topic,上报(走MQTT协议
图1 设备影子服务业务流图
一、基本概念
1、设备影子服务,由云端提供,还是设备端也会集成这个服务?
云端 提供 影子服务。
2、设备影子服务,存在形式?
影子服务,就是一个 json 文件。每个设备有且仅有 一个影子服务。
3、设备影子服务,的作用?
影子服务json 文件,用来存储 设备上报状态值 以及 业务系统期望值。是持久化存储的。
设备端
1、设备端可以通过,有发布 全向的topic,上报(走MQTT协议)设备当前的运行状态reported,给到影子存储。
2、设备端重新上线后,通过订阅影子服务的topic,获取(走MQTT协议)到业务端给设备设置的desired值;
IoT云端
1、存储设备上报状态;
2、存储业务服务器对设备desired期望值的修改结果;
3、将业务服务器对设备desired期望值,通过影子服务具有发布权限的topic,推送给设备;
业务服务器端
1、调用影子服务的设备状态获取接口,获取(走HTTP协议)到设备当前运行状态;
2、调用影子服务的设备desired值设置接口,将对设备的desired期望值,推送给到影子服务;
二、业务流程详解
阿里云IOT平台设备影子样例
1、设备端通过,有发布 权限的topic,上报(走MQTT协议)设备当前的运行状态reported,给到影子存储。通信报文,示例如下:
更新成功后,在IoT物联网控制台,设备详情的设备影子中,可以查看完整的设备影子JSON文件,如下图:
上报成功,且更新了云端设备影子后,设备端会收到云端下发的响应报文,如下:
2、业务服务器端调用影子服务的设备状态获取接口,获取(走HTTP协议)到设备当前运行状态;
影子服务的设备状态获取接口:GetDeviceShadow。业务服务器获取到设备状态数据(reported),示例代码如下(Node.js):
返回结果如下,其中 ShadowMessage 为设备影子JSON的字符串形式,如下图:
3、业务服务器调用影子服务的设备desired值设置接口,将对设备的desired期望值,推送给到影子服务;
影子服务的设备desired值设置接口名:UpdateDeviceShadow。业务服务器给设备设置期望值(desired),代码示例如下(Node.js):
设置成功后,在IoT物联网控制台,可以查看最新影子文件,如下图:
业务服务器的设置值同步到影子服务后。在线的设备会实时收到设备影子消息推送,内容如下:
如果设备不在线,当再次上线时,可以主动获取设备影子。实例代码如下:
获取成功后,云端回复设备影子消息推送,内容如下:
参考资料
更多推荐
所有评论(0)