Перейти к содержанию

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

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

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

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

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

[device]
database=/opt/homed-modbus/database.json

[port-1]
port=/dev/ttyS1
debug=false

[port-2]
port=tcp://192.168.1.42:48151
tcp=false
debug=false

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

Параметры

[log]

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

[mqtt]

Параметр Описание
host адрес брокера
port порт брокера
username имя пользователя для авторизации на брокере (может быть пустым)
password пароль для авторизации на брокере (может быть пустым)
prefix корневой топик
interval интервал публикации топика доступности в секундах
instance уникальное имя сервиса (может быть пустым), подробности ниже
names использование имен устройств вместо идентификаторов в MQTT-топиках

[homeassistant]

Параметр Описание
enabled включение/выключение функции Home Assistant MQTT Discovery
prefix корневой топик для Home Assistant MQTT Discovery
status топик для отслеживания состояния Home Assistant

[device]

Параметр Описание
database путь к файлу базы данных устройств
expose путь к файлу с опциями типовых способностей устройств

[port-N]

Параметр Описание
port последовательный порт или параметры сетевого подключения
tcp использование протокола Modbus TCP для сетевого подключения
debug вывод в лог дампов обмена данными с устройствами

Сервис может работать с большим количеством портов и устройств. Максимальное количество портов - 255.

Для каждого отдельного порта в файле конфигурации должна присутствовать отдельная секция с названием [port-N], где N это уникальнй номер, который, в дальнейшем, используется для настройки и идентификации устройств.

Кластеризация

HOMEd Modbus позволяет использовать несколько "инстансов" сервиса внутри одного корневого топика, это нужно, например, для централизованного управления всеми "инстансами" из одного веб-интерфейса или для организации перекрестных автоматизаций между "инстансами".

Для корректной работы этих функций необходимо, чтобы у каждого "инстанса" было свое уникальное имя, при этом имя одного из "инстансов" может быть пустым. Остальные сервисы устроены так, что смена уникальных имен для "инстансов" не должна влиять на их работу, однако не стоит забывать, что некоторые MQTT-топики сервисов публикуются с флагом retain, поэтому переименование "инстансов" без ручной зачистки таких топиков может привести к нежелательным последствиям.

Уникальное имя "инстанса" может быть строкой, состоящей из любых символов, за исключением спец-символов, используемых в MQTT-топиках: #, + и /.

Тем не менее, во избежание потенциальных проблем, рекомендуется использовать строки без пробелов, состоящие только из латинских букв и цифр, например: guestHouse.

Что дальше?

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