查询设备影子
接口说明
若设备处于离线或异常状态时,应用服务器无法通过命令下发的方式向设备下发配置。此时可把要下发的配置设置到设备影子,当设备重新上线时,设备影子会把配置下发给设备。应用服务器可调用此接口查看设备影子上的设备配置信息及最新的设备上报数据信息。
注意事项
当前仅使用LWM2M协议的设备支持设备影子功能,且仅支持修改LWM2M协议定义的属性信息,用户自定义的属性暂不支持修改。
URI
| 请求方法 | GET |
|---|---|
| URI | /iocm/app/shadow/v1.5.0/devices/{deviceId} |
| 传输协议 | HTTPS |
请求参数
| 字段 | 必选/可选 | 类型 | 位置 | 描述 |
|---|---|---|---|---|
| app_key | 必选 | String | header | 访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。 |
| Authorization | 必选 | String | header | 访问物联网平台的认证信息,值为“Bearer {accessToken}”,其中{accessToken}为调用鉴权接口返回的accessToken。 |
| deviceId | 必选 | String(36) | path | 设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 |
| appId | 可选 | String | query | 设备所属的应用ID,当查询授权应用下设备的设备影子时才需要填写。 |
响应参数
Status Code: 200 OK
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceId | String(36) | 设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 |
| gatewayId | String(36) | 网关ID,用于标识一个网关设备。当设备是直连设备时,gatewayId与设备的deviceId一致。当设备是非直连设备时,gatewayId为设备所关联的直连设备(即网关)的deviceId。 |
| nodeType | Enum | 设备的类型。 |
| createTime | String(256) | 设备创建的UTC时间,时间格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 若需要显示本地时区时间,您需要自己进行时间转换。 |
| lastModifiedTime | String(256) | 设备最后一次修改信息的UTC时间,时间格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 若需要显示本地时区时间,您需要自己进行时间转换。 |
| deviceInfo | 设备详细信息。 | |
| services | List<DeviceServiceB> | 设备影子信息。 |
| 参数 | 类型 | 描述 |
|---|---|---|
| nodeId | String(256) | 设备唯一标识码。 |
| name | String(256) | 设备名称。 |
| description | String(2048) | 设备的描述信息。 |
| manufacturerId | String(256) | 厂商ID,唯一标识一个厂商。 |
| manufacturerName | String(256) | 厂商名称。 |
| mac | String(256) | 设备的MAC地址。 |
| location | String(2048) | 设备的位置信息。 |
| deviceType | String(256) | 设备类型,大驼峰命名方式,如MultiSensor、ContactSensor、CameraGateway。 |
| model | String(256) | 设备的型号。 |
| swVersion | String(256) | 设备的软件版本。 |
| fwVersion | String(256) | 设备的固件版本。 |
| hwVersion | String(256) | 设备的硬件版本。 |
| protocolType | String(256) | 设备使用的协议类型。 |
| bridgeId | String(256) | Bridge标识,表示设备通过哪个Bridge接入物联网平台。 |
| status | String | 设备的状态,表示设备是否在线,取值范围:ONLINE、OFFLINE、INACTIVE、ABNORMAL。
|
| statusDetail | String(256) | 设备的状态详情,跟status取值对应。
|
| mute | String | 表示设备是否处于冻结状态,即设备上报数据时,平台是否会管理和保存。
|
| supportedSecurity | String | 表示设备是否支持安全模式。
|
| isSecurity | String | 表示设备当前是否启用安全模式。
|
| signalStrength | String(256) | 设备的信号强度。 |
| sigVersion | String(256) | 设备的sig版本。 |
| serialNumber | String(256) | 设备的序列号。 |
| batteryLevel | String(256) | 设备的电池电量。 |
设备向物联网平台上报设备状态时需要status、statusDetail成对上报。statusDetail建议仅用作显示,不建议用于逻辑判断。
| 参数 | 类型 | 描述 |
|---|---|---|
| serviceId | String(256) | 服务ID,用于标识一个服务。 |
| reportedProps | ObjectNode | 设备最新上报的数据。 |
| desiredProps | ObjectNode | 要向设备下发的配置信息。 |
| eventTime | String(256) | 事件发生的UTC时间,时间格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 若需要显示本地时区时间,您需要自己进行时间转换。 |
| serviceType | String(256) | 服务类型。 |
请求示例
GET https://{host}:{port}/iocm/app/shadow/v1.5.0/devices/{deviceId}
Content-Type: application/json
app_key: ******
Authorization: Bearer ****** 正常响应示例
Status Code: 200 OK
Content-Type: application/json
{
"deviceId": "******",
"gatewayId": "******",
"nodeType": "******",
"createTime": "******",
"lastModifiedTime": "******",
"deviceInfo": "******""services": [
{
"serviceId": "******",
"reportedProps": "******",
"desiredProps": "******",
"eventTime": "******",
"serviceType": "******"
},
]
} 错误码
| Http状态码 | 错误码 | 错误描述 | 说明 |
|---|---|---|---|
| 403 | 100203 | The application is not existed. | 应用不存在。 处理建议:
|
| 403 | 100217 | The application hasn't been authorized. | 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 |
| 403 | 1010009 | app throttle exceed. | 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 |
| 403 | 1010005 | pp_key or access_token is invalid. | 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 |
| 404 | 100418 | The deviceData is not existed. | 设备信息不存在。 处理建议:
|
| 500 | 100203 | The application is not existed. | 应用不存在。 处理建议:
|
| 500 | 50252 | Internal server error. | 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.