# KNXnet/IP

KNXnet/IP 是一种基于标准互联网协议（IP）的通信协议，用于 KNX 家庭和建筑自动化系统,使得 KNX 设备可以通过以太网、Wi-Fi 或其他 IP 网络进行通信。

Neuron KNXnet/IP 插件支持与 KNXnet/IP 设备建立连接。

::: tip

由于 KNXnet/IP 协议的工作原理，如果使用虚拟化技术如虚拟机或 Docker 部署 Neuron，KNX 插件可能
无法正常工作。如果是在 Linux 主机中使用 docker 镜像部署 Neuron，那么需要使用 docker 选项`--net=host`。
在其他情况下，推荐您使用二进制安装包部署 Neuron。

:::

## 添加插件

在 **配置 -> 南向设备**，点击**添加设备**来创建设备节点，输入插件名称，插件类型选择 **KNXnet/IP** 启用插件。

## 设备配置

点击插件卡片或插件列，进入**设备配置**页。配置 Neuron 与设备建立连接所需的参数，下表为插件相关的配置项。

| 参数               | Description                        |
| ------------------ | ---------------------------------- |
| **发现端点 IP**    | KNXnet/IP 设备 IP，默认224.0.23.12 |
| **发现端点端口号** | KNXnet/IP 设备端口, 默认3671       |

注意:如果使用多拨地址 *224.0.23.12* 进行配置，通常要求设备与 Neuron 部署在同一网段中。

## 设置组和点位

完成插件的添加和配置后，要建立设备与 Neuron 之间的通信，首先为南向驱动程序添加组和点位。

完成设备配置后，在**南向设备**页，点击设备卡片/设备列进入**组列表**页。点击**创建**来创建组，设定组名称以及采集间隔。完成组的创建后，点击组名称进入**点位列表**页，添加需要采集的设备点位，包括点位地址，点位属性，数据类型等。

公共配置项部分可参考[连接南向设备](../south-devices.md)，本页将介绍支持的数据类型和地址格式部分。

### 数据类型

* BIT
* BOOL
* INT8
* UINT8
* INT16
* UINT16
* FLOAT

### 地址格式 1

* > GROUP_ADDRESS,INDIVIDUAL_ADDRESS

表示一个 KNX 设备地址及其所属的组地址。

- 进行读操作时，KNX 插件发送 `GroupValueRead` 隧道请求，在收到匹配设备地址的 `GroupValueResp` 报文时更新点位数据。
- 进行写操作时， KNX 插件发送一个 `GroupValueWrite` 隧道请求报文。

#### 地址示例

`0/0/1,1.1.1` 代表 KNX 组地址 `0/0/1`下的设备地址 `1.1.1`。

### 地址格式 2

* > GROUP_ADDRESS,INDIVIDUAL_ADDRESS,BIT

针对读取比特位数少于8的 `uint8` 类型数据，可使用该地址格式，如 KNX data point 类型 `B2` 和 `B1U3` 等。
其中 *BIT* 表示数据比特位数。

#### 地址示例

`0/0/1,1.1.1,2` 代表 KNX 组地址 `0/0/1`下的设备地址 `1.1.1`，数据为两个比特。

## 数据监控

完成点位的配置后，您可点击 **监控** -> **数据监控**查看设备信息以及反控设备，具体可参考[数据监控](../../../admin/monitoring.md)。
