ThingsBoard文档

ThingsBoard平台使用文档。

RPC功能

ThingsBoard允许你从服务端应用程序向设备发送远程RPC调用,你也可以将命令发送到设备并接收命令执行的结果。

同样你可以执行来自设备的请求,在后端应用进行某些计算或服务端逻辑处理然后将结果反馈到设备。

本指南涵盖ThingsBoard RPC功能,阅读本指南后你将掌握以下内容:

  • RPC调用类型
  • 基础RPC实例
  • RPC客户端和服务器端API
  • RPC部件

RPC调用类型

Thinsboard RPC功能可以分为两种类型:设备发起的RPC调用和服务端发起的RPC调用。

为了使用更熟悉的名称我们将源自设备的RPC调用命名为客户端RPC调用,将源自服务器的RPC调用命名为服务端RPC调用。

image

服务器端RPC调用可以分为单向和双向:

  • 单向RPC请求直接发送请求,并且不对设备响应做任何处理。
  • 在超时期间内没有与之连接RPC调用才可能失败。

image

  • 双向RPC请求会发送到设备,并且超时期间内接收到来自设备的响应。
  • 服务端没有找到请求目标会被断开。

    image

客户端RPC

ThingsBoard提供了便捷的API可以从设备上运行的应用程序发送和接收RPC命令。

你可以在相应的参考页面中查看API和示例:

服务端RPC

ThingsBoard系统提供了RPC服务可以将RPC调用从服务端应用程序发送到设备。

如果需要发送RPC请求需要使用下面URL执行HTTP POST请求

http(s)://host:port/api/plugins/rpc/{callType}/{deviceId}

url说明:

  • callType 表示 oneway或者twoway
  • deviceId 表示设备ID

必填参数:

  • method - 表示json字符串格式的方法名
  • params - 表示json字符串格式的对象参数列表

例如:

resources/set-gpio-request.sh
curl -v -X POST -d @set-gpio-request.json http://localhost:8080/api/plugins/rpc/twoway/$DEVICE_ID \
--header "Content-Type:application/json" \
--header "X-Authorization: $JWT_TOKEN"
resources/set-gpio-request.json
{
  "method": "setGpio",
  "params": {
    "pin": "23",
    "value": 1
  }
}

注意 执行此请求需要使用有效的JWT令牌替换$JWT_TOKEN 该令牌应属于

  • 拥有TENANT_ADMIN角色的用户
  • 拥有CUSTOMER_USER角色的用户,该用户拥有$DEVICE_ID标识的设备

你可以按照以下指南获取令牌.

RPC规则节点

在实际业务流程中我们可以使用如下2个规则节点处理RPC请求。

RPC部件

了解更多详细信息 点击部件查看更多内容。