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

KNX连接器配置

本指南将帮助您熟悉ThingsBoard IoT Gateway的KNX连接器配置。 请使用通用配置指南启用此连接器。该连接器的 用途是将基于KNX的设备接入ThingsBoard,处理来自KNX设备的数据并控制 KNX自动化系统。

下面将说明连接器配置文件。

连接器配置:knx.json

连接器配置是一个JSON文件,包含如何连接KNX设备、处理数据及其他服务功能的信息。下面通过示例来了解配置文件的格式。

KNX连接器配置文件示例。

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
{
  "logLevel": "INFO",
  "client": {
    "type": "AUTOMATIC",
    "addressFormat": "LONG",
    "localIp": "127.0.0.1",
    "localPort": 3671,
    "autoReconnect": true,
    "autoReconnectWait": 3,
    "gatewaysScanner": {
      "enabled": true,
      "scanPeriod": 3,
      "stopOnFound": false
    }
  },
  "devices": [
    {
      "deviceInfo": {
        "deviceNameDataType": "string",
        "deviceNameExpressionSource": "expression",
        "deviceNameExpression": "Device ${1/0/5}",
        "deviceProfileDataType": "none",
        "deviceProfileExpressionSource": "constant",
        "deviceProfileNameExpression": "default"
      },
      "pollPeriod": 5000,
      "attributes": [
        {
          "type": "temperature",
          "key": "temperature",
          "groupAddress": "1/0/6"
        }
      ],
      "timeseries": [
        {
          "type": "humidity",
          "key": "humidity",
          "groupAddress": "1/0/7"
        }
      ]
    }
  ],
  "attributeUpdates": [
    {
      "deviceNameFilter": ".*",
      "dataType": "percent_U8",
      "groupAddress": "1/0/9",
      "key": "brightness"
    }
  ],
  "serverSideRpc": [
    {
      "requestType": "read",
      "deviceNameFilter": ".*",
      "method": "get_name",
      "dataType": "string",
      "groupAddress": "1/0/5"
    },
    {
      "requestType": "write",
      "deviceNameFilter": ".*",
      "method": "set_name",
      "dataType": "string",
      "groupAddress": "1/0/5"
    }
  ]
}

“Client”部分

本部分配置用于设置KNX客户端,该客户端负责与KNX路由器的通信。

参数 默认值 描述
type AUTOMATIC 连接类型(详细描述见下文):AUTOMATIC、ROUTING、TUNNELING、TUNNELING_TCP、TUNNELING_TCP_SECURE。
addressFormat LONG 地址格式(详细描述见下文):SHORT、LONG、FREE。
localIP   本地IP或接口名称。
localPort   本地端口。
autoReconnect true 如果无法建立连接,自动重新连接KNX/IP隧道设备。
autoReconnectWait 3 尝试重新连接KNX/IP隧道设备前等待n秒。
gatewayIP   KNX/IP隧道设备的IP或主机名。
gatewayPort 3671 KNX/IP隧道设备的端口。
individualAddress   独立地址。
rateLimit 0 可通过报文队列限制到KNX/IP接口的出站流量。0表示禁用速率限制器。
multicastGroup 224.0.23.12 KNXnet/IP路由的组播组。
multicastPort 3671 KNXnet/IP路由的组播端口。
stateUpdater false 用于设置设备使用的默认状态更新机制。

地址格式:

  • SHORT -类似”1/34”的表示方式,不带中间组;
  • LONG -类似”1/2/34”的表示方式,带中间组;
  • FREE -整数或十六进制表示。

连接类型:

  • AUTOMATIC -使用GatewayScanner在网络中搜索和发现KNX/IP设备;
  • ROUTING -使用KNX/IP组播路由;
  • TUNNELING -通过UDP连接到特定的KNX/IP隧道设备;
  • TUNNELING_TCP -通过TCP连接到特定的KNX/IP隧道v2设备;
  • TUNNELING_TCP_SECURE -通过安全TCP连接到特定的KNX/IP隧道v2设备。

示例:

1
2
3
4
5
6
7
8
"client": {
  "type": "AUTOMATIC",
  "addressFormat": "LONG",
  "localIp": "127.0.0.1",
  "localPort": 3671,
  "autoReconnect": true,
  "autoReconnectWait": 3,
},

“Security”子部分

文档信息图标

默认情况下,连接器使用不安全的连接。

KNX协议安全由两种主要安全机制组成,旨在保护KNX系统中的通信:

  • KNX IP Secure -加密和保护KNX IP设备(路由器和接口)之间通过IP网络的通信;
  • KNX Data Secure -在报文(数据)级别加密通信,防止未经授权地控制或读取KNX组地址;
  • KNX Secure Tunneling(扩展KNX IP Secure)-加密KNX安全IP接口与客户端之间的通信。

要启用安全功能,您需要在”client“部分的”security“子部分中设置以下参数:

保护通过基于以太网/IP 的网络传输的数据,防止未授权访问和篡改。

这些参数可在 “security” 子节中配置:

参数 说明
backbone_key 用于 KNX Secure Routing,以十六进制表示。
latency_ms KNX Secure Routing 的延迟(毫秒)。

配置文件中此子节如下所示:

1
2
3
4
"security": {
    "backbone_key": "secret",
    "latency_ms": 100
}

保护任意介质(如 TP、RF 或 IP)上的敏感 KNX 消息。

这些参数可在 “security” 子节中配置:

参数 说明
knxkeys_file_path knxkeys 文件的完整路径(包含文件名)。
knxkeys_password 用于解密 knxkeys 文件的密码。

配置文件中此子节如下所示:

1
2
3
4
"security": {
    "knxkeys_file_path": "/path/to/knxkeys.knxkeys",
    "knxkeys_password": "password"
}

为安全隧道会话提供认证与加密。

这些参数可在 “security” 子节中配置:

参数 说明
backbone_key 用于 KNX Secure Routing,以十六进制表示。
latency_ms KNX Secure Routing 的延迟(毫秒)。
user_id 安全隧道会话中用户认证的标识符。
device_authentication_password 连接隧道时使用的认证密码。
user_password 用户密码。

配置文件中此子节如下所示:

1
2
3
4
5
6
7
"security": {
    "backbone_key": "secret",
    "latency_ms": 100,
    "user_id": "user",
    "device_authentication_password": "password",
    "user_password": "password"
}

“Gateways Scanner”子部分

当您不知道KNX路由器的IP地址时,网关扫描器非常有用。它会扫描网络中的KNX路由器,并在日志中打印检测到的IP地址。

以下参数可在”gatewaysScanner“子部分中进行配置:

参数 默认值 描述
enabled true 启用网关扫描器。
scanPeriod 3 用于设置扫描周期(秒)。
stopOnFound false 找到第一个KNX路由器时停止扫描。

配置文件中此子部分如下所示:

1
2
3
4
5
"gatewaysScanner": {
  "enabled": true,
  "scanPeriod": 3,
  "stopOnFound": false
}

输出示例:

1
2
3
4
5
Found KNX gateway:
- Calimero test network 1.1.0
  192.168.1.160:3671
  Tunneling: TCP
  Routing: Yes

“Devices”部分

本部分用于配置设备轮询周期和数据处理。该部分由对象数组组成,每个对象包含以下字段:

  • deviceInfo -设备名称和配置文件配置。
  • pollPeriod -轮询周期(毫秒)。
  • attributes -包含属性配置的对象数组。
  • timeseries -包含时间序列配置的对象数组。

设备配置的总体视图如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"devices": [
  {
    "deviceInfo": {
    ...
    },
    "pollPeriod": 5000,
    "attributes": [
    ...
    ],
    "timeseries": [
    ...
    ]        
  }
]

“Device Info”子部分

本子部分用于配置将在ThingsBoard上创建的设备名称和配置文件。 以下参数可在设备对象的”deviceInfo“子部分中进行配置:

参数 默认值 描述
deviceNameDataType string 值类型。
deviceNameExpressionSource expression 表达式来源:expression或constant。
deviceNameExpression Device ${1/0/5} 设备名称表达式。
deviceProfileDataType none 值类型。
deviceProfileExpressionSource constant 表达式来源:expression或constant。
deviceProfileNameExpression default 设备配置文件表达式。

配置文件中此子部分如下所示:

1
2
3
4
5
6
7
8
"deviceInfo": {
  "deviceNameDataType": "string",
  "deviceNameExpressionSource": "expression",
  "deviceNameExpression": "Device ${1/0/5}",
  "deviceProfileDataType": "none",
  "deviceProfileExpressionSource": "constant",
  "deviceProfileNameExpression": "default"
},

“Attributes”和”Timeseries”子部分

这些子部分用于配置将发送到ThingsBoard的遥测数据和属性,并提供处理KNX设备数据的设置。

下表描述了属性和时间序列参数:

参数 描述
type 数据类型。
key 键名称。
groupAddress 组地址。

属性部分示例:

1
2
3
4
5
6
7
"attributes": [
  {
    "type": "temperature",
    "key": "temperature",
    "groupAddress": "1/0/6"
  }
],

时间序列部分示例:

1
2
3
4
5
6
7
"timeseries": [
  {
    "type": "humidity",
    "key": "humidity",
    "groupAddress": "1/0/7"
  }
]

“Attribute Updates”部分

此配置部分是可选的。

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

“attributeRequests”配置允许您配置将发送到KNX设备的相应属性数据的格式。该配置是一个对象数组,每个对象包含以下字段:

参数 默认值 描述
deviceNameFilter .* 用于确定执行哪个功能的正则表达式设备名称过滤器。
dataType string 值类型。
groupAddress 1/0/5 组地址。
key sharedName 共享属性名称。

配置文件中此子部分如下所示:

1
2
3
4
5
6
7
8
"attributeUpdates": [
  {
    "deviceNameFilter": ".*",
    "dataType": "percent_U8",
    "groupAddress": "1/0/9",
    "key": "brightness"
  }
],

“RPC”部分

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

本部分提供的配置用于从ThingsBoard向设备发送RPC请求。该配置是一个对象数组,每个对象包含以下字段:

参数 默认值 描述
requestType read 请求类型:read或write。
deviceNameFilter .* 用于确定执行哪个功能的正则表达式设备名称过滤器。
method rpcMethod1 RPC方法名称。
dataType string 值类型。
groupAddress 1/0/5 组地址。

配置文件中此子部分如下所示:

1
2
3
4
5
6
7
8
9
"serverSideRpc": [
  {
    "requestType": "read",
    "deviceNameFilter": ".*",
    "method": "get_name",
    "dataType": "string",
    "groupAddress": "1/0/5"
  }
]

此外,每个遥测和属性参数都内置了SET RPC方法,无需手动配置。要使用它们,请确保设置所有必需的参数(对于KNX连接器, 这些参数包括:dataTypegroupAddressvalue -仅当RPC方法名称为”set“时)。 更多详情请参阅指南

下一步

探索与ThingsBoard主要功能相关的指南: