💡注意:
1、进行命令下发时,请保持设备正常 在线 在线 在线 ‼️‼️‼️‼️‼️‼️‼️‼️
2、命令下发分 单向 和 双向 两种,双向需要设备端进行 回复 操作
前置条件
设备已经正常上线,如需了解上线流程。
请参考 模拟设备连接(直连) 和 模拟设备连接(网关+网关子设备)
单向命令下发
直连和网关命令下发
MQTT
调整物模型属性
💡注意:
在设备详情页面的物模型属性下发,需要设置对应的物模型属性为 读写 模式
设备需要订阅主题:v1/devices/me/rpc/request/+
如果物模型属性为 只读 模式,请修改物模型属性为 读写 模式。
命令下发
💡注意:
mqtt协议设备命令下发内容只能是json格式。
自定义命令下发
属性下发
TCP
MODBUS
调整物模型属性
💡注意:
在设备详情页面的物模型属性下发,需要设置对应的物模型属性为 读写 模式,也就是扩展描述符时选择对应的写入功能码。
命令下发
💡注意:
modbus协议设备命令下发只能为hex。
属性下发
自定义
调整物模型属性
命令下发
HTTP
客户端订阅RPC命令
用户可从服务器订阅RPC命令,发送带有可选“timeout”请求参数的GET请求到以下URL:
http(s)://host:port/api/v1/$ACCESS_TOKEN/rpc?timeout=2000
一旦订阅,如果没有对特定设备的请求,客户端可能会收到RPC请求或超时消息。RPC请求体示例如下所示:
{
"id": "1",
"DO1":true
}
- id – 请求id,整数请求标识符;可用于双向命令的响应。除开id以外的数据,均为用户输入的数据。
客户端RPC命令响应
可以使用POST请求对以下URL进行回复:
http(s)://host:port/api/v1/$ACCESS_TOKEN/rpc/{$id}
双向命令下发
💡注意:
双向命令下发目前只推荐MQTT,TCP(Modbus-RTU、Modbus-TCP、自定义)不支持。
双向命令下发需要设备端收到服务端下发的命令后,对服务端进行命令响应
响应主题:v1/devices/me/rpc/response/$request_id
$request_id说明:同一个设备每次收到的请求会 自动 + 1 ,所以响应的主题是变化的。
例如:v1/devices/me/rpc/response/0 和 v1/devices/me/rpc/response/1
以下是MQTT直连设备的双向命令下发示例:
自定义命令
设备为在线状态,且命令内容是JSON格式的数据
服务
已存在的服务需为同步调用方式,如果为异步调用方式请进行修改。且设备为在线状态
状态说明
响应成功:说明双向命令下发,设备正常响应了数据
已过期:说明设备未收到命令或者设备收到命令未响应
发送成功:单向(设备已收到命令)