Lokalny stos AI dla Home Assistant: wdrażanie i optymalizacja
Wdrażanie agentów AI dla Home Assistant bez usług chmurowych osiąga się dzięki kombinacji Ollama, Whisper, OpenClaw i n8n. Stos zapewnia przetwarzanie poleceń głosowych w 3–6 sekund na GPU: transkrypcja, analiza intencji, wywoływanie usług HA. Kluczowe obejście ograniczeń Llama 3.1 8B — podstawianie kontekstu HA w prompt zamiast tool calling.
Ollama uruchamia modele lokalnie: phi3:mini (4 GB VRAM), llama3.1:8b (6–8 GB). Na CPU opóźnienia do 30 sekund, z CUDA — odpowiedzi w 2–5 sekund. Dla dostępu zewnętrznego: OLLAMA_HOST=0.0.0.0:11434 w systemd override i OLLAMA_API_KEY=ollama-local w .env.
Whisper base przetwarza język polski. Na P106-100 (6 GB VRAM, CUDA) — 10 sekund audio w 0,5 sekundy (19× realtime). CPU — 25–30 sekund (0,4× realtime). Różnica decyduje o responsywności asystenta.
Protokół MCP i integracja OpenClaw
Model Context Protocol (MCP) zapewnia AI dostęp do encji HA przez /api/mcp. OpenClaw — agent z obsługą MCP, łączy się z Ollama i HA.
Konfiguracja MCP obowiązkowa przed onboardingiem OpenClaw: Long-Lived Token w HA, aktywacja MCP Server w integracjach, konfig w openclaw.json. Wdrażanie:
- Addon w HA dla prostoty.
- Docker na oddzielnym hoście (NUC) przy słabym sprzęcie HA (RPi/Odroid).
Testy sieci: docker compose exec openclaw ping -c 1 <HA_IP>. Interfejs webowy od 2026.2.21 — tylko HTTPS (port 8443 przy konflikcie: 8443:443). Pairing: devices list → devices approve <requestId>.
Konfig OpenClaw dla stabilności:
gateway.bind: "lan"lub"auto".tools.profile: "full",deny: ["message", "sessions_send"].contextWindow: 16384,maxTokens: 163840.tools.deny: ["web_search", "web_fetch"]dla uniknięcia błędów 402.
Orchestracja przez n8n i obejście tool calling
n8n łączy Telegram → Whisper → Ollama → HA. Dwa workflow:
- Główny: Telegram Trigger → Whisper → Ollama → HA API → odpowiedź.
- Pod-workflow jako narzędzie agenta dla wywołań HA.
Llama 3.1 8B słabo obsługuje tool calling: halucynacje, nie wywołuje rzeczywistych narzędzi. Rozwiązanie — skrypt update-ha-context.sh:
- Pobiera dane HA przez mcporter (termostaty, temperatura).
- Zapisuje w
TOOLS.md. - Cron:
/5 * /path/to/update-ha-context.sh.
Model widzi aktualny kontekst w prompcie: «Temperatura w sypialni — 19,5°C (cel 25°C)». Wyłączony mcp-hass dla modeli 8B.
Skrypty automatyzacji i deploy
Automatyzacja deployu i aktualizacji:
| Skrypt | Przeznaczenie |
|--------|------------|
| update-server.sh | Kopiuje .env, docker-compose, openclaw.json, mcporter.json, TOOLS.md. docker compose pull && up -d. |
| update-ha-context.sh | Aktualizuje TOOLS.md danymi HA (cron co 5 min). |
| test-openclaw.sh | Test API Ollama (timeout 90 sek). |
| approve-device.sh | Pairing urządzeń. |
| pre-commit | Blokuje commit sekretów (.env, tokeny). |
Deploy: SSHPASS=hasło ./scripts/update-server.sh na [email protected].
mcporter wymaga mcporter.json w data/workspace/config/ (kopiowany skryptem). Skill: npx clawhub install mcp-hass.
Architektura na trzech hostach
Optymalny podział obciążenia:
- Proxmox VM (GPU GTX 1060): Ollama (llama3.1:8b), Whisper base, n8n. Mieszczą się w 6 GB VRAM.
- NUC: OpenClaw Docker (CPU-only).
- Odroid: Home Assistant.
Przepływ zapytania: Telegram/UI → OpenClaw → Ollama (TOOLS.md z danymi HA) → odpowiedź. Bez tool calling, bez chmury.
Co jest ważne
- GPU obowiązkowe dla Whisper: 50× przyspieszenie (0,5 sek vs 30 sek).
- MCP przed onboardingiem: inaczej OpenClaw nie widzi HA.
- Kontekst w prompcie dla Llama 8B:
update-ha-context.shzamiast tool calling. - HTTPS i pairing dla Control UI OpenClaw.
- Dwa workflow w n8n: główny + narzędzie dla agenta.
— Editorial Team
Brak komentarzy.