配置设备影子预期数据
功能介绍
应用服务器可调用此接口配置设备影子的预期属性(desired区),当设备上线或者设备上报属性时把属性下发给设备。
设备影子介绍:
设备影子是一个用于存储和检索设备当前状态信息的JSON文档。
-
每个设备有且只有一个设备影子,由设备ID唯一标识
-
设备影子用于存储设备上报的(状态)属性和应用程序期望的设备(状态)属性
-
无论该设备是否在线,都可以通过该影子获取和设置设备的属性
-
设备上线或者设备上报属性时,如果desired区和reported区存在差异,则将差异部分下发给设备,配置的预期属性需在产品模型中定义且method具有可写属性“W”才可下发
-
该接口仅支持配置单个设备的设备影子的预期数据,如需多个设备的设备影子配置,请参见 创建批量任务。
限制:
设备影子JSON文档中的key不允许特殊字符:点(.)、dollar符号($)、空char(十六进制的ASCII码为00)。如果包含了以上特殊字符则无法正常刷新影子文档。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
PUT /v5/iot/{project_id}/devices/{device_id}/shadow
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数说明:项目ID。获取方法请参见 获取项目ID。 |
device_id |
是 |
String |
参数说明:设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。由物联网平台分配时,生成规则为"product_id" + "" + "node_id"拼接而成。 取值范围:长度不超过128,只允许字母、数字、下划线()、连接符(-)的组合。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
否 |
String |
参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 |
Instance-Id |
否 |
String |
参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考 查看实例详情。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
shadow |
否 |
Array of UpdateDesired objects |
参数说明:设备影子期望值构体。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
service_id |
是 |
String |
参数说明:设备的服务ID,在设备关联的产品模型中定义。 |
desired |
是 |
Object |
参数说明:设备影子期望属性数据,Json格式,里面是一个个键值对,每个键都是产品模型中属性的参数名(property_name),目前如样例所示只支持一层结构;如果想要删除整个desired可以填写空Object(例如"desired":{}),如果想要删除某一个属性期望值可以将属性置为null(例如{"temperature":null}) |
version |
否 |
Long |
参数说明:设备影子的版本,携带该参数时平台会校验值必须等于当前影子版本,初始从0开始。 |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
device_id |
String |
设备ID,用于唯一标识一个设备。在注册设备时直接指定,或者由物联网平台分配获得。由物联网平台分配时,生成规则为"product_id" + "_" + "node_id"拼接而成。 |
shadow |
Array of DeviceShadowData objects |
设备影子数据结构体。 |
参数 |
参数类型 |
描述 |
---|---|---|
service_id |
String |
设备的服务ID,在设备关联的产品模型中定义。 |
desired |
DeviceShadowProperties object |
用户最近一次对设备下发的预期数据,Json格式,里面是一个个键值对,每个键都是产品模型中属性的参数名(property_name)。 |
reported |
DeviceShadowProperties object |
设备最近一次上报的属性数据,Json格式,里面是一个个键值对,每个键都是产品模型中属性的参数名(property_name)。 |
version |
Long |
设备影子的版本,携带该参数时平台会校验值必须等于当前影子版本,初始从0开始。 |
请求示例
-
配置设备影子预期数据,temperature的期望值为60。
PUT https://{endpoint}/v5/iot/{project_id}/devices/{device_id}/shadow { "shadow" : [ { "service_id" : "WaterMeter", "desired" : { "temperature" : "60" }, "version" : 1 } ] }
-
删除设备影子预期数据,将设备影子中属性temperature的期望值删除。
PUT https://{endpoint}/v5/iot/{project_id}/devices/{device_id}/shadow { "shadow" : [ { "service_id" : "WaterMeter", "desired" : { "temperature" : null }, "version" : 2 } ] }
响应示例
状态码: 200
OK
{ "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" : 2 } ] }
状态码
状态码 |
描述 |
---|---|
200 |
OK |
400 |
Bad Request |
401 |
Unauthorized |
403 |
FORBIDDEN |
404 |
Not Found |
409 |
CONFLICT |
500 |
INTERNAL SERVER ERROR |
错误码
请参见错误码。