• 沒有找到結果。

DeviceCommandRespV4结构体。

4.3.8.3 修改设备命令

典型场景

第三方应用向设备下发命令后,如果由于命令排队、设备不在线等原因,物联网平台 还未把命令下发给设备执行,此时第三方应用可调用此接口修改该命令的状态信息。

当前仅支持把命令状态修改为CANCELED状态,即撤销命令的执行。

接口功能

支持第三方应用修改指定命令的状态信息,仅能修改还处于PENDING状态的命令,且 当前仅支持修改的命令状态为CANCELED,即撤销命令。

接口描述

def updateDeviceCommand(self, udcInDTO, deviceCommandId, appId, accessToken)

参数说明

参数 必选/可

类型 位置 描述

udcInDTO 必选 UpdateDevi ceComman dInDTO

body 见下表

UpdateDeviceCommandInDTO 的描述。

deviceCo

mmandId 必选 String path 要修改的命令ID,在调用创建设 备命令接口后获得。

appId 可选 String query 如果是本应用的设备,此参数值 可以填写None,否则填写授权 应用的appId。

accessTok

en 必选 String header 填写鉴权接口获取的 accessToken。

UpdateDeviceCommandInDTO

参数 必选/

可选

类型 位置 描述

status 必选 Strin

g body 命令执行结果,可选值:“CANCELED”,撤销 命令。

响应参数

UpdateDeviceCommandOutDTO

参数 类型 描述

commandI

d String(1-64

) 设备命令ID。

appId String(1-64

) 第三方应用的身份标识,用于唯一标识一个应用。开发

者可通过该标识来指定哪个应用来调用物联网平台的开 放API。

deviceId String(1-64

) 下发命令的设备ID,用于唯一标识一个设备。

command Command

DTOV4 下发命令的信息,具体参见CommandDTOV4结构体。

callbackUr

l String(1024

) 令状态变化通知地址,当命令状态变化时(执行失败,

执行成功,超时,发送,已送达)会通知第三方应用。

expireTime Integer(>=0

) 下发命令的超时时间,单位为秒,表示设备命令在创建

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

status String 下发命令的状态。

● “DEFAULT”表示未下发

● “EXPIRED”表示命令已经过期

● “SUCCESSFUL”表示命令已经成功执行

● “FAILED”表示命令执行失败

● “TIMEOUT”表示命令下发执行超时

● “CANCELED”表示命令已经被撤销执行 result ObjectNod

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

creationTi

me String(20) 命令的创建时间。

executeTi

me String(20) 命令执行的时间。

platformIs

suedTime String(20) 平台发送命令的时间。

参数 类型 描述 deliveredTi

me String(20) 平台将命令送达到设备的时间。

issuedTim

es Integer(>=0

) 平台发送命令的次数。

maxRetran

smit Integer(0~3

) 命令下发最大重传次数。

CommandDTOV4结构体说明:

参数 必选/可 选

类型 位置 描述

serviceI

d 必选 String(1-6

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

method 必选 String(1-1

28) body 命令服务下具体的命令名称,服务属 性等。

paras 可选 Object body 命令参数的jsonString,具体格式需 要应用和设备约定。

错误码

Http状 态码

错误码 错误描述 说明

200 100203 The

application is not existed.

应用不存在。

处理建议:

● 请检查HTTP请求头域中携带的appId是 否有误。

● 请检查请求路径(url)中传入的appId是 否有误。

200 100217 The

application hasn't been authorized.

应用未被授权。

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

Http状 态码

错误码 错误描述 说明

200 100418 The

deviceData is not existed.

设备信息不存在。

处理建议:

● 请求参数中携带的deviceId错误。请确认 该deviceId是否属于该appId或者

deviceId是否写错。

● Header中携带的appId有误,请确认该 appId下是否有该deviceId。

● 如果URL中携带了可选参数appId,请检 查该appId是否有误。

200 100428 The device is

not online. 设备不在线。

处理建议:请检查设备与物联网平台的连接 是否正常。

200 100431 The

serviceType is not exist.

服务类型不存在。

处理建议:

● 请检查该设备的Profile文件是否已上传 到物联网平台。

● 请检查请求参数是否正确,或者 serviceId在Profile文件中是否存在。

200 100434 The device command is not existed.

设备命令不存在。

处理建议:请检查接口请求中的设备命令ID 是否正确。

200 100435 The device command already canceled, expired or executed, Cannot cancel.

设备命令已经取消,过期或执行,不能取 消。

400 100022 The input is

invalid. 输入参数无效。

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

403 101000

9 app throttle

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

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

403 101000

5 Invalid access token or appId.

错误的token信息。

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

Http状 态码

错误码 错误描述 说明

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

newCallbackUr

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

def createDeviceCmdCancelTask(self, cdcctInDTO, appId, accessToken)