基本概念

文章主要介绍设备控制相关的概念

  • 客户端RPC
  • 服务端RPC
  • RPC的请求类型
  • RPC的请求格式
  • 支持的协议类型
  • 补充tb网关控制设备相关

在thingsboard中服务器 <=> 设备互相发送控制命令,即远程过程调用(RPC)

客户端RPC

设备发起的RPC可以执行来自设备的请求,在后端应用一些计算或其他服务器端逻辑,然后将响应发送回设备

服务端RPC

服务器发起的RPC可以将命令发送到设备并接收命令执行的结果

RPC的请求类型

服务器端RPC可以分为单向和双向(在请求参数中设置[oneway/twoway]):

  • 单向RPC请求没有发送确认就发送到设备,不提供设备的任何响应。仅当在可配置的超时时间内没有与目标设备的活动连接时,RPC才可能失败。
  • 双向RPC请求被发送到设备,在一定的超时时间内接收到来自设备的响应。服务器端请求将被阻止,直到目标设备回复该请求为止。

    RPC的请求格式

    不管什么协议只要是RPC,必须是如下JSON格式,method指定方法名params传对应参数
    1. {
    2. "method": "setGpio",
    3. "params": {
    4. "pin": "23",
    5. "value": 1
    6. }
    7. }

    支持的协议类型

    服务端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等
    这些协议的具体控制方法会在后续文章补充
    image.png
    小胖点赞.gif