平台命令下发
功能介绍
用于平台向设备下发设备控制命令。平台下发命令后,需要设备及时将命令的执行结果返回给平台,如果设备没回响应,平台会认为命令执行超时。命令下发和消息下发的区别,请查看消息通信说明。
低配置且资源受限或者对网络流量有要求的设备,不适合直接构造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/#。
下行请求参数说明
上行响应参数说明
命令应答的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" } }