什么是指令下发?
在物联网(IoT)系统中,指令下发是指从云端平台向设备发送控制命令的过程。 ThingsBoard 作为开源的物联网平台,支持通过其 REST API 或规则链机制向设备下发指令。
基本原理
ThingsBoard 中,设备通过 MQTT、HTTP 或 CoAP 协议连接到平台。平台可通过以下方式下发指令:
- 使用
/api/plugins/rpc/twoway/{deviceId}接口发送双向 RPC 请求。 - 在仪表盘中使用控件(如开关)触发 RPC 调用。
- 通过规则链中的“RPC 节点”自动下发指令。
使用 REST API 下发指令(示例)
以下是一个使用 JavaScript 调用 ThingsBoard REST API 向设备发送指令的简单示例:
fetch('https://your-thingsboard-url.com/api/plugins/rpc/twoway/DEVICE_ID', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Authorization': 'Bearer YOUR_ACCESS_TOKEN'
},
body: JSON.stringify({
method: "setRelay",
params: { enabled: true }
})
})
.then(response => response.json())
.then(data => console.log('响应:', data))
.catch(error => console.error('错误:', error));
请将 YOUR_ACCESS_TOKEN 和 DEVICE_ID 替换为实际值。
注意事项
- 设备必须在线并订阅了 RPC 相关主题(如
v1/devices/me/rpc/request/+)。 - 确保访问令牌具有足够的权限(通常为租户管理员或客户用户)。
- 双向 RPC 需要设备在指定时间内返回响应,否则请求会超时。