平台命令下发
功能介绍
用于平台向设备下发设备控制命令。平台下发命令后,需要设备及时将命令的执行结果返回给平台,如果设备没回响应,平台会认为命令执行超时。命令下发和消息下发的区别,请查看消息通信说明。
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格式,具体字段在设备关联的产品模型中定义。
| 字段名 | 必选/可选 | 类型 | 参数描述 |
|---|---|---|---|
| result_code | 可选 | Integer | 标识命令的执行结果,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"
}
}
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.