本指南将帮助您熟悉ThingsBoard IoT Gateway的XMPP连接器配置。 请使用通用配置启用此连接器。 该连接器的用途是使用XMPP协议从物联网设备采集数据。
下面将说明连接器配置文件。
连接器配置:xmpp.json
连接器配置是一个JSON文件,包含如何连接设备、处理数据以及其他服务功能的信息。下面通过示例来了解配置文件的格式。
XMPP连接器配置文件示例。
“server”部分
此配置部分用于配置网关XMPP设备以及与XMPP服务器的连接。
| 参数 | 默认值 | 描述 |
|---|---|---|
| jid | gateway@localhost | XMPP用户账户的JID。 |
| password | password | XMPP用户账户的密码。 |
| host | localhost | XMPP服务器的主机地址。 |
| port | 5222 | XMPP服务器的端口。 |
| use_ssl | false | 指示是否应使用旧版SSL连接方式。 |
| disableStarttls | false | 禁用连接的TLS。 |
| forceStarttls | true | 指示如果服务器未声明支持STARTTLS,则应中止协商。 |
| timeout | 10000 | |
| plugins | [“xep_0030”,”xep_0323”,”xep_0325”] | 客户端将注册的插件列表。 |
配置部分如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"server": {
"jid": "gateway@localhost",
"password": "password",
"host": "localhost",
"port": 5222,
"use_ssl": false,
"disable_starttls": false,
"force_starttls": true,
"timeout": 10000,
"plugins": [
"xep_0030",
"xep_0323",
"xep_0325"
]
}
}
“devices”部分
此配置部分包含可以连接到连接器并发送数据的设备数组。这意味着连接器将根据JID拒绝所有未包含在此数组中的设备连接。
设备子部分
此对象配置部分包含处理传入数据的参数。
| 参数 | 默认值 | 描述 |
|---|---|---|
| jid | device@localhost/TMP_1101 | XMPP用户账户的JID。 |
| deviceNameExpression | ${serialNumber} | JSON路径表达式,用于查找设备名称。 |
| deviceTypeExpression | ${sensorType} | JSON路径表达式,用于查找设备类型。 |
| attributes | 此子部分包含传入请求的参数,这些参数将被解析为设备的属性。 | |
| … key | temperature | ThingsBoard中的属性名称。 |
| … value | ${temp} | 简单JSON表达式,用于在传入消息中查找值,该值随后将作为key参数的值发送到ThingsBoard实例。 |
| timeseries | 此子部分包含传入消息的参数,这些参数将被解析为设备的遥测数据。 | |
| … key | humidity | ThingsBoard中的遥测名称。 |
| … value | ${hum} | 简单JSON表达式,用于在传入消息中查找值,该值随后将作为key参数的值发送到ThingsBoard实例。 |
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"jid": "device@localhost/TMP_1101",
"deviceNameExpression": "${serialNumber}",
"deviceTypeExpression": "default",
"attributes": [
{
"key": "temperature",
"value": "${temp}"
}
],
"timeseries": [
{
"key": "humidity",
"value": "${hum}"
},
{
"key": "combination",
"value": "${temp}:${hum}"
}
]
}
属性更新子部分
此配置部分为可选项。ThingsBoard允许配置设备属性,并从设备应用程序获取其中一些属性。您可以将其视为设备的远程配置,使设备能够从ThingsBoard请求共享属性。详情请参阅用户指南。
“attributeUpdates”配置允许您配置将发送到XMPP设备的对应属性数据的格式。
| 参数 | 默认值 | 描述 |
|---|---|---|
| attributeOnThingsBoard | sharedName | 共享属性名称。 |
| valueExpression | {"${attributeKey}":"${attributeValue}"} | JSON路径表达式,用于创建将发送到设备的消息数据。 |
配置文件中此部分如下所示:
1
2
3
4
5
6
"attributeUpdates": [
{
"attributeOnThingsBoard": "shared",
"valueExpression": "{\"${attributeKey}\":\"${attributeValue}\"}"
}
]
服务端RPC子部分
ThingsBoard允许向直接连接到ThingsBoard或通过网关连接的设备发送RPC命令。
此部分提供的配置用于从ThingsBoard向设备发送RPC请求。
| 参数 | 默认值 | 描述 |
|---|---|---|
| methodRPC | rpcMethod1 | RPC方法名称。 |
| withResponse | true | 布尔值,决定是否将响应发送回ThingsBoard。 |
| valueExpression | ${params} | JSON路径表达式,用于创建将发送到设备的消息数据。 |
配置文件中此子部分如下所示:
1
2
3
4
5
6
7
"serverSideRpc": [
{
"methodRPC": "rpc1",
"withResponse": true,
"valueExpression": "${params}"
}
]
下一步
浏览与ThingsBoard主要功能相关的指南: