KNX
Зависимости проекта
- библиотека knx
dpkg -i libknx-1.2.6-debian_bullseye_amd64.deb
В зависимостях от этой библиотеки есть библиотека boost версии не ниже 1.74
sudo apt-get install libboost-dev
- библиотека mosquitto
sudo apt-get install libmosquitto-dev
- библиотека jsoncpp
sudo apt-get install libjsoncpp-dev
- библиотека vlib
- библиотека pthread
Предварительные условия
Логирование
Логирование по умолчанию выполняется в файл
/var/log/knx_driver/knx_driver.log
Пользователь, запускающий программу, должен обладать правами на запись в этот файл.
Параметром запуска -l
можно изменить имя файла. Каталог записи логов изменить нельзя.
Файл конфигурации
Драйвер читает конфигурацию из файла по умолчанию
/etc/driver.json
либо из файла, указанного параметром запуска -c
.
Описание конфигурации см. ниже.
Пример конфигурационного файла расположен в каталоге config
./config/driver.json
./config/driver_test.json
Параметры запуска
- -c - используется указанный файл конфигурации (полный путь) вместо файла по умолчанию
- -d - выводить в журнал отладочную информацию
- -l - выводить логи в указанный файл вместо файла по умолчанию
- -v - выводить логирование в указанный файл вместо файла по умолчанию
Пример запуска с параметрами
./_bin/knx_driver -d -v -c /etc/knx_driver/config/knx_driver.json
Описание конфигурации
Файл driver.json соответствует требованиям к файлам конфигурации драйверов нового поколения. Ниже приведены требования к
каждой из секций со стороны драйвера.
mqtt
Обязательна. Авторизация пока не реализована.
Пример:
"mqtt": {
"port": 1883,
"url": "localhost"
}
port.connection
Обязательна.
type: "knx.ip200". Другие типы игнорируются.
tcp: обязательна. Авторизация пока не реализована
enabled: по умолчанию true. Если false, порт игнорируется.
poll_interval: по умолчанию 60. Интервал опроса в миллисекундах.
Пример:
"connection": {
"enabled": true,
"poll_interval": 60000,
"rto": 2000,
"sto": 2000,
"type": "knx.ip200",
"tcp": {
"url": "opc.tcp://10.4.2.115",
"port": 54000
}
}
port.devices
Обязательна. Содержит описания устройств KNX.
name: обязательна. Используется в топике сообщений.
cname: обязательна. По ней ищется набор параметров.
sid: не обязательна. В настоящей реализации не используется.
enabled: по умолчанию true. Если false, игнорируется.
Пример:
{
"name": "dali1",
"sid": 1,
"cname": "dali1"
}
port.parameters.config
Обязательна. Содержит описания параметров KNX и связь с устройствами.
cname: обязательна. По ней ищется связь с устройствами.
channels: обязательна. Содержит описания параметров.
port.parameters.channels
Массив параметров. Каждый параметр описывается следующими атрибутами.
name: обязательно. Используется в топике сообщений.
address: обязательно. Групповой адрес. Три неотицательных числа, разделенных /.
DPTs: обязательно. Тип данных параметра. Строка вида DPST-N-N, где N - неотрицательное число.
Read: по умолчанию true. Возможность чтения значения параметра.
Write: по умолчанию true. Возможность записи значения параметра.
enabled: по умолчанию true. Если false, игнорируется.
Пример:
{
"name": "[group1]on_off",
"address": "1/2/1",
"DPTs": "DPST-1-1",
"Read": false,
"Write": true
}