126 lines
5.3 KiB
Markdown
126 lines
5.3 KiB
Markdown
# 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 |