设备侧获取平台的设备影子数据
功能介绍
用于设备向平台获取设备影子数据。用户可以通过应用服务器或物联网控制台配置设备影子预期数据,设备上线时订阅该topic,可以获取到平台设备影子数据,以此来同步设备属性期望值,从而完成设备属性值的修改。
简单交互逻辑介绍如下:
① 应用调用“配置设备影子预期数据”接口或在控制台配置设备影子数据;
② 设备侧(已完成关联Topic订阅)主动上报请求,获取平台的设备影子数据;
③ 平台响应设备请求,返回设备影子数据;
④ 设备侧解析属性期望值,并完成设备属性值修改。
Topic
上行: $oc/devices/{device_id}/sys/shadow/get/request_id={request_id}
下行: $oc/devices/{device_id}/sys/shadow/get/response/request_id={request_id}
 
    - {request_id}用于唯一标识这次请求。设备侧发起的消息带该参数时,需要保证设备侧该参数值的唯一性,可以用递增的数字或者UUID来实现。
 - 设备侧上行请求参数中携带唯一标识,该唯一标识会在下行topic中request_id携带给设备以标记唯一请求链。
 - 订阅下行Topic时建议使用通配符“#”来替代“request_id={request_id}”即为:$oc/devices/{device_id}/sys/shadow/get/response/#。
 
上行请求参数说明
| 
         字段名  | 
       
         必选/可选  | 
       
         类型  | 
       
         参数描述  | 
      
|---|---|---|---|
| 
         object_device_id  | 
       
         可选  | 
       
         String  | 
       
         参数解释: 需要获取设备影子的目标设备ID。  | 
      
| 
         service_id  | 
       
         可选  | 
       
         String  | 
       
         参数解释: 需要获取设备影子的设备服务ID,不带的话查询所有服务ID的设备影子数据。  | 
      
下行响应参数说明
| 
         字段名  | 
       
         必选/可选  | 
       
         类型  | 
       
         参数描述  | 
      
|---|---|---|---|
| 
         object_device_id  | 
       
         必选  | 
       
         String  | 
       
         参数解释: 设备影子的目标设备ID。  | 
      
| 
         shadow  | 
       
         可选  | 
       
         List<ShadowData>  | 
       
         参数解释: 服务影子数据。  | 
      
ShadowData结构定义:
| 
         字段名  | 
       
         必选/可选  | 
       
         类型  | 
       
         参数描述  | 
      
|---|---|---|---|
| 
         service_id  | 
       
         必选  | 
       
         String  | 
       
         参数解释: 设备的服务ID,由创建的产品模型确定。  | 
      
| 
         desired  | 
       
         可选  | 
       
         PropertiesData  | 
       
         参数解释: 设备影子desired区的属性列表。  | 
      
| 
         reported  | 
       
         可选  | 
       
         PropertiesData  | 
       
         参数解释: 设备影子reported区的属性列表。  | 
      
| 
         version  | 
       
         可选  | 
       
         Integer  | 
       
         参数解释: 设备影子版本信息。  | 
      
PropertiesData结构定义:
| 
         字段名  | 
       
         必选/可选  | 
       
         类型  | 
       
         参数描述  | 
      
|---|---|---|---|
| 
         properties  | 
       
         必选  | 
       
         Object  | 
       
         参数解释: 设备服务的属性列表,具体字段在设备关联的产品模型里定义,可以设置多个字段。  | 
      
| 
         event_time  | 
       
         可选  | 
       
         String  | 
       
         参数解释: 设备属性数据的UTC时间(格式:yyyyMMdd'T'HHmmss'Z'),如:20161219T114920Z。  | 
      
上行请求示例
Topic: $oc/devices/{device_id}/sys/shadow/get/request_id={request_id} 
数据格式:  
{
	"object_device_id": "40fe3542-f4cc-4b6a-98c3-61a49ba1acd4",
	"service_id": "WaterMeter"
}
  下行响应示例
Topic:$oc/devices/{device_id}/sys/shadow/get/response/request_id={request_id}
数据格式:  
{
  "object_device_id": "40fe3542-f4cc-4b6a-98c3-61a49ba1acd4",
  "shadow": [
    {
      "service_id": "WaterMeter",
      "desired": {
        "properties": {
          "temperature": "60"
        },
        "event_time": "20151212T121212Z"
      },
      "reported": {
        "properties": {
          "temperature": "60"
        },
        "event_time": "20151212T121212Z"
      },
      "version": 1
    }
  ]
}