AI для умного дома: что уже работает сегодня (часть 1)

AI для умного дома: что уже работает сегодня (часть 1)

В этой статье — не просто список инструментов, а реальный опыт их интеграции: как они работают вместе, какие подводные камни возникают при развёртывании, чего ожидать по производительности и как обойти ограничения Llama 8B без облачных кредитов.

1. Ollama — локальные LLM

Ollama запускает большие языковые модели прямо на вашем сервере. Без облака, без API-ключей.

Зачем в умном доме: понимание естественного языка. Например, команда «Включи свет в гостиной» преобразуется в структурированный запрос: модель извлекает намерение и сущность, после чего передаёт действие в Home Assistant.

Ресурсы: 4 ГБ VRAM — phi3:mini, llama3.2:3b; 6–8 ГБ — llama3.1:8b, qwen2.5:7b. Без GPU модель работает на CPU, но ответы могут занимать 10–30 секунд.

Находка: по умолчанию Ollama слушает только 127.0.0.1. Если n8n или OpenClaw находятся на другом хосте, нужно задать переменную окружения OLLAMA_HOST=0.0.0.0:11434 в systemd override. Иначе внешние запросы не будут обрабатываться.

OLLAMA_API_KEY: обязательна в файле .env (любое значение, например ollama-local). Без неё OpenClaw выдаст ошибку «Unknown model». Если auto-discovery не работает, добавьте провайдер вручную в openclaw.json с полями baseUrl, apiKey, models.

2. Whisper — голос в текст

Whisper — это open-source решение для распознавания речи. Работает полностью локально.

Зачем в умном доме: голосовые команды без Alexa и Google. Аудио не покидает вашу сеть.

Ресурсы: на CPU обработка занимает ~0,4× realtime (11 сек аудио → ~28 сек обработки). С CUDA на GPU — до ~19× realtime (11 сек → ~0,6 сек).

Кейс: на видеокарте P106-100 (6 ГБ VRAM) с CUDA 10 секунд голоса обрабатываются за полсекунды. Модель base хорошо справляется с русским языком. Без GPU тот же фрагмент обрабатывается за 25–30 секунд. Разница в 50 раз — это разница между отзывчивым ассистентом и долгим ожиданием.

3. MCP — протокол для AI и умного дома

Model Context Protocol (MCP) — открытый протокол, позволяющий ИИ подключаться к внешним инструментам. Home Assistant имеет встроенный MCP Server: эндпоинт /api/mcp.

Зачем: ИИ получает доступ к сущностям HA (свет, температура, сценарии) и может вызывать сервисы. Один протокол — и OpenClaw, Cursor IDE, будущие ассистенты работают с ним.

Находка: MCP нужно настроить до первого использования OpenClaw. Если onboarding прошёл без MCP, ассистент не увидит HA. Добавить потом можно, но проще сделать это сразу: создать Long-Lived Token в HA, включить MCP Server в интеграциях, прописать настройки в конфиг OpenClaw до первого диалога.

4. OpenClaw — AI-агент с MCP

OpenClaw — AI-ассистент с поддержкой MCP. Подключается к Ollama и к MCP-серверам, включая Home Assistant.

Зачем в умном доме: диалоговое управление. «Включи люстру», «Какая температура?» — ассистент понимает запрос и вызывает HA через MCP.

Развёртывание: OpenClaw можно установить как addon в HA (techartdev) или в Docker на отдельном хосте. Addon проще — всё в одном месте. Docker на NUC — вариант, если HA работает на слабом железе (например, Odroid или Raspberry Pi): нагрузка разделяется, Ollama и Whisper работают на GPU в Proxmox, а OpenClaw остаётся лёгким.

  • Контейнер должен видеть HA по сети. Проверка: docker compose exec openclaw ping -c 1 <HA_IP>
  • Веб-интерфейс: с версии 2026.2.21 работает только по HTTPS (через Caddy). HTTP по сети не поддерживается
  • При первом заходе с нового устройства — требуется pairing: devices listdevices approve <requestId>
  • gateway.bind — допустимы только значения: "lan", "auto", "loopback", "custom", "tailscale". Onboarding может записать недопустимое значение
  • tools.profile: "messaging" → ошибка «No session found». Используйте profile: "full", deny: ["message", "sessions_send"]
  • Порт 443 занят — в compose укажите "8443:443", доступ по https://NUC_IP:8443/

5. n8n — оркестрация и автоматизация

n8n — low-code платформа для создания workflow. Связывает Telegram, Whisper, Ollama, HA.

Зачем в умном доме: голосовые команды через Telegram. Один workflow: голос → Whisper → Ollama → вызов HA → ответ в чат.

Находка: в n8n нужно два workflow. Основной — с триггером Telegram, Whisper, Ollama, HA. Второй — под-workflow, который вызывается как инструмент AI-агента: при фразе «включи свет» агент вызывает его для выполнения действия в HA. Без под-workflow агент «знает», что нужно сделать, но не может выполнить.

Кейс: от голоса до ответа в Telegram. 10 сек голоса → Whisper (с CUDA) ~0,5 сек → Ollama ~2–5 сек → HA ~0,5 сек. Итого: 3–6 секунд. На CPU обработка Whisper заняла бы ~30 секунд только на транскрипцию.

6. Главная находка: Llama 8B и tool calling

Llama 3.1 8B нестабильно вызывает инструменты. Модель может посоветовать «вызови GetLiveContext», но не выполнит вызов. Иногда галлюцинирует несуществующие файлы. Meta рекомендует модели 70B+ для надёжного tool calling в диалогах.

Что пробовали:

  1. mcp-hass — модель выдумывала вызовы вместо реальных
  2. TOOLS.md с инструкцией «вызови bash» — модель не вызывала
  3. Облачные модели (OpenRouter) — 403 из РФ, кредиты заканчиваются, web_search тянет Perplexity и падает с «no credits»

Решение: скрипт update-ha-context.sh получает данные из Home Assistant через mcporter, парсит термостаты и температуру, записывает в TOOLS.md. Модель получает актуальные данные в промпте — tool calling не нужен. Запуск по cron каждые 5 минут: */5 * * * * /path/to/scripts/update-ha-context.sh.

Дополнительно: tools.deny: ["web_search", "web_fetch"] — иначе при вопросе о температуре агент пытается вызвать Perplexity и падает с 402. mcp-hass отключён — для Llama 8B бесполезен.

Для полноценного tool calling в будущем: пополнить кредиты OpenRouter/Mistral или развернуть модель 70B+ (требуется 24+ ГБ VRAM).

7. Workspace и mcporter — «сервер не распознаётся»

Skill mcporter ищет конфиг в ./config/mcporter.json относительно workspace. Файл был только в /app/config (volume) — агент выдавал ошибку «сервер home-assistant не распознаётся».

Решение: копировать mcporter.json в data/workspace/config/ при деплое. Скрипт update-server.sh создаёт директорию и копирует файл. Без этого MCP к HA не работает.

MCP skill: mcp-hass (не ha-mcp). Установка: npx clawhub install mcp-hass. Команда openclaw skills install не существует.

8. Скрипты и автоматизация

Назначение скриптов:

update-server.sh — деплой конфигов на хост. Копирует .env, docker-compose, openclaw.json, mcporter.json, TOOLS.md. Выполняет docker compose pull и up -d.

update-ha-context.sh — обновляет TOOLS.md данными из HA. Запускается после деплоя и по cron каждые 5 минут.

test-openclaw.sh — проверка API (Ollama). Таймаут 90 сек — первый запрос «греет» модель.

approve-device.sh — одобрение устройства (pairing). Показывает pending-запросы, запрашивает requestId.

pre-commit — хук: блокирует коммит .env, openclaw.json, mcporter.json.

Деплой: SSHPASS=пароль ./scripts/update-server.sh из корня репозитория. По умолчанию: root@192.168.1.11, путь /home/user/openclaw.

9. Как это сочетается

Инструменты и их роль:

LLM — понимание запросов, диалог

Голос → текст — Whisper

Связь AI с Home Assistant — MCP

AI-агент с MCP, диалоговое управление — OpenClaw

Оркестрация: голос, LLM, HA, Telegram — n8n

С чего начать: минимальный вариант — Ollama + OpenClaw + MCP. Текстовое управление без голоса. Добавьте Whisper и n8n, когда понадобится голос через Telegram.

10. Пример архитектуры: почему три хоста

Стек распределён по трём машинам:

  • Proxmox VM — Ollama, Whisper, n8n (GPU для ускорения)
  • NUC — OpenClaw в Docker
  • Odroid — Home Assistant

Почему: GPU одна — GTX 1060. Ollama и Whisper делят её в одной VM. Оба умещаются в 6 ГБ VRAM: phi3/llama3.1 + Whisper base. OpenClaw на NUC — лёгкий, GPU не нужен. HA на Odroid — уже был. Альтернатива: всё в одной VM, если железо позволяет.

Поток «температура в спальне»: пользователь → Control UI (HTTPS) → OpenClaw → Ollama. TOOLS.md (обновляется update-ha-context.sh) содержит актуальные данные HA. Модель отвечает: «19,5°C (целевая 25°C)».

11. Подводные камни (полная таблица)

Ollama не отвечает извне — установите OLLAMA_HOST=0.0.0.0:11434 в systemd override.

Ollama: Unknown model — в .env обязателен OLLAMA_API_KEY (любое значение, например ollama-local).

MCP не подключается — проверьте токен HA, эндпоинт /api/mcp, доступность curl http://HA_IP:8123 из контейнера.

«сервер home-assistant не распознаётся» — скопируйте mcporter.json в data/workspace/config/ — skill ищет конфиг там.

Llama 8B не вызывает tools — данные HA подставляются в TOOLS.md через update-ha-context.sh (cron). Для tool calling — облачные кредиты или модель 70B+.

«Sorry, no credits» / 402web_search вызывает Perplexity. Добавьте web_search, web_fetch в tools.deny.

403 unsupported_country_region — OpenRouter/GPT блокирует из РФ. Используйте только Ollama или Mistral.

OpenRouter + tool use — Mistral на OpenRouter не поддерживает tools. GPT-4o-mini — платные кредиты.

Control UI: pairing required — SSH на хост → devices listdevices approve <requestId>. Или используйте ./scripts/approve-device.sh.

Control UI по HTTP не работает — с 2026.2.21 только HTTPS (Caddy) или localhost. Альтернатива: nginx + self-signed перед 18789.

No session foundtools.profile: "messaging" → замените на profile: "full", deny: ["message", "sessions_send"].

contextWindow too small — в openclaw.json задайте contextWindow: 16384, maxTokens: 163840 для Ollama.

Whisper медленный — используйте CUDA вместо CPU. Разница в 50×.

n8n «знает, но не делает» — добавьте под-workflow как инструмент агента.

401 при вызове HA — проверьте Long-Lived Token и корректность credential в n8n.

Контейнер в restart loop — невалидный конфиг. Выполните docker compose down → исправьте data/openclaw.jsonup -d.

gateway.bind: Invalid input — допустимы только lan, auto, loopback, custom, tailnet. Используйте openclaw doctor --fix.

Unrecognized key: "mcp" — устаревший формат. Удалите секцию mcp, используйте skill mcp-hass.

OpenClaw addon vs Docker — HA на слабом железе → Docker на NUC; HA мощный → addon удобнее.

12. Облачные модели и будущее

Бесплатные кредиты ограничены. OpenRouter и Mistral дают стартовые кредиты, но они быстро заканчиваются. Ошибки «no credits», «upgrade your account» — типичны.

Пути развития:

  1. Пополнить счёт OpenRouter/Mistral — включить провайдеры в openclaw.json, убрать web_search из deny.
  2. Локальная модель 70B+ (llama3.1:70b, qwen2.5:32b) — 24+ ГБ VRAM, полноценный tool calling без облака.

Доступ из РФ: OpenRouter ✅, Mistral ✅, Cohere ⚠️ (требуется VPN при регистрации). Gemini ❌, Groq ❌ — блокировка.

13. Что в итоге

AI-инструменты для умного дома уже работают: локальные LLM, распознавание речи, MCP, агенты. Начать можно с Ollama + OpenClaw + MCP — и постепенно добавлять голос и n8n.

Главное: GPU для Whisper, если нужен отзывчивый голосовой ассистент. MCP настраивайте до первого использования OpenClaw. Для Llama 8B используйте update-ha-context.sh вместо tool calling.

Надеюсь, эта статья поможет сэкономить время при развёртывании и избежать подводных камней, с которыми я столкнулся. Если есть вопросы — пишите в комментариях.

Продолжение: во второй части — когда соберу мощную локальную LLM-станцию — расскажу про модели 70B+, vLLM, Open WebUI и сравнение с текущим стеком на Ollama.

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

Токены (HA, Telegram, OpenClaw) храните в .env, не коммитьте в git. Pre-commit хук блокирует коммит секретов. Используйте отдельный Long-Lived Token для каждого сервиса. Регулярно проверяйте активные токены в HA.

Читать оригинал