产品定价 立即试用
IoT网关
文档 > 配置指南 > Socket连接器
入门
安装
目录

Socket连接器配置

本指南将帮助您熟悉ThingsBoard IoT Gateway的Socket连接器配置。 请使用通用配置指南启用此连接器。 Socket连接器在本地运行服务器,供其他设备连接。当您有设备可通过TCP或UDP协议发送数据时, 此连接器非常有用。

我们将在下面描述连接器配置文件。

文档信息图标

请注意: 如果您是IoT Gateway的新用户,请使用”基础”配置模式。如果您熟悉IoT Gateway的配置,可以使用”高级”配置模式。

连接器配置

连接器配置是一个UI表单,包含如何连接到外部服务器、如何处理数据以及其他服务功能的信息。让我们使用以下示例来查看配置文件的格式。 让我们全面了解所有可用设置。我们将详细介绍每个选项,以确保 我们充分理解它们的功能和含义。这样,我们就能做出明智的决定, 选择最适合我们需求和偏好的设置。

“General”部分

此配置部分包含连接器的通用设置,例如:

  • Name -用于日志记录和保存到持久化设备的连接器名称; -日志配置:
    • Enable remote logging -启用连接器的远程日志记录;
    • Logging level -本地和远程日志的日志级别:INFO、DEBUG、WARNING、ERROR、CRITICAL、NONE;
  • Send data only on change -仅在数据自上次检查以来发生变化时发送数据,否则每次检查后都会发送数据;
  • Report strategy -向ThingsBoard发送数据的策略:
    • Report period -向ThingsBoard发送数据的周期,单位为毫秒;
    • Type -上报策略的类型:
      • On report period -在上报周期结束后向ThingsBoard发送数据;
      • On value change -当值发生变化时向ThingsBoard发送数据;
      • On value change or report period -当值发生变化或上报周期结束时向ThingsBoard发送数据;
      • On received -从设备接收到数据后向ThingsBoard发送数据(默认策略)。
文档信息图标

有关上报策略的更多信息,请参阅此处

image

文档信息图标

基础配置和高级配置的设置相同。

“Socket”部分

“Socket”部分用于配置本地Socket设置。

本配置部分包含 socket 的设置,例如:

  • Connection type(连接类型) - socket 类型,可为 TCP 或 UDP;
  • Address(地址) - connector 绑定地址;
  • Port(端口) - connector 绑定端口;
  • Buffer size(缓冲区大小) - 接收数据块缓冲区大小。

image

本配置部分包含 socket 的设置,例如:

参数 默认值 说明
name TCP Connector Example Connector 名称
type TCP Socket 类型,可为 TCP 或 UDP
address 127.0.0.1 Connector 绑定地址
port 50000 Connector 绑定端口
bufferSize 1024 接收数据块缓冲区大小

配置部分如下所示:

1
2
3
4
5
6
7
{
  "type": "TCP",
  "address": "127.0.0.1",
  "port": 50000,
  "bufferSize": 1024,
  ...
}

image

“Devices”部分

此配置部分包含一个对象数组,其中包含可以连接到连接器Socket并向其发送数据的客户端。任何未包含在此数组中的连接都将被连接器拒绝。

“Device”子部分

添加新设备时,点击“加号”图标:

image

在打开的模态窗口中填写以下字段:

  • Address filter(地址过滤器) - 用于过滤允许连接到 connector 的 IP 地址。
  • Device name(设备名称) - ThingsBoard 中的设备名称。
  • Device profile(设备配置) - ThingsBoard 的 device profile,默认无此参数,可自行添加。
  • Encoding(编码) - 将字符串数据写入存储时使用的编码。

image

参数 默认值 说明
addressFilter . 用于过滤允许连接到 connector 的 IP 地址。
deviceName Device Example ThingsBoard 中的设备名称。
deviceType default ThingsBoard 的设备类型,默认无此参数,可自行添加。
encoding utf-8 将字符串数据写入存储时使用的编码。

示例:

1
2
3
4
5
6
{
  "address": "127.0.0.1:50001",
  "deviceName": "Device Example",
  "deviceType": "default",
  "encoding": "utf-8",
  ...

image

让我们查看更多IP地址过滤的示例:

例如,我们有一个IP地址为192.168.0.120:5001的设备。现在,让我们看一下该字段的配置示例, 以允许不同IP地址变体的连接:

1.只有一个具有指定IP地址和端口的设备可以连接:

Address filter: 192.168.0.120:5001 2.允许任何IP地址的设备,但仅限端口5001:

Address filter: *:5001 3.允许所有IP地址为192.168.0.120的设备使用任意端口:

Address filter: 192.168.0.120:* 4.允许所有IP地址和任意端口的设备:

Address filter: :

“Time series”和”Attributes”子部分

此配置部分包含处理传入数据的参数。

本 converter 面向二进制 payload。它直接解析二进制数据以获取 attribute 和 time series,使用特定字节位置进行数据提取。

添加新的 time series 或 attribute key 时,请按以下步骤操作:

  • 点击“Attributes”部分的“铅笔”图标以添加新 attribute key;

  • 在打开窗口中点击“Add attribute”;

  • 输入 key 名称并填写 字节位置。点击“Apply”;

  • 点击“Time series”部分的“铅笔”图标以添加新 time series key;

  • 在打开窗口中点击“Add time series”;

  • 输入 key 名称、填写 字节位置并点击“Apply”。

可为每个 time series 或 attribute 启用特定的上报策略。该策略定义数据发送到 ThingsBoard 服务器的频率。可用策略如下:

  • On report period(按上报周期) - 在上报周期后向 ThingsBoard 发送数据;
  • On value change(按值变化) - 值变化时向 ThingsBoard 发送数据;
  • On value change or report period(按值变化或上报周期) - 值变化或到达上报周期时向 ThingsBoard 发送数据;
  • On received(按接收) - 从设备接收数据后向 ThingsBoard 发送数据(默认策略)。

image

文档信息图标

更多关于 report strategy 的信息请参见此处

本 converter 面向二进制 payload。它直接解析二进制数据以获取 attribute 和 time series,使用特定字节位置进行数据提取。

参数 默认值 说明
telemetry   本小节包含消息中将被解释为设备 telemetry 的参数。
… key temp ThingsBoard 中 telemetry 的名称。
… byteFrom 0 用于从指定索引开始切片接收数据。
… byteTo -1 用于切片接收数据到指定索引。
attributes   本小节包含请求中将被解释为设备 attribute 的参数。
… key hum ThingsBoard 中 attribute 的名称。
… byteFrom 2 用于从指定索引开始切片接收数据。
… byteTo 4 用于切片接收数据到指定索引。

attributes 部分使用与 telemetry 部分相同的参数。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  "address": "127.0.0.1:50001",
  "deviceName": "Device Example",
  "deviceType": "default",
  "encoding": "utf-8",
  "telemetry": [
    {
      "key": "temp",
      "byteFrom": 0,
      "byteTo": -1
    },
    {
      "key": "hum",
      "byteFrom": 0,
      "byteTo": 2
    }
  ],
  "attributes": [
    {
      "key": "name",
      "byteFrom": 0,
      "byteTo": -1
    },
    {
      "key": "num",
      "byteFrom": 2,
      "byteTo": 4
    }
  ]
}

“Attribute request”子部分

此配置部分是可选的。

为了向ThingsBoard服务器节点请求客户端或共享设备属性,Gateway允许 发送属性请求。

添加新 attribute request 时,请按以下步骤操作:

  • 点击“Attribute requests”部分的“铅笔”图标以添加新 attribute request;

  • 在打开窗口中点击“Add attribute request”;

  • 选择 request 类型,输入 request 表达式和 attribute 名称表达式。点击“Apply”。

参数 默认值 说明
type shared 请求的 attribute 类型,可为 “shared” 或 “client”。
requestExpression ${[0:3]==atr} 用于判断来自设备的 request 是否为 “Attribute Request” 的表达式。
attributeNameExpression [3:] 用于从接收数据中获取所请求 attribute 名称的表达式。

本小节配置如下所示:

1
2
3
4
5
6
7
"attributeRequests": [
  {
    "type": "shared",
    "requestExpression": "${[0:3]==atr}",
    "attributeNameExpression": "[3:]"
  }
]

此外,可一次请求多个 attribute。只需在 attributeNameExpression 参数中再添加一个切片表达式。例如,若要在一次 request 中请求两个 shared attribute,配置如下:

1
2
3
4
5
6
7
"attributeRequests": [
  {
    "type": "shared",
    "requestExpression": "${[0:3]==atr}",
    "attributeNameExpression": "[4:19][20:]"
  }
]

即需发送以下消息以请求两个 shared attribute: atr sharedAttribute sharedAttribute1

image

“Attribute update”子部分

此配置部分是可选的。

ThingsBoard允许配置设备属性并从设备应用程序获取部分属性。您可以将其视为设备的远程配置, 使设备能够从ThingsBoard请求共享属性。详情请参阅用户指南

添加新 attribute update 时,请按以下步骤操作:

  • 点击“Attribute updates”部分的“铅笔”图标以添加新 attribute update;

  • 在打开窗口中点击“Add attribute update”;

  • 选择 encoding 并填写“Attribute on platform”字段。点击“Apply”。

“attributeUpdates” 配置允许设置将发送到服务器的对应 attribute 数据格式。

参数 默认值 说明
encoding utf-16 将接收到的字符串数据写入存储时使用的编码。
attributeOnThingsBoard sharedName Shared attribute 名称

配置文件中本小节如下所示:

1
2
3
4
5
6
"attributeUpdates": [
  {
    "encoding": "utf-16",
    "attributeOnThingsBoard": "sharedName"
  }
]

image

“RPC methods”子部分

此配置部分是可选的。

ThingsBoard允许向直接连接到ThingsBoard或通过Gateway连接的设备发送RPC命令。

添加新 RPC 方法时,请按以下步骤操作:

  • 点击“RPC methods”部分的“铅笔”图标以添加新 RPC;

  • 在打开窗口中点击“Add method”;

  • 填写“Method name”字段,选择 encoding,勾选/取消勾选“With Response”字段。点击“Apply”。

本部分的配置用于从 ThingsBoard 向设备发送 RPC 请求。

参数 默认值 说明
methodRPC rpcMethod1 RPC 方法名称。
withResponse true 布尔值,确定是否向 ThingsBoard 返回响应。
methodProcessing write 操作类型。
encoding utf-8 将接收到的字符串数据写入存储时使用的编码。

配置文件中本小节如下所示:

1
2
3
4
5
6
7
8
"serverSideRpc": [
  {
    "methodRPC": "rpcMethod1",
    "withResponse": true,
    "methodProcessing": "write",
    "encoding": "utf-8"
  }
]

image

此外,每个遥测和属性参数都内置了SET RPC方法,无需手动配置。要使用它们,请确保设置了所有必需的参数(对于Socket连接器, 这些参数如下: withResponsemethodProcessingencoding)。 请参阅指南

下一步

浏览与ThingsBoard主要功能相关的指南: