ZigBee: Конфигурация

Материал из HOMEd Wiki
HOMEd > ZigBee > Конфигурация

Файл конфигурации

Конфигурация HOMEd ZigBee хранится в файле /etc/homed/homed-zigbee.conf. Пример файла конфигурации:

[log]
enabled=true
file=/var/log/homed.log

[mqtt]
host=localhost
port=1883
username=zigbee
password=secret
prefix=homed
names=false

[homeassistant]
enabled=true
legacy=false
prefix=homeassistant
status=homeassistant/status

[device]
database=/opt/homed-zigbee/database.json
properties=/opt/homed-zigbee/properties.json
options=/opt/homed-zigbee/options.json
external=/opt/homed-zigbee/external
library=/usr/share/homed-zigbee

[gpio]
status=71
blink=83
boot=109
reset=23

[zigbee]
adapter=znp
port=/dev/ttyUSB0
baudrate=115200
panid=0x1010
channel=11
reset=flow
write=false

[security]
enabled=true
key=0x000102030405060708090a0b0c0d0e0f

[debug]
port=false
adapter=false
zigbee=false

При изменении содержимого файла конфигурации служба автоматически перезапускается.

Параметры

[log]

параметр описание
enabled включение/выключение записи логов в файл
file путь к файлу лога

[mqtt]

параметр описание
host адрес брокера
port порт брокера
username имя пользователя для авторизации на брокере (может быть пустым)
password пароль для авторизации на брокере (может быть пустым)
prefix корневой топик
names использование имен устройств вместо адресов в топиках homed/fd/zigbee

[homeassistant]

параметр описание
enabled включение/выключение функции Home Assistant MQTT Discovery
legacy использование старой схемы формирования имен объектов (до Home Assistant 2023.8)
prefix корневой топик для Home Assistant MQTT Discovery
status топик для отслеживания состояния Home Assistant

[device]

параметр описание
library путь к файлу библиотеки устройств
database путь к файлу базы данных
properties путь к файлу, в котором будут храниться аеткуальные (последние известные) состояния устройств
options путь к файлу настройки индивидуальных опций устройств
external путь к директории пользовательских расширений библиотеки устройств

[gpio]

параметр описание
status порт светодиода для индикации режима добавления устройств
blink порт светодиода для индикации активности в сети
boot порт, к которому подключен вывод управления загрузчиком координатора
reset порт, к которому подключен вывод управления перезагрузкой координатора

[zigbee]

параметр описание
adapter тип адаптера, возможные значения: ezsp, zigate, znp
port последовательный порт, к которому подключен координатор или адрес для сетевого подключения
baudrate скорость последовательного порта (при локальном подключении)
panid идентификатор сети (в шестнадцатеричом формате, 2 байта)
channel номер канала ZigBee
power мощность передачи для адаптеров ezsp и znp в dBm
reset способ управления перезагрузкой координатора, возможные значения: gpio, flow, soft
write разрешение/запрет перезаписывать конфигурацию координатора, подробнее здесь

[security]

параметр описание
enabled включение/выключение использования ключа сети
key ключ сети (в шестнадцатеричом формате, 16 байт)

[debug]

параметр описание
port вывод в лог дампов данных последовательного порта
adapter вывод в лог дампов обмена данными с координатором
zigbee вывод в лог дампов входящих данных от устройств

GPIO

Управление GPIO осуществляется через драйвер /sys/class/gpio.

В качестве значения для каждого параметра в секции [gpio] может быть указан либо номер порта, либо путь к файлу управления портом, например: /sys/class/gpio/gpio32/value. Если используется путь к файлу управления, порт должен быть заведомо инициализирован.

Параметры status и blink могут содержать одинаковое значение, в этом случае для обоих функций будет использоваться один и тот же светодиод.

В случае, когда управление GPIO не поддерживается системой или просто не требуется, нужно либо указать значение -1 для ненужного порта, либо удалить из файла конфигурации соответствующие строки.

Сетевое подключение

HOMEd ZigBee поддерживает работу с координатором по сети, через TCP сокет, например, через ser2net в режиме RAW.

Для использования этой функции в качестве значения параметра port в секции [zigbee] нужно указать строку в формате tcp://address:port, например:

[zigbee]
...
port=tcp://192.168.1.23:4832
...

Конфигурация координатора

При каждом запуске HOMEd ZigBee проверяет настройки координатора и сравнивает их с настройками, заданными в файле конфигурации. В случае, если настройки НЕ совпадают, дальнейшее поведение службы определяется параметром write в секции [zigbee]. Если параметр настроен как true, служба перезапишет настройки координатора и продолжит запуск, в противном случае в логе появится запись о несовпадающем параметре и работа службы будет приостановлена.

Не рекомендую оставлять параметр write настроенным как true, поскольку это может привести к случайному изменению настроек координатора и необходимости повторного добавления всех устройств в сеть.

Примеры конфигурации

HOMEd Gateway Nano

[mqtt]
host=localhost
port=1883
username=
password=
prefix=homed
names=false

[homeassistant]
enabled=true
legacy=false
prefix=homeassistant
status=homeassistant/status

[device]
database=/opt/homed-zigbee/database.json
properties=/opt/homed-zigbee/properties.json
options=/opt/homed-zigbee/options.json
external=/opt/homed-zigbee/external
library=/usr/share/homed-zigbee
offsets=true

[gpio]
status=/sys/class/leds/amber:act/brightness
blink=/sys/class/leds/blue:zb/brightness
boot=/sys/class/gpio/zb:boot/value
reset=/sys/class/gpio/zb:reset/value

[zigbee]
adapter=znp
port=/dev/ttyS0
baudrate=115200
panid=0x1010
channel=11
reset=gpio
write=true

[security]
enabled=true
key=0x000102030405060708090a0b0c0d0e0f

[debug]
port=false
adapter=false
zigbee=false

HOMEd Gateway Pico

[mqtt]
host=localhost
port=1883
username=
password=
prefix=homed
names=false

[homeassistant]
enabled=true
legacy=false
prefix=homeassistant
status=homeassistant/status

[device]
database=/opt/homed-zigbee/database.json
properties=/opt/homed-zigbee/properties.json
options=/opt/homed-zigbee/options.json
external=/opt/homed-zigbee/external
library=/usr/share/homed-zigbee
offsets=true

[gpio]
status=/sys/class/leds/amber:status/brightness

[zigbee]
adapter=znp
port=/dev/ttyS2
baudrate=115200
panid=0x1010
channel=11
reset=soft
write=true

[security]
enabled=true
key=0x000102030405060708090a0b0c0d0e0f

[debug]
port=false
adapter=false
zigbee=false

Perenio PEACG01

[mqtt]
host=localhost
port=1883
username=homed
password=secret
names=true

[homeassistant]
enabled=true
legacy=false
prefix=homeassistant
status=homeassistant/status

[device]
database=/opt/homed-zigbee/database.json
properties=/opt/homed-zigbee/properties.json
options=/opt/homed-zigbee/options.json
external=/opt/homed-zigbee/external
library=/usr/share/homed-zigbee
offsets=true

[gpio]
status=/sys/class/leds/white:power/brightness
blink=/sys/class/leds/white:wlan/brightness
reset=/sys/class/gpio/zigbee:reset/value

[zigbee]
adapter=ezsp
port=/dev/ttyUSB0
baudrate=115200
panid=0x1010
channel=11
reset=gpio
write=true

[security]
enabled=true
key=0x000102030405060708090a0b0c0d0e0f

[debug]
port=false
adapter=false
zigbee=false

Xiaomi DGNWG05LM

[mqtt]
host=localhost
port=1883
username=
password=
prefix=homed
names=false

[homeassistant]
enabled=true
legacy=false
prefix=homeassistant
status=homeassistant/status

[device]
database=/opt/homed-zigbee/database.json
properties=/opt/homed-zigbee/properties.json
options=/opt/homed-zigbee/options.json
external=/opt/homed-zigbee/external
library=/usr/share/homed-zigbee
offsets=true

[gpio]
status=/sys/class/leds/blue/brightness

[zigbee]
adapter=zigate
port=/dev/ttymxc1
baudrate=115200
panid=0x1010
channel=11
reset=soft
write=true

[security]
enabled=true
key=0x000102030405060708090a0b0c0d0e0f

[debug]
port=false
adapter=false
zigbee=false

Что дальше?

После настройки HOMEd ZigBee можно приступать к добавлению устройств в сеть, при помощи веб-интерфейса или вручную.