Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

SLS для Home Assistant OS

Приложение для обнаружения и обслуживания 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 не требуется.

Установка через репозиторий

  1. В Home Assistant откройте Настройки → Приложения → Установить приложение → ⋮ → Репозитории.
  2. Добавьте адрес репозитория SLS: https://github.com/slsys/homeassistant-app.
  3. Выберите SLS → Установить.
  4. Включите запуск при загрузке и отображение в боковой панели, запустите приложение и нажмите Открыть веб-интерфейс.

Локальная установка

  1. Через Samba или SSH скопируйте папку sls_manager целиком в /addons на HAOS. Итоговый путь файла конфигурации: /addons/sls_manager/config.yaml.
  2. Откройте Настройки → Приложения → Установить приложение и проверьте обновления магазина через меню ⋮. При необходимости обновите страницу.
  3. В разделе локальных приложений выберите 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 этого не делают.

Данные Home Assistant

Для чтения пространств, реестров, состояний и связей используется 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

По умолчанию 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, и подтверждается только свежими данными об аптайме. Пропущенные сообщения без сохранения брокером не восстанавливаются.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages