Files
home-assistant-tools/README.md
T

8.5 KiB
Raw Blame History

Home Assistant Tools for Open WebUI

Инструменты для управления умным домом через Home Assistant REST API с интерпретацией естественного языка.

Возможности

Управление (smart)

  • Свет (вкл/выкл, яркость, цветовая температура)
  • Розетки, реле, выключатели
  • Климат (температура, режимы нагрев/охлаждение)
  • Медиа (плей/пауза, громкость, переключение треков)
  • Шторы и жалюзи
  • Замки
  • Вентиляторы
  • Роботы-пылесосы
  • Кнопки (button.press)
  • Сцены (scene.turn_on) и скрипты
  • Переименование сущностей (NL: «переименуй сертификат в Обновление SSL»)
  • Включение/выключение автоматизаций (NL: «выключи автоматизацию Гирлянда»)

Мониторинг (smart — ответы на вопросы)

  • Какие окна/двери открыты (с показом «Неизвестно»)
  • Что горит лишнего
  • Какая температура в комнатах (только реальные термометры)
  • Качество воздуха (TVOC, CO2, PM2.5/10, влажность)
  • Где есть движение прямо сейчас
  • Какие батарейки садятся
  • Что сейчас играет
  • Кто дома
  • Что в розетках включено
  • Системный статус (бэкапы, обновления, ноды, мосты)
  • Общий отчёт одной фразой

Диагностика (list_devices)

  • Полный список устройств по доменам
  • Фильтр по device_class (door, window, motion, battery, ...)
  • Фильтр по состоянию (on, off, open, closed, unavailable, ...)
  • Скрытие unavailable / unknown
  • Спецкатегория domain="window_door" для окон и дверей (строгий фильтр)
  • NL-маршрутизация: «покажи все binary_sensor» → list_devices(domain="binary_sensor")

Управление автоматизациями (отдельные инструменты)

  • rename_entity — переименовать любую сущность
  • toggle_automation — включить/выключить автоматизацию
  • trigger_automation — запустить автоматизацию вручную

Установка

Просто скопировать

  1. Открой файл в Gitea:
    https://gitea.nasweb.ru/host/home-assistant-tools/src/branch/main/home_assistant_tools.py

  2. Нажми кнопку Raw (справа вверху) — откроется plain text

  3. Скопируй всё (Ctrl+ACtrl+C)

  4. В Open WebUI: Workspace → Tools → + Новый инструмент

  5. Вставь код (Ctrl+V или долгое нажатие → "Вставить") и сохрани

Создание токена Home Assistant

  1. Откройте HA (https://ha.nasweb.ru) → Профиль (левый нижний угол)
  2. Прокрутите вниз до Long-Lived Access Tokens
  3. Create Token, имя — open-webui
  4. Скопируйте токен (покажется один раз)

Настройка Valves

После импорта инструмента откройте его настройки (⚙️) и укажи:

Параметр Значение По умолчанию
ha_url URL вашего HA https://ha.nasweb.ru
ha_token Long-Lived Token из шага выше (пусто)
verify_ssl Проверять SSL: false для самоподписанных false
request_timeout Таймаут HTTP, сек 10
max_retries Количество ретраев 2
cache_ttl TTL кэша состояний, сек 5
confirm_global_actions Спрашивать подтверждение для «выключи весь свет» true
dry_run Только показывать, не выполнять false

Включение для пользователя

Open WebUI → Settings → Interface → Tools → включите Home Assistant Smart Control.

Примеры команд

Управление

включи свет в спальне
выключи весь свет
поставь 23 градуса в детской
открой шторы в гостиной
пауза музыки
громче
запусти сцену вечерний отдых
включи свет на 50%
уютный свет в спальне
нажми кнопку в спальне

Управление автоматизациями

переименуй сертификат в Обновление SSL
переименуй automation.сертификат в Обновление SSL
выключи автоматизацию Гирлянда крыльцо
включи автоматизацию Свет в спальне
триггерни автоматизацию Вентиляция душевая

Мониторинг

какие окна открыты?
что горит лишнего?
какая температура в спальне?
как воздух в квартире?
где сейчас движение?
батарейки садятся?
кто дома?
что в розетках включено?
как система? есть обновления?
что сейчас играет?
отчёт по дому

Диагностика (отдельный инструмент list_devices)

LLM может вызвать инструмент list_devices с параметрами, например:

list_devices()                                    # все устройства
list_devices(domain="binary_sensor")               # все бинарные датчики
list_devices(domain="window_door")                 # только окна/двери
list_devices(device_class="battery")               # только батарейки
list_devices(only_with_state="unavailable")        # все offline
list_devices(show_unavailable=False)               # скрыть offline

Или попросить LLM в чате:

покажи все binary_sensor
список устройств
какие устройства есть в HA?

Безопасность

  • Токен HA хранится в Valves Open WebUI, не в коде
  • Глобальные команды («выключи весь свет») требуют подтверждения
  • Ошибки на одной сущности не валят весь сценарий
  • HTTP-запросы с ретраями и таймаутами
  • Поддержка HTTPS с опцией отключения проверки сертификата

Версионирование

  • v2.5.2 — фикс порядка блоков («батарейки» → в батареи, не в климат), фикс форматирования state+unit, список «Неизвестно», мониторинг розеток, системный статус (бэкапы/обновления), поддержка scene
  • v2.5.1 — строгий фильтр окон/дверей только по device_class
  • v2.5.0rename_entity, toggle_automation, trigger_automation + NL-маршрутизация
  • v2.4.0 — мониторинг воздуха (TVOC, CO2, влажность), движения, исправлен баг батареек, маршрутизация «покажи» в list_devices, поддержка кнопок, общий «отчёт»
  • v2.3.0 — добавлен инструмент list_devices для диагностики и инвентаризации
  • v2.2.2 — восстановлен полный код после повреждения при обновлении
  • v2.2.1 — HTTPS по умолчанию, verify_ssl в Valves
  • v2.2.0 — мониторинг (окна, свет, климат, батарейки, медиа, присутствие), dry-run, ретраи, кэш
  • v2.0.0 — базовое управление светом, климатом, медиа, шторами

Лицензия

MIT