Приложение для обнаружения и обслуживания SLS-контроллеров через интерфейс
Home Assistant. Поддерживаемые архитектуры: ARM64 (aarch64) и x86-64 (amd64).
Версия 0.1.12 имеет статус experimental. Живой лог использует только WebSocket 80/ws.
Работа MQTT через HA и поддержка обеих архитектур требуют проверки на установленной системе.
- Обнаружение контроллеров через UDP LocalLink и MQTT-интеграцию HA или прямое подключение к брокеру.
- Несколько контроллеров, аптайм, время последних данных и отметка LocalLink.
- Блоки или таблица для моих контроллеров; отдельные фильтры и сортировка. Офлайн-контроллеры всегда внизу.
- Поиск по имени, хосту, IP, MAC, прошивке и источнику MQTT / LocalLink / LL.
- Пространство контроллера из реестра HA, устройства MQTT Discovery и переходы к их карточкам в HA.
- Вкладка объектов HA: сущности, устройства, автоматизации, скрипты, сцены и группы, включая явные связи в YAML.
- Перезагрузка по HTTP или MQTT, включая удалённые контроллеры.
- Лог с миллисекундами, очисткой и обновлением через 80/ws.
- Автоматическая установка SVG в боковом меню HA и логотип в списке приложений.
- Открытие и закрытие сопряжения Zigbee с таймером.
- Настройка MQTT и Home Assistant Discovery на SLS.
- Диагностика MQTT и просмотр лога контроллера.
- Русский интерфейс через Home Assistant Ingress, доступный с телефона.
- Светлая и тёмная темы с автовыбором по HA и ручным переключением.
- Тип платы и отдельные поля IP, MAC и прошивки в LocalLink.
Сущности устройств создаёт стандартная интеграция MQTT в Home Assistant. Для установки SLS HACS не требуется.
- В Home Assistant откройте Настройки → Приложения → Установить приложение → ⋮ → Репозитории.
- Добавьте адрес репозитория SLS:
https://github.com/slsys/homeassistant-app. - Выберите SLS → Установить.
- Включите запуск при загрузке и отображение в боковой панели, запустите приложение и нажмите Открыть веб-интерфейс.
- Через Samba или SSH скопируйте папку
sls_managerцеликом в/addonsна HAOS. Итоговый путь файла конфигурации:/addons/sls_manager/config.yaml. - Откройте Настройки → Приложения → Установить приложение и проверьте обновления магазина через меню ⋮. При необходимости обновите страницу.
- В разделе локальных приложений выберите SLS и установите его. Запустите приложение и откройте веб-интерфейс.
При установке HAOS собирает контейнер из исходников. Для первой установки нужен доступ HAOS к Docker Hub и npm; зависимости загружаются автоматически. Готовый образ контейнера в этот проект не включён.
Включите LocalLink на SLS и дождитесь появления контроллера в интерфейсе приложения — обычно это занимает около минуты. Нажмите Добавить и введите данные доступа SLS. Контроллеры из другой сети могут обнаруживаться через MQTT-брокер HA.
Обнаружение использует multicast 224.0.0.50:8881 и зависит от настроек локальной
сети. При изоляции клиентов Wi-Fi или фильтрации multicast оно может не работать.
История версий: CHANGELOG.
Удалённые контроллеры, публикующие данные брокеру HA, появляются в таблице с источником MQTT. Кнопка «Добавить» сохраняет их без подключения к HTTP API.
SVG в боковой панели устанавливается автоматически при запуске приложения. Для этого SLS получает доступ на запись к конфигурации HA и право её проверки и перезапуска. После первого подключения модуля HA один раз перезапускается; обычные старты SLS этого не делают.
Для чтения пространств, реестров, состояний и связей используется homeassistant_api: true.
Это разрешение даёт доступ к API Core для чтения данных HA и MQTT-подписок;
команда перезагрузки контроллера отправляется действием mqtt.publish.
Токен Supervisor остаётся на сервере приложения и не передаётся в браузер.
Реестры и состояния обновляются раз в 30 секунд, связи и YAML кэшируются на минуту.
Связи определяются по идентификаторам MQTT, устройствам HA, топикам и явным ссылкам
в загруженной YAML-конфигурации (configuration.yaml, !include, каталоги и пакеты).
Произвольные динамические ссылки Jinja и скрытые зависимости сторонних интеграций
могут быть не определены. Источник без подтверждения отмечается как HA, а не YAML или Discovery.
При ошибках доступа или ограничениях обхода интерфейс показывает, что список неполон.
Секреты из !secret и !env_var не раскрываются и для поиска связей не используются.
Сохранённые сообщения MQTT помечаются retained. Они не подтверждают текущую доступность устройства. Для сущностей, найденных в HA, показывается состояние HA; время MQTT-сообщения и время обновления состояния различаются.
По умолчанию mqtt_mode: homeassistant: SLS получает сообщения через MQTT-интеграцию
Home Assistant и отправляет команды через mqtt.publish. Брокер может находиться
на другой машине. Настройки адреса, TLS и доступа используются из интеграции HA;
повторно вводить их в SLS не требуется. Соединение обслуживается сервером приложения
и не зависит от открытой страницы браузера.
Для независимого подключения выберите mqtt_mode: direct в настройках приложения.
Для внешнего брокера заполните mqtt_host, mqtt_port, mqtt_username,
mqtt_password, при необходимости mqtt_tls и mqtt_protocol.
TLS проверяет сертификат по доверенным системным центрам и имени хоста.
При пустом mqtt_host используются реквизиты MQTT-сервиса Supervisor.
В прямом режиме диагностика локально подключённых контроллеров также может использовать
брокеры, указанные в самих контроллерах. В режиме HA такие отдельные соединения не создаются.
После изменения настроек перезапустите приложение. Автоматического переключения
между режимами нет.
mqtt_discovery_prefix задаёт префикс Discovery (по умолчанию homeassistant).
Известные префиксы контроллеров прослушиваются постоянно. Для обнаружения неизвестных
вложенных префиксов приложение при запуске и каждые mqtt_scan_interval секунд
(по умолчанию 300) включает подписку на все топики на 75 секунд. Между окнами
остаются узкие подписки. Новый контроллер с вложенным префиксом может появиться
после следующего окна поиска. Учётная запись брокера должна разрешать нужные топики;
подписка через HA не обходит ACL.
После перезапуска HA Core подписки восстанавливаются автоматически. Пока данные через HA не поступают, доступность MQTT-контроллеров может быть неизвестна. Рабочее соединение с HA само по себе не подтверждает связь с брокером. Сохранённые сообщения не считаются новыми данными контроллера. Перезагрузка отправляется один раз, с QoS 0 и без retain, и подтверждается только свежими данными об аптайме. Пропущенные сообщения без сохранения брокером не восстанавливаются.