平台命令下发
功能介绍
用于平台向设备下发设备控制命令。平台下发命令后,需要设备及时将命令的执行结果返回给平台,如果设备没回响应,平台会认为命令执行超时。命令下发和消息下发的区别,请查看消息通信说明。
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中的request_id携带给设备。
- 设备无法提前感知该request_id,在订阅该Topic时请使用通配符“#”来替代“request_id={request_id}”即为:$oc/devices/{device_id}/sys/commands/#。
下行请求参数说明
上行响应参数说明
命令应答的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"
}
}