设备接入 IOTDA-设备影子:业务流程
业务流程
修改设备属性值
修改desired区属性值,如果设备在线,则设备影子直接同步设备属性值到设备,否则等待设备上线或上报数据时,再同步设备属性值到设备。
- 用户通过控制台或应用服务器修改设备属性值。消息样例如下:
PUT https://{Endpoint}/v5/iot/{project_id}/devices/{device_id}/shadow Content-Type: application/json X-Auth-Token: ******** Instance-Id: ******** { "shadow" : [ { "desired" : { "temperature" : "60" }, "service_id" : "WaterMeter", "version" : 1 } ] }
- 物联网平台 修改desired区属性值。
- 物联网平台返回响应消息。
- 物联网平台判断设备上线或上报数据。
- 物联网平台将设备属性同步到设备。消息样例如下:
Topic: $oc/devices/{device_id}/sys/properties/set/request_id={request_id} 数据格式: { "object_device_id": "{object_device_id} ", "services": [ { "service_id": "Temperature", "properties": { "value": 57, "value2": 60 } }, { "service_id": "Battery", "properties": { "level": 80, "level2": 90 } } ] }
- 设备返回响应消息。设备影子desired区的属性值发送给设备后,需要设备回响应表示已收到请求。消息样例如下:
Topic:$oc/devices/{device_id}/sys/properties/set/response/request_id={request_id} 数据格式: { "result_code": 0, "result_desc": "success" }
7.设备上报数据,当设备进行属性上报时,平台会存储设备最新上报的设备属性值。
- 设备上报属性时,物联网平台修改设备影子reported区属性值为设备上报的设备属性值。消息样例如下:
Topic: $oc/devices/{device_id}/sys/properties/report 数据格式: { "services": [ { "service_id": "Temperature", "properties": { "value": 57, "value2": 60 }, "event_time": "20151212T121212Z" }, { "service_id": "Battery", "properties": { "level": 80, "level2": 90 }, "event_time": "20151212T121212Z" } ] }
- 设备主动删除设备影子的reported区
- 设备主动删除reported区service下的单个属性
- 设备主动删除影子reported区的service下的全部的属性
查询设备属性值
设备影子保存的是设备最新的设备属性值,一旦设备属性值产生变化,设备会将设备属性值同步到设备影子。用户便可以及时获取查询结果,无需关注设备是否在线。
- 用户通过控制台或应用服务器查询设备属性值。消息样例如下:
GET https://{Endpoint}/v5/iot/{project_id}/devices/{device_id}/shadow Content-Type: application/json X-Auth-Token: ******** Instance-Id: ********
- 物联网平台返回desired属性值和report属性值,即期望值和上报值。消息样例如下:
Content-Type: application/json { "device_id" : "********", "shadow" : [ { "desired" : { "properties" : { "temperature" : "60" }, "event_time" : "20151212T121212Z" }, "service_id" : "WaterMeter", "reported" : { "properties" : { "temperature" : "60" }, "event_time" : "20151212T121212Z" }, "version" : 1 } ] }