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

Материал из HOMEd Wiki
Версия от 17:55, 27 января 2025; Voznemozhno (обсуждение | вклад) (→‎Кластеризация)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
HOMEd > Automation > Конфигурация

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

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

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

[mqtt]
host=localhost
port=1883
username=automation
password=secret
prefix=homed
instance=

[automation]
database=/opt/homed-automation/database.json

[location]
latitude=55.755864
longitude=37.617698

[telegram]
token=1234567890:abcdefghijklmnopqrstuvwxyz123456789
chat=123456789
update=true
timeout=60

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

Параметры

[log]

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

[mqtt]

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

[automation]

параметр описание
database путь к файлу базы данных

[location]

параметр описание
latitude широта в градусах
longitude долгота в градусах

Данные о местоположении используются для расчета времени рассветов и закатов, а так же для функции адаптивного освещения.

[telegram]

параметр описание
token токен Telegram-бота
chat идентификатор основного чата
update включение/выключение поллинга обновлений бота
timeout таймаут обновлений бота

Для работы Telegram-бота необходимо, чтобы были настроены параметры token и chat. В случае, если один из этих параметров отсутствует в конфигурации, Telegram-бот не будет работать.

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

HOMEd Automation позволяет использовать несколько "инстансов" сервиса внутри одного корневого топика. Это нужно, в первую очередь, для разделения задач по автоматизации между разными контроллерами с отдельными локальными "инстансами" сервиса HOMEd ZigBee и с использованием локальных MQTT-брокеров, объединенных MQTT-мостом.

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

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

Что дальше?

После настройки HOMEd Automation можно приступать к добавлению автоматизаций в базу данных.