文档首页/ IoT物联网/ API参考/ 北向API参考/ 命令下发/ 查询设备命令撤销任务
更新时间:2022-02-24 GMT+08:00

查询设备命令撤销任务

典型场景

应用服务器创建了设备命令撤销任务后,可调用此接口查询设备命令撤销任务的详细信息和执行状态,以了解撤销任务的执行情况。

接口功能

支持应用服务器在物联网平台查询设备命令撤销任务信息和状态,可指定条件查询单个或多个撤销任务。

接口原型

请求方法

GET

请求地址

https://server:port/iocm/app/cmd/v1.4.0/deviceCommandCancelTasks?pageNo={pageNo}&pageSize={pageSize}&taskId={taskId}&deviceId={deviceId}&status={status}&startTime={startTime}&endTime={endTime}&appId={appId}

传输协议

HTTPS

请求参数

参数

必选/可选

类型

位置

描述

app_key

必选

String

header

访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。

Authorization

必选

String

header

访问物联网平台的认证信息,值为“Bearer {accessToken}”,其中{accessToken}为调用鉴权接口返回的accessToken。

pageNo

可选

Integer(>=0)

query

查询的页码,大于等于0,默认值:0。

pageSize

可选

Integer[1,1000]

query

查询每页信息的数量,大于等于1,最大值1000,默认值:1000。

taskId

可选

String

query

撤销任务的任务ID。

deviceId

可选

String

query

执行设备命令撤销任务的设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。

status

可选

String

query

设备命令撤销任务的状态。

startTime

可选

String

query

查询开始时间,查询创建撤销设备命令任务时间在startTime之后的记录。时间格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。

endTime

可选

String

query

查询结束时间,查询创建撤销设备命令任务时间在endTime之前的记录。时间格式:yyyyMMdd'T'HHmmss'Z',如20151212T121212Z。

appId

可选

String

query

访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。此处填写授权应用的appId。

响应参数

Status Code: 200 OK

参数

类型

描述

pagination

Pagination

页码信息。

data

List<DeviceCommandCancelTaskResp>

设备命令列表。

Pagination:

参数

类型

描述

pageNo

long

查询结果页码。

pageSize

long

每页信息数量。

totalSize

long

记录总数,即查询到的撤销任务中的命令总数。

DeviceCommandCancelTaskResp:

参数

类型

描述

taskId

String(1-64)

设备命令撤销任务的任务ID。

appId

String(1-64)

设备命令撤销任务所属的应用ID。

deviceId

String(1-64)

设备命令撤销任务指定撤销命令的设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。

status

String

撤销任务的任务状态。

  • WAITTING表示等待执行中
  • RUNNING表示撤销任务正在执行
  • SUCCESS表示撤销任务执行成功
  • FAILED表示撤销任务执行失败
  • PART_SUCCESS表示撤销任务部分执行成功。

totalCount

Integer

撤销的设备命令总数。

deviceCommands

List<DeviceCommandResp>

设备命令撤销任务信息列表。

DeviceCommandResp:

参数

类型

描述

commandId

String(1-64)

设备命令ID,用于唯一标识一条命令,在下发设备命令时由物联网平台分配获得。

appId

String(1-64)

设备命令撤销任务所属的应用ID。

deviceId

String(1-64)

下发命令的设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。

command

CommandDTO

下发命令的信息。

callbackUrl

String(1024)

令状态变化通知地址,当命令状态变化时(执行失败,执行成功,超时,发送,已送达)会通知应用。

expireTime

Integer(>=0)

下发命令的超时时间,单位为秒,表示设备命令在创建后expireTime秒内有效,超过这个时间范围后命令将不再下发,如果未设置则默认为48小时(86400s*2)。

status

String

下发命令的状态。

  • DEFAULT表示未下发
  • EXPIRED表示命令已经过期
  • SUCCESSFUL表示命令已经成功执行
  • FAILED表示命令执行失败
  • TIMEOUT表示命令下发执行超时
  • CANCELED表示命令已经被撤销执行

result

ObjectNode

下发命令执行的详细结果。

creationTime

String(20)

命令的创建时间。

executeTime

String(20)

命令执行的时间。

platformIssuedTime

String(20)

平台发送命令的时间。

deliveredTime

String(20)

平台将命令送达到设备的时间。

issuedTimes

Integer(>=0)

平台发送命令的次数。

maxRetransmit

Integer(0~3)

命令下发最大重传次数。

CommandDTO:

参数

类型

描述

serviceId

String(1-64)

命令对应的服务ID,用于标识一个服务。

method

String(1-128)

命令服务下具体的命令名称,要与profile中定义的命令名保持一致。

paras

ObjectNode

命令参数,jsonString格式,里面是一个个健值对,每个健都是profile中命令的参数名(paraName),具体格式需要应用和设备约定。

请求示例

Method: GET
request:
https://server:port/iocm/app/cmd/v1.4.0/deviceCommandCancelTasks?pageNo={pageNo}&pageSize={pageSize}&taskId={taskId}&deviceId={deviceId}&status={status}&startTime={startTime}&endTime={endTime}&appId={appId}
Header:
app_key: ******
Authorization: Bearer ******
Content-Type: application/json

响应示例

response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "pagination": {
    "pageNo": 0,
    "pageSize": 20,
    "totalSize": 100
  },
  "data": [
    {
      "taskId": "********",
      "appId": "********",
      "deviceId": "********",
      "status": "WAITTING",
      "totalCount": 1,
      "deviceCommands": [
        {
          "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": ******
        }
      ]
    },
    {
      "taskId": "********",
      "appId": "********",
      "deviceId": "********",
      "status": "WAITTING",
      "totalCount": 1,
      "deviceCommands": [
        {
          "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.

应用不存在。

处理建议:

  • 请检查HTTP请求头域中携带的appId是否有误。
  • 请检查请求路径(url)中传入的appId是否有误。

200

100217

The application hasn't been authorized.

应用未被授权。

处理建议:若非应用授权场景,请确认请求参数中的appId为空。

200

100418

The deviceData is not existed.

设备信息不存在。

处理建议:

  • 请求参数中携带的deviceId错误。请确认该deviceId是否属于该appId或者deviceId是否写错。
  • Header中携带的appId有误,请确认该appId下是否有该deviceId。
  • 如果URL中携带了可选参数appId,请检查该appId是否有误。

400

100022

The input is invalid.

输入参数无效。

处理建议:请检查接口调用请求中携带参数的合法性。

403

100203

The application is not existed.

应用不存在。

处理建议:

  • 请检查HTTP请求头域中携带的appId是否有误。
  • 请检查请求路径(url)中传入的appId是否有误。

403

100217

The application hasn't been authorized.

应用未被授权。

处理建议:若非应用授权场景,请确认请求参数中的appId为空。

403

1010009

app throttle exceed.

应用调用接口过于频繁,超过流控值(默认值是100次/60s)。

处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。

403

1010005

App_key or access_token is invalid.

错误的token信息。

处理建议:请检查接口请求中所携带的accessToken是否有误。

500

100001

Internal server error.

服务内部处理错误。

处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。

500

100220

Get AppKey from header failed.

获取appKey失败。

处理建议 : 请检查接口请求的header中是否携带appId。

503

100501

Congestion occurs, and the current network has been flow-controlled

发生拥塞,当前的网络已经被流控。