# Home Assistant Tools for Open WebUI Инструменты для управления умным домом через Home Assistant REST API с интерпретацией естественного языка. ## Возможности ### Управление - Свет (вкл/выкл, яркость, цветовая температура) - Розетки и выключатели - Климат (температура, режимы нагрев/охлаждение) - Медиа (плей/пауза, громкость, переключение треков) - Шторы и жалюзи - Замки - Вентиляторы - Роботы-пылесосы - Сценарии и скрипты ### Мониторинг (ответы на вопросы) - Какие окна/двери открыты - Что горит лишнего - Какая температура в комнатах - Какие батарейки садятся - Что сейчас играет - Кто дома ## Установка ### Способ 1: через JSON-импорт (рекомендуемый) **Почему именно JSON**: Open WebUI «Импорт по URL» в Workspace → Tools принимает JSON-экспорт, а не голый `.py`. Поэтому мы сначала делаем JSON из Python. ```bash # 1. Скачиваем оба файла curl -sSL https://gitea.nasweb.ru/host/home-assistant-tools/raw/branch/main/home_assistant_tools.py -o home_assistant_tools.py curl -sSL https://gitea.nasweb.ru/host/home-assistant-tools/raw/branch/main/make_export.py -o make_export.py # 2. Генерируем JSON python3 make_export.py # -> создан home_assistant_tool_export.json # 3. Загрузите этот JSON-файл в Open WebUI # Workspace -> Tools -> Импорт -> выберите файл ``` ### Способ 2: ручное копирование Если `make_export.py` по каким-то причинам не сработал, скопируйте код вручную: ```bash curl -sSL https://gitea.nasweb.ru/host/home-assistant-tools/raw/branch/main/home_assistant_tools.py ``` Затем: 1. Open WebUI → **Workspace → Tools** 2. **+ Новый инструмент** 3. Вставьте всё содержимое в редактор 4. Сохраните ## Создание токена 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% уютный свет в спальне ``` ### Мониторинг ``` какие окна открыты? что горит лишнего? какая температура в спальне? батарейки садятся? кто дома? что сейчас играет? ``` ## Безопасность - Токен HA хранится в **Valves** Open WebUI, не в коде - Глобальные команды («выключи весь свет») требуют подтверждения - Ошибки на одной сущности не валят весь сценарий — остальные устройства обрабатываются независимо - HTTP-запросы с ретраями и таймаутами - Поддержка HTTPS с опцией отключения проверки сертификата (для самоподписанных) ## Версионирование - **v2.2.1** — HTTPS по умолчанию, verify_ssl в Valves, генератор JSON-экспорта - **v2.2.0** — мониторинг (окна, свет, климат, батарейки, медиа, присутствие), dry-run, ретраи, кэш состояний - **v2.0.0** — базовое управление светом, климатом, медиа, шторами ## Лицензия MIT