홈으로 돌아가기

Home Assistant용 로컬 AI: Ollama와 MCP

이 기사는 Home Assistant용 로컬 AI 스택을 설명합니다: LLM용 Ollama, 음성용 Whisper, MCP 프로토콜 사용 OpenClaw, 오케스트레이션용 n8n. 프롬프트 내 컨텍스트와 GPU 가속으로 Llama 8B 제한 우회. 전체 배포 지침 및 스크립트.

HA용 AI 스택: 클라우드 없는 로컬 LLM 및 음성
Advertisement 728x90

홈어시스턴트를 위한 로컬 AI 스택: 배포 및 최적화 가이드

클라우드 서비스 없이 홈어시스턴트용 AI 에이전트를 배포하려면 Ollama, Whisper, OpenClaw, n8n을 조합하면 됩니다. 이 스택은 GPU에서 3~6초 내에 음성 명령을 처리합니다: 음성 인식, 의도 분석, HA 서비스 호출. Llama 3.1 8B의 한계를 우회하는 핵심 방법은 도구 호출 대신 HA 컨텍스트를 프롬프트에 주입하는 것입니다.

Ollama는 로컬에서 모델을 실행합니다: phi3:mini (4GB VRAM), llama3.1:8b (6~8GB). CPU에서는 지연이 30초까지 도달할 수 있으며, CUDA를 사용하면 응답이 2~5초 걸립니다. 외부 접근을 위해: systemd 오버라이드에 OLLAMA_HOST=0.0.0.0:11434를 설정하고 .envOLLAMA_API_KEY=ollama-local을 설정하세요.

Whisper base는 한국어를 처리합니다. P106-100 (6GB VRAM, CUDA)에서 — 10초 오디오를 0.5초 만에 처리합니다 (실시간의 19배). CPU에서 — 25~30초 (실시간의 0.4배). 이 차이가 어시스턴트의 반응 속도를 결정합니다.

Google AdInline article slot

MCP 프로토콜과 OpenClaw 통합

Model Context Protocol (MCP)는 AI가 /api/mcp를 통해 HA 엔티티에 접근할 수 있게 합니다. OpenClaw는 MCP를 지원하는 에이전트로, Ollama와 HA에 연결됩니다.

OpenClaw 온보딩 전에 MCP 설정이 필요합니다: HA에서 Long-Lived Token 생성, 통합에서 MCP 서버 활성화, openclaw.json에서 설정. 배포 옵션:

  • 단순성을 위해 HA 애드온.
  • HA 하드웨어가 약한 경우 (RPi/Odroid) 별도 호스트(NUC)에 Docker.

네트워크 확인: docker compose exec openclaw ping -c 1 <HA_IP>. 2026.2.21 버전부터 웹 인터페이스 — HTTPS만 (포트 충돌 시: 8443:443). 페어링: devices listdevices approve <requestId>.

Google AdInline article slot

안정성을 위한 OpenClaw 설정:

  • gateway.bind: "lan" 또는 "auto".
  • tools.profile: "full", deny: ["message", "sessions_send"].
  • contextWindow: 16384, maxTokens: 163840.
  • tools.deny: ["web_search", "web_fetch"]로 402 오류 방지.

n8n을 통한 오케스트레이션과 도구 호출 우회

n8n은 Telegram → Whisper → Ollama → HA를 연결합니다. 두 가지 워크플로:

  • 메인: Telegram 트리거 → Whisper → Ollama → HA API → 응답.
  • HA 호출을 위한 에이전트 도구로서의 서브-워크플로.

Llama 3.1 8B는 도구 호출 지원이 약합니다: 환각 발생, 실제 도구 호출 실패. 해결책 — update-ha-context.sh 스크립트:

Google AdInline article slot
  • mcporter를 통해 HA 데이터 가져오기 (온도 조절기, 온도).
  • TOOLS.md에 기록.
  • Cron: /5 * /path/to/update-ha-context.sh.

모델은 프롬프트에서 현재 컨텍스트를 봅니다: "침실 온도는 19.5°C (목표 25°C)." 8B 모델에 대해 mcp-hass 비활성화.

자동화 스크립트와 배포

배포 및 업데이트를 위한 자동화:

| 스크립트 | 목적 |

|--------|---------|

| update-server.sh | .env, docker-compose, openclaw.json, mcporter.json, TOOLS.md 복사. docker compose pull && up -d 실행. |

| update-ha-context.sh | HA 데이터로 TOOLS.md 업데이트 (5분마다 cron). |

| test-openclaw.sh | Ollama API 테스트 (90초 타임아웃). |

| approve-device.sh | 디바이스 페어링. |

| pre-commit | 비밀(.env, 토큰) 커밋 차단. |

배포: SSHPASS=password ./scripts/update-server.sh to [email protected].

mcporter는 data/workspace/config/mcporter.json 필요 (스크립트로 복사). 스킬: npx clawhub install mcp-hass.

세 호스트에 걸친 아키텍처

최적의 부하 분산:

  • Proxmox VM (GPU GTX 1060): Ollama (llama3.1:8b), Whisper base, n8n. 6GB VRAM에 적합.
  • NUC: OpenClaw Docker (CPU 전용).
  • Odroid: Home Assistant.

요청 흐름: Telegram/UI → OpenClaw → Ollama (HA 데이터가 있는 TOOLS.md) → 응답. 도구 호출 없음, 클라우드 없음.

핵심 포인트

  • Whisper에 GPU 필수: 50배 속도 향상 (0.5초 대 30초).
  • 온보딩 전 MCP: 그렇지 않으면 OpenClaw가 HA를 인식하지 못함.
  • Llama 8B용 프롬프트 컨텍스트: 도구 호출 대신 update-ha-context.sh.
  • OpenClaw Control UI용 HTTPS 및 페어링.
  • n8n의 두 워크플로: 메인 + 에이전트 도구.

— Editorial Team

Advertisement 728x90

다음 읽기