Files
home-assistant-tools/README.md
T

5.7 KiB
Raw Blame History

Home Assistant Tools for Open WebUI

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

Возможности

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

  • Свет (вкл/выкл, яркость, цветовая температура)
  • Розетки и выключатели
  • Климат (температура, режимы нагрев/охлаждение)
  • Медиа (плей/пауза, громкость, переключение треков)
  • Шторы и жалюзи
  • Замки
  • Вентиляторы
  • Роботы-пылесосы
  • Сценарии и скрипты

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

  • Какие окна/двери открыты
  • Что горит лишнего
  • Какая температура в комнатах
  • Какие батарейки садятся
  • Что сейчас играет
  • Кто дома

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

  • Полный список устройств по доменам
  • Фильтр по device_class (door, window, motion, battery, ...)
  • Фильтр по состоянию (on, off, open, closed, ...)
  • Скрытие unavailable / unknown
  • Спецкатегория domain="window_door" для окон и дверей

Установка

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

  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%
уютный свет в спальне

Мониторинг

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

Диагностика (отдельный инструмент 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
list_devices(domain="binary_sensor", show_unavailable=False)

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

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

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

  • v2.3.0 — добавлен инструмент list_devices для диагностики и инвентаризации
  • v2.2.2 — восстановлен полный код после повреждения при обновлении
  • v2.2.1 — HTTPS по умолчанию, verify_ssl в Valves
  • v2.2.0 — мониторинг (окна, свет, климат, батарейки, медиа, присутствие), dry-run, ретраи, кэш
  • v2.0.0 — базовое управление светом, климатом, медиа, шторами

Лицензия

MIT