更新时间:2024-10-11 GMT+08:00

平台命令下发

功能介绍

用于平台向设备下发设备控制命令。平台下发命令后,需要设备及时将命令的执行结果返回给平台,如果设备没回响应,平台会认为命令执行超时。命令下发和消息下发的区别,请查看消息通信说明

低配置且资源受限或者对网络流量有要求的设备,不适合直接构造JSON数据与物联网平台通信时,可将原始二进制数据透传到物联网平台。通过开发编解码插件实现二进制数据到平台定义JSON格式的转换。

Topic

下行: $oc/devices/{device_id}/sys/commands/request_id={request_id}

上行:$oc/devices/{device_id}/sys/commands/response/request_id={request_id}

  • {request_id}用于唯一标识这次请求。设备侧收到下行请求的topic带该参数时,上行响应的topic需要将该参数值返回给平台。
  • 应用通过平台下发设备命令时,平台会生成唯一ID(command_id)用于标识该命令,并返回给应用。同时该唯一标识会通过设备命令下行Topic中的requst_id携带给设备。
  • 设备无法提前感知该request_id,在订阅该Topic时请使用通配符“#”来替代“request_id={request_id}”即为:$oc/devices/{device_id}/sys/commands/#。

下行请求参数说明

字段名

必选/可选

类型

参数描述

object_device_id

可选

String

参数解释:

  • 平台下发时,若为直连设备,不携带该参数。
  • 平台下发时,若为网关子设备,该参数为Topic中设备的子设备Id。

service_id

可选

String

参数解释:

设备的服务ID,在设备关联的产品模型中定义。

command_name

可选

String

参数解释:

设备命令名称,在设备关联的产品模型中定义。

paras

必选

Object

参数解释:

设备命令的执行参数,具体字段在设备关联的产品模型中定义。

上行响应参数说明

命令应答的json格式,具体字段在设备关联的产品模型中定义。

字段名

必选/可选

类型

参数描述

result_code

可选

Integer

参数解释:

标识命令的执行结果,0表示成功,其他表示设备执行结果为失败。不带默认为0。

response_name

可选

String

参数解释:

命令的响应名称。

paras

可选

Object

参数解释:

命令的响应参数,具体字段在设备关联的产品模型中定义。

下行请求示例

Topic: $oc/devices/{device_id}/sys/commands/request_id={request_id} 
数据格式:  
{
  "object_device_id": "{object_device_id}",
  "command_name": "ON_OFF",
  "service_id": "WaterMeter",
  "paras": {
    "value": "1"
  }
}

上行响应示例

Topic:$oc/devices/{device_id}/sys/commands/response/request_id={request_id}
数据格式:  
{
    "result_code": 0,
    "response_name": "COMMAND_RESPONSE",
    "paras": {
        "result": "success"
    }
}