平台命令下发
功能介绍
用于平台向设备下发设备控制命令。平台下发命令后,需要设备及时将命令的执行结果返回给平台,如果设备没回响应,平台会认为命令执行超时。命令下发和消息下发的区别,请查看消息通信说明。
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需要将该参数值返回给平台。
- 设备侧订阅带{request_id}结尾的topic时,可以使用通配#,设备侧订阅平台命令下发的topic为:$oc/devices/{device_id}/sys/commands/#
下行请求参数说明
字段名 |
必选/可选 |
类型 |
参数描述 |
---|---|---|---|
object_device_id |
可选 |
String |
命令对应的目标设备ID,命令下发对应的最终目标设备,没有携带则表示目标设备即topic中指定的设备。 |
service_id |
可选 |
String |
设备的服务ID,在设备关联的产品模型中定义 |
command_name |
可选 |
String |
设备命令名称,在设备关联的产品模型中定义。 |
paras |
可选 |
Object |
设备命令的执行参数,具体字段在设备关联的产品模型中定义。 |
上行响应参数说明
命令应答的json格式,具体字段在设备关联的产品模型中定义。
下行请求示例
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" } }