查询设备命令
接口说明
应用服务器向设备下发命令后,可调用此接口在物联网平台查询下发命令的状态及内容信息,以了解命令的执行情况,可查询指定时间段内本应用下的所有下发命令,或者指定设备的所有下发命令。
URI
| 请求方法 | GET |
|---|---|
| URI | /iocm/app/cmd/v1.4.0/deviceCommands |
| 传输协议 | HTTPS |
请求参数
| 参数 | 必选/可选 | 类型 | 位置 | 描述 |
|---|---|---|---|---|
| app_key | 必选 | String | header | 访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。 |
| Authorization | 必选 | String | header | 访问物联网平台的认证信息,值为“Bearer {accessToken}”,其中{accessToken}为调用鉴权接口返回的accessToken。 |
| pageNo | 可选 | Integer(>=0) | query | 分页查询参数,查询结果分页显示时指定要查看的页信息,默认值0,查询第一页,取值范围为大于等于0的整数。 |
| pageSize | 可选 | Integer[1,1000] | query | 分页查询参数,查询结果分页显示时每页显示的记录数,默认值为1000,取值范围为1-1000的整数。 |
| deviceId | 可选 | String(64) | query | 指定查询命令的设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 |
| startTime | 可选 | String | query | 查询下发命令时间在startTime之后的记录。需要填写UTC时间,格式:yyyyMMdd'T'HHmmss'Z',如 20151212T121212Z。 您需要根据本地所在时区自己进行时间转换。 |
| endTime | 可选 | String | query | 查询下发命令时间在endTime之前的记录。需要填写UTC时间,格式:yyyyMMdd'T'HHmmss'Z',如 20151212T121212Z。 您需要根据本地所在时区自己进行时间转换。 |
| appId | 可选 | String | query | 命令所属的应用ID,当查询授权应用下的命令时才需要填写。 |
响应参数
Status Code: 200 OK
| 参数 | 类型 | 描述 |
|---|---|---|
| pagination | 页面信息。 | |
| data | List<DeviceCommandResp> | 设备命令列表。 |
| 参数 | 类型 | 描述 |
|---|---|---|
| pageNo | long | 页码。 |
| pageSize | long | 每页信息数量。 |
| totalSize | long | 记录总数。 |
| 参数 | 类型 | 描述 |
|---|---|---|
| commandId | String(1-64) | 设备命令ID,用于唯一标识一条命令,在下发设备命令时由物联网平台分配获得。 |
| appId | String(1-64) | 设备命令所属的应用ID。 |
| deviceId | String(1-64) | 下发命令的设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 |
| command | 下发命令的信息。 | |
| callbackUrl | String(1024) | 命令状态变化通知地址,当命令状态变化时(执行失败,执行成功,超时,发送,已送达)会通知应用服务器。 |
| expireTime | Integer(>=0) | 下发命令的超时时间,单位为秒,表示设备命令在创建后expireTime秒内有效,超过这个时间范围后命令将不再下发,如果未设置则默认为48小时(86400s*2)。 |
| status | String | 下发命令的状态。
|
| result | ObjectNode | 下发命令执行的详细结果。 |
| creationTime | String(20) | 命令创建的UTC时间,时间格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 若需要显示本地时区时间,您需要自己进行时间转换。 |
| executeTime | String(20) | 命令执行的UTC时间,时间格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 若需要显示本地时区时间,您需要自己进行时间转换。 |
| platformIssuedTime | String(20) | 平台发送命令的UTC时间,时间格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 若需要显示本地时区时间,您需要自己进行时间转换。 |
| deliveredTime | String(20) | 平台将命令送达到设备的UTC时间,时间格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。 若需要显示本地时区时间,您需要自己进行时间转换。 |
| issuedTimes | Integer(>=0) | 平台发送命令的次数。 |
| maxRetransmit | Integer(0~3) | 命令下发最大重传次数。 |
| 参数 | 必选/可选 | 类型 | 描述 |
|---|---|---|---|
| serviceId | 必选 | String(1-64) | 命令对应的服务ID,用于标识一个服务。 |
| method | 必选 | String(1-128) | 命令服务下具体的命令名称,要与profile中定义的命令名保持一致。 |
| paras | 可选 | ObjectNode | 命令参数,jsonString格式,里面是一个个健值对,每个健都是profile中命令的参数名(paraName),具体格式需要应用和设备约定。 |
请求示例
GET https://{host}:{port}/iocm/app/cmd/v1.4.0/deviceCommands?pageNo={pageNo}&pageSize={pageSize}&deviceId={deviceId}&startTime={startTime}&endTime={endTime}
Content-Type: application/json
app_key: ******
Authorization: Bearer ****** 正常响应示例
Status Code: 200 OK
Content-Type: application/json
{
"pagination": {
"pageNo": 0,
"pageSize": 20,
"totalSize": 100
},
"data": [
{
"commandId": "********",
"appId": "********",
"deviceId": "********",
"command": {
"serviceId": "********",
"method": "********",
"paras": {
"paraName1": "paraValue1",
"paraName2": "paraValue2"
}
},
"callbackUrl": "http://127.0.0.1:9999/cmd/callbackUrl",
"expireTime": null,
"status": "PENDDING",
"result": null,
"creationTime": "20170222T164000Z",
"executeTime": null,
"platformIssuedTime": null,
"deliveredTime": null,
"issuedTimes": null,
"maxRetransmit": ******
},
{
"commandId": "********",
"appId": "********",
"deviceId": "********",
"command": {
"serviceId": "********",
"method": "********",
"paras": {
"paraName1": "paraValue1",
"paraName2": "paraValue2"
}
},
"callbackUrl": "http://127.0.0.1:9999/cmd/callbackUrl",
"expireTime": null,
"status": "PENDDING",
"result": null,
"creationTime": "20170222T164000Z",
"executeTime": null,
"platformIssuedTime": null,
"deliveredTime": null,
"issuedTimes": null,
"maxRetransmit": ******
}
]
} 错误码
| Http状态码 | 错误码 | 错误描述 | 说明 |
|---|---|---|---|
| 200 | 100203 | The application is not existed. | 应用不存在。 处理建议:
|
| 200 | 100217 | The application hasn't been authorized. | 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 |
| 200 | 100418 | The deviceData is not existed. | 设备信息不存在。 处理建议:
|
| 200 | 100428 | The device is not online. | 设备不在线。 处理建议:请检查设备与物联网平台的连接是否正常。 |
| 200 | 100431 | The serviceType is not exist. | 服务类型不存在。 处理建议:
|
| 400 | 100022 | The input is invalid. | 输入参数无效。 处理建议:
|
| 403 | 100217 | The application hasn't been authorized. | 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 |
| 403 | 1010009 | app throttle exceed. | 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 |
| 403 | 1010005 | Invalid access token or appId. | 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 |
| 500 | 100001 | Internal server error. | 服务内部处理错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |
| 500 | 100023 | The data in dataBase is abnomal. | 数据库异常。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |
| 500 | 100220 | Get AppKey from header failed. | 获取appKey失败。 处理建议 : 请检查接口请求的header中是否携带appId。 |
| 500 | 101016 | Get iotws address failed. | 获取iotws地址失败。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |
| 500 | 101017 | Get newCallbackUrl from oss failed. | 从oss获取新的回调地址失败。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |
| 503 | 100501 | Congestion occurs, and the current network has been flow-controlled | 发生拥塞,当前的网络已经被流控。 |
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.