目录
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发送数据(默认策略)。

“Socket”部分
“Socket”部分用于配置本地Socket设置。
本配置部分包含 socket 的设置,例如:
- Connection type(连接类型) - socket 类型,可为 TCP 或 UDP;
- Address(地址) - connector 绑定地址;
- Port(端口) - connector 绑定端口;
- Buffer size(缓冲区大小) - 接收数据块缓冲区大小。

|
本配置部分包含 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,
...
}
|

|
“Devices”部分
此配置部分包含一个对象数组,其中包含可以连接到连接器Socket并向其发送数据的客户端。任何未包含在此数组中的连接都将被连接器拒绝。
“Device”子部分
添加新设备时,点击“加号”图标:

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

|
| 参数 |
默认值 |
说明 |
| 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",
...
|

|
让我们查看更多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”。
点击“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 发送数据(默认策略)。

更多关于 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”。
点击“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

|
“Attribute update”子部分
此配置部分是可选的。
ThingsBoard允许配置设备属性并从设备应用程序获取部分属性。您可以将其视为设备的远程配置,
使设备能够从ThingsBoard请求共享属性。详情请参阅用户指南。
添加新 attribute update 时,请按以下步骤操作:
-
点击“Attribute updates”部分的“铅笔”图标以添加新 attribute update;
-
在打开窗口中点击“Add attribute update”;
-
选择 encoding 并填写“Attribute on platform”字段。点击“Apply”。
点击“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"
}
]
|

|
“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"
}
]
|

|
此外,每个遥测和属性参数都内置了SET RPC方法,无需手动配置。要使用它们,请确保设置了所有必需的参数(对于Socket连接器,
这些参数如下:
withResponse、methodProcessing、encoding)。
请参阅指南。
下一步
浏览与ThingsBoard主要功能相关的指南: