物联网IoT平台 设备影子服务 业务流程

物联网IoT平台 设备影子服务 业务流程

 图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平台设备影子样例

物联网IoT平台 设备影子服务 业务流程

1、设备端通过,有发布 权限的topic,上报(MQTT协议)设备当前的运行状态reported,给到影子存储。通信报文,示例如下:

物联网IoT平台 设备影子服务 业务流程

更新成功后,在IoT物联网控制台,设备详情的设备影子中,可以查看完整的设备影子JSON文件,如下图:

物联网IoT平台 设备影子服务 业务流程

 

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

 物联网IoT平台 设备影子服务 业务流程

 2、业务服务器端调用影子服务的设备状态获取接口,获取(走HTTP协议)到设备当前运行状态;

影子服务的设备状态获取接口:GetDeviceShadow。业务服务器获取到设备状态数据(reported),示例代码如下(Node.js):

 物联网IoT平台 设备影子服务 业务流程

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

 物联网IoT平台 设备影子服务 业务流程

 3、业务服务器调用影子服务的设备desired值设置接口,将对设备的desired期望值,推送给到影子服务;

影子服务的设备desired值设置接口名:UpdateDeviceShadow。业务服务器给设备设置期望值(desired),代码示例如下(Node.js):

物联网IoT平台 设备影子服务 业务流程

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

 物联网IoT平台 设备影子服务 业务流程

 业务服务器的设置值同步到影子服务后。在线的设备会实时收到设备影子消息推送,内容如下:

 物联网IoT平台 设备影子服务 业务流程

如果设备不在线,当再次上线时,可以主动获取设备影子。实例代码如下:

 物联网IoT平台 设备影子服务 业务流程

获取成功后,云端回复设备影子消息推送,内容如下:

物联网IoT平台 设备影子服务 业务流程 

参考资料

IoT物联网平台「设备影子」开发实战_IoT物联网技术-CSDN博客IoT物联网平台提供设备影子功能,在云端通过一个JSON文件持久化存储设备上报状态值和业务系统的期望值。每个设备有且只有一个设备影子,设备可以通过MQTT协议获取期望值desired和设置…物联网IoT平台 设备影子服务 业务流程https://blog.csdn.net/klandor2008/article/details/114770715

本文章来源于互联网,如有侵权,请联系删除!原文地址:物联网IoT平台 设备影子服务 业务流程

相关推荐: 使用Python Link SDK接入阿里云物联网平台

1. 配置开发环境 1.1 安装python3.6或以上版本 可以使用pyenv新建一个python 3.6的虚拟环境。具体操作参考:使用pyenv和pyenv-virtualenv管理python 版本 1.2 环境配置 先激活虚拟环境,然后安装aliyun…