基本概念
文章主要介绍设备控制相关的概念
- 客户端RPC
- 服务端RPC
- RPC的请求类型
- RPC的请求格式
- 支持的协议类型
- 补充tb网关控制设备相关
在thingsboard中服务器 <=> 设备互相发送控制命令,即远程过程调用(RPC)
客户端RPC
设备发起的RPC:可以执行来自设备的请求,在后端应用一些计算或其他服务器端逻辑,然后将响应发送回设备
服务端RPC
服务器发起的RPC:可以将命令发送到设备并接收命令执行的结果
RPC的请求类型
服务器端RPC可以分为单向和双向(在请求参数中设置[oneway/twoway]):
- 单向RPC请求没有发送确认就发送到设备,不提供设备的任何响应。仅当在可配置的超时时间内没有与目标设备的活动连接时,RPC才可能失败。
- 双向RPC请求被发送到设备,在一定的超时时间内接收到来自设备的响应。服务器端请求将被阻止,直到目标设备回复该请求为止。
RPC的请求格式
不管什么协议只要是RPC,必须是如下JSON格式,method指定方法名params传对应参数{
"method": "setGpio",
"params": {
"pin": "23",
"value": 1
}
}
支持的协议类型
服务端RPC支持 HTTP
客户端RPC支持 MQTT,COAP,HTTP补充
前面说的都是直接通过mqtt coap http连接到thingsboard的设备的控制方法。
还可以通过tb-gateway(thingsboard提供的开源网关)将多种协议的设备通过tb网关接入thingsboard平台
例如:外部MQTT系统、Modbus、OPC-UA、BLE、Request、CAN、BACnet、ODBC、REST、SNMP等
这些协议的具体控制方法会在后续文章补充