Home Assistant에서 MCP(Model Context Protocol)와 AI(특히 LLM 기반 음성 비서)를 연동하여 스마트 홈 음성 비서를 통합하는 것은, 개인화된 자연어 인터페이스를 통해 사용자 맞춤형 음성 제어 환경을 구현하는 매우 흥미로운 구성입니다.
🏠 Home Assistant + MCP + AI 음성 비서 통합 구성 개요
1. Home Assistant란?
- 오픈소스 홈 자동화 플랫폼으로, 다양한 스마트 디바이스를 통합 제어하고 자동화 규칙을 설정할 수 있음
- MQTT, REST API, WebSocket, ESPHome, Zigbee/Z-Wave 등 다양한 프로토콜과 연동 가능
2. MCP (Model Context Protocol) 개요
- 다양한 입력/출력 장치와 모델을 연결하기 위한 통합 프레임워크
- 다중 Agent/모델을 Session 기반으로 관리 가능하며, 프롬프트 라우팅, before/after callback 설정, state 공유 등을 제공
3. AI 음성 비서 (예: Google Gemini, OpenAI GPT, Whisper 등)
- Whisper 기반 STT (Speech-to-Text)로 음성 인식
- GPT 계열 모델을 통한 NLU (자연어 이해) 및 명령 파악
- TTS (Text-to-Speech) 모듈로 응답 생성 가능
🛠️ 시스템 구성도 및 동작 흐름
[마이크/스피커] → [STT(Whisper)] → [MCP 엔진] → [LLM 기반 명령 해석]
↓ ↓
[TTS 응답] ← [Home Assistant API 호출 또는 자동화 실행]
구성 요소 설명
구성 요소 | 설명 |
---|---|
STT | Whisper 사용 가능, 로컬 또는 클라우드 기반 |
MCP | 모델 라우팅, 세션 관리, 프롬프트 컨텍스트 유지 |
LLM 모델 | Gemini, GPT, Mistral 등 선택 가능 |
Home Assistant API | /api/services , /api/states 등으로 조명, 온도, 장치 제어 |
TTS | Google TTS, Coqui TTS, ElevenLabs 등 선택 가능 |
🔧 구축 단계별 구성 방법
1. Home Assistant API 사용 준비
- Home Assistant에서 Long-Lived Access Token 생성 필요
- URL 예시:
http://homeassistant.local:8123/api/services/light/turn_on
curl -X POST \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"entity_id": "light.bedroom"}' \
http://homeassistant.local:8123/api/services/light/turn_on
2. Whisper로 음성 텍스트 변환
- Python 예제
import whisper model = whisper.load_model("base") result = model.transcribe("audio.wav") print(result["text"])
3. MCP 설정 예시
from mcp import MCPAgent, start_mcp
agent = MCPAgent(name="home_control", model="gpt-4")
@agent.on_message
def handle(msg, ctx):
if "조명 켜" in msg.content:
# Home Assistant 연동 로직 수행
call_home_assistant("light.turn_on", "light.living_room")
return "거실 조명을 켰습니다."
return "무슨 작업을 도와드릴까요?"
start_mcp(agent)
4. LLM 응답 + 제어 통합
- MCP의 before_model_callback을 활용해 context를 정제하거나 세션 데이터를 활용
- 자연어 → 명령어 매핑 자동화
💡 활용 사례
시나리오 | 설명 |
---|---|
음성으로 조명 제어 | "거실 불 켜줘" → 거실 조명 켜짐 |
일정 자동 알림 | "오늘 일정 알려줘" → 구글 캘린더 API 연동 |
자동화 상태 체크 | "온도 몇 도야?" → 센서 상태 확인 후 응답 |
문맥 유지형 대화 | "조금 어두워" → 조도 센서 확인 후 조명 밝기 조절 제안 |
🔐 보안 및 운영 고려사항
1. 인증 및 접근 제어
- Home Assistant API는 반드시 HTTPS 사용 및 토큰 인증 필요
- LLM 및 MCP 엔진은 외부에서 접근 가능성이 있으므로 방화벽 제한, 인증 프록시 도입 권장
2. 로그 및 감시
- 모든 음성 명령 로그 저장 (감사 로그 및 오탐 디버깅)
- Home Assistant의
/config/home-assistant.log
확인
3. 개인정보 보호
- 음성 입력 내용은 민감 정보를 포함할 수 있으므로 로그 마스킹 또는 익명화 필요
📚 추천 오픈소스 도구
목적 | 도구 |
---|---|
STT | Whisper |
TTS | Coqui TTS |
AI | [OpenAI GPT], [Gemini Pro via API], [Local LLM via Ollama] |
MCP | ADK - Model Context Protocol 기반 라이브러리 |
연동 | [Node-RED + Home Assistant], [n8n + Home Assistant API] |
Home Assistant와 MCP, AI 음성 비서의 통합은 단순한 음성 명령 제어를 넘어 사용자 중심의 스마트 홈 경험을 제공합니다. MCP를 사용하면 명령의 문맥을 유지하면서 더 복잡한 상호작용도 가능하며, AI 기반 음성 이해 능력을 통해 사용자 경험을 획기적으로 향상시킬 수 있습니다. Home Assistant 모바일 앱에서 스마트폰의 음성 명령을 이용해 AI 비서에게 질문을 하고, 정보를 받아오거나 조명을 켜는 등의 액션을 실행하는 방법으로 실제 예시입니다.
🗣️ 스마트폰 음성으로 Home Assistant 비서와 대화하는 방법
목표 시나리오 예시
사용자가 스마트폰에 “거실 불 켜줘”라고 말하면
→ 스마트폰의 음성 명령이 Home Assistant로 전달되고
→ Home Assistant는 AI 비서를 통해 명령을 분석
→ 거실 조명이 켜지고 응답이 음성 또는 텍스트로 제공됩니다.
구성 요소 | 설명 |
---|---|
Home Assistant Core/OS | 홈 자동화 서버 (내부망 또는 외부망 노출) |
Home Assistant 모바일 앱 | Android 또는 iOS 앱 |
Nabu Casa 또는 HTTPS 연결 | 외부 접속용 (모바일 앱에서 서버 호출) |
Voice Assistant 서비스 | Google Assistant, Siri, 또는 직접 구성한 Whisper+GPT |
Automation 또는 Script | 실제 작업 수행을 위한 홈 어시스턴트 내부 구성 |
Webhook 또는 Intent 처리 | 모바일 앱과 명령 처리 연결 |
1️⃣ 음성 명령 입력 경로 설정
Android 예시
- Android 스마트폰에서는 Google Assistant와 연동하거나, Home Assistant 앱 내 “Assist” 기능을 사용할 수 있습니다.
Assist
기능은 음성 → 텍스트를 서버로 전송해 처리할 수 있습니다.
설정 방법
- Home Assistant 앱 → “Assist” 탭 활성화
- “Hey Google, open Home Assistant” 또는 앱 바로가기 위젯 추가
- 명령어 예시:
거실 조명 켜줘
,현재 실내 온도는?
2️⃣ Home Assistant 내부 처리 구성
(1) Assist에 연결되는 명령어 정의
예: “거실 조명 켜줘” → 조명 켜는 Automation
# configuration.yaml 또는 자동화 YAML
intent_script:
TurnOnLightIntent:
speech:
text: "거실 조명을 켰습니다."
action:
service: light.turn_on
target:
entity_id: light.living_room
인식된 명령 매핑 방법
- 이 예시에서
"거실 조명 켜줘"
→"TurnOnLightIntent"
로 전환되어 실행됨 - 이를 위해 conversation agent 사용
conversation:
intents:
- TurnOnLightIntent
3️⃣ 음성 명령에 따라 AI 비서로 라우팅 (예: GPT 연동)
Whisper + GPT를 통한 자연어 이해 강화
- Whisper로 STT 처리
- 자연어 명령 → LLM으로 Intent 파악
- Intent에 따라 Home Assistant Webhook 호출
Python 예시 (Webhook 호출)
import requests
response = requests.post(
"https://your-homeassistant-url/api/webhook/light_on",
headers={"Authorization": "Bearer YOUR_LONG_LIVED_ACCESS_TOKEN"}
)
print(response.status_code)
4️⃣ Home Assistant에 Webhook 자동화 구성
automation:
- alias: "거실 조명 켜기 - webhook"
trigger:
- platform: webhook
webhook_id: light_on
action:
- service: light.turn_on
target:
entity_id: light.living_room
Webhook ID는 URL 형태로 사용됩니다: https://your-domain/api/webhook/light_on
5️⃣ AI 비서와의 통합 예시 (n8n or MCP)
n8n 플로우 예시
- 트리거: 음성 STT → HTTP Webhook
- 처리: GPT 명령 분석 → 명령 JSON 생성
- HTTP Request → Home Assistant API 호출
POST /api/services/light/turn_on
{
"entity_id": "light.living_room"
}
GPT 메시지 예시 (MCP 사용)
@agent.on_message
def handle(msg, ctx):
if "불 켜" in msg.content:
requests.post(HA_WEBHOOK_URL)
return "조명을 켰습니다!"
🎧 TTS 응답 구성
(1) Home Assistant에서 TTS 응답
service: tts.google_translate_say
data:
entity_id: media_player.living_room_speaker
message: "조명이 켜졌어요."
또는…
(2) 스마트폰에서 알림 응답
service: notify.mobile_app_yourphone
data:
title: "Home Assistant"
message: "거실 조명을 켰습니다."
Home Assistant 모바일 앱은 Assist 기능을 통해 로컬 또는 클라우드 기반 음성 제어를 매우 자연스럽게 지원합니다. 여기에 AI 비서와의 연동을 추가하면, 명령어가 정해져 있지 않더라도 더 자연스러운 대화형 스마트홈을 구현할 수 있습니다.
스마트홈을 실생활에서 '스마트하게' 사용하는 아이디어는 일상 속 귀찮음을 줄이고, 생활의 질을 높이며, 에너지 절약을 동시에 챙길 수 있어야 합니다. 아래는 실제 사용자가 체감할 수 있는 효과적인 스마트홈 아이디어입니다.
🏡 일상을 바꾸는 실전 스마트홈 아이디어 모음
🌅 1. 아침을 여는 자동화 루틴 ☀️
시나리오
아침 7시가 되면 다음이 자동으로 실행됩니다.
- 커튼 자동 개방
- 조명은 30% 밝기로 켜짐
- 커피머신 작동 시작
- Google TTS로 “좋은 아침입니다. 오늘 날씨는 맑고 17도입니다.” 안내
설정 팁
- 시간 기반 자동화 + 날씨 센서 + 커튼 모터 + 스마트 플러그 조합
- 조건부 자동화: “휴일은 실행 안함”
🌇 2. 외출 자동화 (집 비우면 자동으로 설정) 🚪
시나리오
- 스마트폰이 Wi-Fi를 벗어나면 아래가 자동 실행
- 모든 조명 및 TV 끄기
- 로봇청소기 시작
- 도어락 자동 잠금
- 보안카메라 실시간 스트리밍 시작
- 외부 알림: “외출 모드가 시작되었습니다.”
설정 팁
- Presence Detection (스마트폰 Wi-Fi, BLE, GPS)
- Home Assistant의
person
상태 트래킹 - 자동화 조건:
person 상태 → not_home
🌃 3. 귀가 자동화 (따뜻한 환영 모드) 🏠
시나리오
- 밤에 집에 돌아오면 아래가 자동으로 실행
- 현관 조명 자동 켜짐
- 에어컨/히터 미리 가동
- TTS: “어서오세요! 오늘 하루 수고하셨어요!”
설정 팁
- 야간 시간 조건 + 위치 트래킹
- 음성 환영 메시지는 스피커로 출력
- 조도센서와 결합 시 더욱 세밀하게 동작 가능
🌡️ 4. 에너지 절약 자동화 ♻️
시나리오
- 실내 온도/습도, 일사량에 따라 에어컨/보일러 자동 조절
- 창문이 열려 있으면 에어컨 자동 OFF
- 사용하지 않는 방의 조명/TV 자동 OFF
활용 기술
- 온습도 센서, 창문 센서, 전력측정 스마트 플러그
- Home Assistant의 에너지 대시보드 활용
🔐 5. 보안 자동화 👮
시나리오
- 현관문이 열리면 → 실내 카메라 녹화 시작 + 사용자에게 알림 전송
- 일정 시간 이상 움직임 없으면 → 자동으로 집 안 점검 루틴 실행
- 방문자 벨 누르면 → 스마트폰으로 영상 통화 연결
활용 장비
- 도어센서, PIR 모션 센서, IP카메라, 인터폰 연동
🛌 6. 취침 모드 자동화 🌙
시나리오
- 밤 11시 이후 “잘게”라고 말하면
- 모든 조명 꺼짐
- 가스밸브 상태 체크 후 이상시 알림
- 현관문 잠금 확인
- 알람 시계 TTS 설정
설정 팁
- Assist로 자연어 명령 처리
- 취침 시 루틴은 블루라이트 차단 조명 조절까지 포함 가능
🎯 7. 상황별 음성 명령 예시
명령어 | 반응 예시 |
---|---|
“오늘 날씨 어때?” | "서울은 현재 맑고 20도입니다." |
“영화 모드 켜줘” | 조명 어둡게, TV 켜기, 커튼 닫기 |
“외출할게” | 모든 장치 꺼짐 + 보안모드 |
“부엌 조명 켜줘” | 해당 조명만 ON |
“아기 자는 방 조용히 해줘” | 해당 방 조명 및 알림 끄기 |
🧠 AI 비서와의 시너지 예시
- GPT 연동 시, 단순 명령이 아닌 상황 이해형 명령 가능
- 예: “날씨가 더우니까 거실 시원하게 해줘” →
에어컨 22도 설정
- 시간/감정/날씨 등 복합 조건 기반 제어
- “나 피곤해” → 조도 낮춤, 음악 재생, 자동 조용 모드
📚 추천 센서/기기 조합
목적 | 장비 |
---|---|
상태 인식 | Aqara/Hue 모션센서, 문 열림 센서 |
음성제어 | 스마트폰 Assist, Google Nest, ESP32+Mic |
자동 제어 | 스마트 플러그, 릴레이, Zigbee 라이트 |
보안 감시 | Xiaomi/TP-Link IP 카메라, RTSP 연동 |
상태 확인 | 온습도 센서, CO2 센서, 전력 측정기 |
제어 출력을 위한 장치 | TTS 스피커, Media Player, 알림 시스템 |
스마트홈은 단순히 ‘불을 켜는’ 자동화에서 끝나는 것이 아니라, 일상 속 감정과 상황을 이해하고 환경을 최적화하는 방향으로 진화하고 있습니다. Home Assistant는 그 모든 것을 가능하게 하는 플랫폼이며, AI 음성 비서와 결합했을 때 그 가능성은 훨씬 더 넓어집니다. 기존 스마트홈 자동화가 단순 조건-행동 중심의 정적인 자동화라면, AI를 활용한 스마트홈은 이해와 예측을 기반으로 한 ‘지능형 자동화’로 진화합니다. 이번에는 Home Assistant에 AI 비서와 LLM 기반 처리 시스템(MCP, GPT 등)을 통합해, 정적인 자동화를 넘어선 '적응형' 스마트홈 아이디어입니다.
🤖 AI를 활용한 진짜 ‘스마트’한 스마트홈 아이디어
💡 1. 대화형 컨텍스트 기반 제어
🧠 아이디어
“오늘 피곤해서 일찍 자고 싶어.”
→ GPT는 사용자의 의도를 분석하고 아래 작업을 자동 실행
- 조도 낮춤
- 스피커로 잔잔한 음악 재생
- 알람 1시간 앞당김
- 방해 금지 모드 설정
🛠 구현 구성
- MCP + GPT로 자연어 → 상황 인식
- TTS로 “알겠습니다, 오늘은 알람을 6시에 맞췄어요.”
- 조건 없이도 “상황”만으로 환경 조정
🔁 2. 사용자 패턴 예측 자동화 (ML 기반 루틴 생성)
🧠 아이디어
- 사용자의 생활 패턴(기상시간, 퇴근시간, 조명 사용 패턴 등)을 AI가 자동 학습
- “수요일 저녁 8시에 항상 TV와 조명이 켜지는” 패턴을 감지 → 자동화 추천
🛠 구현
- Node-RED 또는 Python + pandas + Home Assistant History API
- 예측 패턴 → 자동화 YAML 자동 생성 또는 제안
- GPT에게 “내가 자주 하는 일을 요약해줘” 요청 가능
# 사용 패턴을 분석하는 예시 코드 (pandas 기반)
import pandas as pd
df = pd.read_csv('ha_device_usage_log.csv')
top_patterns = df.groupby(['hour', 'device']).size().sort_values(ascending=False)
🗣 3. 자연어 명령 학습 & 맞춤화
🧠 아이디어
사용자마다 표현이 다름
- A 사용자: “불 좀 켜줄래?”
- B 사용자: “조명 켜줘”
- C 사용자: “눈부셔 조명 좀”
→ GPT를 통해 이 모든 문장을 동일한 조명 켜기
의도로 인식하고 실행
🛠 구현
- GPT 모델에 prompt 설계: “아래 문장이 어떤 의도인지 분류해줘”
light.turn_on
,scene.activate
,media_player.play
등으로 매핑
{
"user_input": "눈부셔 조명 좀",
"intent": "turn_on_light",
"entity_id": "light.living_room"
}
🔍 4. 멀티 센서 + 상황 판단형 행동 결정
🧠 아이디어
- 거실에 사람이 있음 + 19시 이후 + 밝기 어두움 + 모션 없음 → 자동으로 무드등 켜기
- AI가 현재 "필요할 법한 동작"을 판단
🛠 구현
- 상황 판단은 GPT에게 "지금 조건에서 추천할 행동은?" 이라고 프롬프트
- 예: “거실 조도 80lx, 모션 없음, 시간 22시 → 조명 끄기?”
prompt = f"""
거실 상태: 조도 {lux}lx, 시간 {hour}시, 모션감지 {motion}
이럴 때 적절한 행동을 추천해줘.
"""
📈 5. 감정 기반 반응형 홈 제어
🧠 아이디어
- 사용자의 말투/표현에서 감정을 인식하고, 그에 맞는 환경 제공
- “오늘 정말 피곤해 죽겠어…” → 따뜻한 조명 + 잔잔한 음악
🛠 구현
- GPT가 감정 분석 수행 (
sad
,angry
,relaxed
,happy
) - 각 감정 상태에 따른 매핑 자동화 시나리오 존재
{
"emotion": "tired",
"response_actions": [
"dim_lights",
"play_music: lo-fi",
"reduce_notifications"
]
}
🧠 6. 대화형 상태 질의 + 설명
🧠 아이디어
“우리집 현재 온도랑 전력 소비 어떻게 돼?”
“거실 TV가 계속 켜져 있는 이유가 뭐야?”
→ GPT가 센서/기기 상태를 요약해서 자연어로 응답
🛠 구성 예
- MCP Agent에게
states
전체를 넘기고, 설명 요청states = hass.states.get_all() message = f"이 상태를 기반으로 집 상태 요약해줘: {states}"
응답
“현재 실내 온도는 평균 23도이며, 거실 TV가 지난 2시간 동안 계속 켜져 있습니다. 전력 소비는 현재 기준으로 570W입니다.”
🎯 7. 스마트홈 코파일럿: "자동화 작성 도우미"
🧠 아이디어
“거실에서 밤 10시에 자동으로 조명 꺼지게 하고 싶어.”
→ GPT가 YAML 자동 생성
→ 확인 후 버튼 하나로 적용 가능
automation:
- alias: "거실 10시 자동 소등"
trigger:
- platform: time
at: "22:00:00"
action:
- service: light.turn_off
entity_id: light.living_room
또는 → "매주 월요일에 방 청소 알림 줘" → 캘린더+알림 자동화 생성
물론이죠! 기존 아이디어 흐름을 그대로 이어서, 8번부터 15번까지 스마트홈에 AI를 접목한 아이디어를 추가로 제안해볼게요. 😊
🎬 8. 장면 기반 멀티디바이스 세팅 (Scene Intelligence)
🧠 아이디어
“영화 볼 준비 됐어”라고 말하면 AI가 자동으로 아래 세팅:
- 조도 낮춤
- 블라인드 내림
- TV 및 스피커 On
- 팝콘 머신(?) 예열까지
🛠 구현
- GPT가 “영화”라는 키워드에서 관련된 기기와 세팅을 연관 추론
- 미리 정의된 scene을 호출하거나, 대화로 scene 생성 가능 (e.g., “이 상태 저장해줘” → custom scene 저장)
📆 9. ‘문맥 기억’ 기반 예약 제안 시스템
🧠 아이디어
“다음 주에 부모님 오시는데 준비 좀 해야겠다” → 일정 캘린더에 자동 등록 + 청소 리마인더 + 조명 분위기 추천까지!
🛠 구현
- GPT가 대화 맥락에서 “행사/일정”을 추론
- 일정 자동 생성 + 관련 홈오토메이션 추천
- 필요 시 외부 API (예: 날씨, 교통)로 맥락 강화
📦 10. 배달/택배 연동 스마트 응대 시스템
🧠 아이디어
배달/택배가 오면 “문 앞에 놔주세요” 자동 음성 안내 + 문 열기 + 실시간 카메라 송출 + 캘린더 기록
🛠 구현
- 스마트 도어벨 + 카메라 + 음성 스피커 연동
- GPT가 택배 도착 시간이나 메시지에서 배송 관련 액션 추천
- “배달 언제 왔었지?” → 자동 로그 검색 & 요약
🔌 11. 전력 절감 ‘코치’ 기능
🧠 아이디어
“에어컨 하루에 얼마나 쓰고 있어?” “전기세 아끼려면 어떻게 해야 해?”
→ AI가 전력 사용량 분석 후 절약 팁 제공 & 자동화 제안
🛠 구현
- 에너지 센서 연동 → pandas로 사용량 분석
- GPT가 “절약을 위한 조언” 생성
- “자동으로 꺼줘” 요청 시 적절한 시간대 자동화 설정
📸 12. 실내 환경 사진 기반 상태 분석
🧠 아이디어
“방 정리 좀 필요할까?” → 실내 사진을 AI가 분석해, 정리 필요 여부를 판단
예: 옷이 널려 있음, 조명이 너무 밝음, 블라인드 열려 있음 등
🛠 구현
- 카메라 → 이미지 분석 모델 (e.g., Gemini Vision API) → 상태 분류
- GPT가 자연어로 분석 결과 설명 및 액션 제안
🔄 13. 리마인더 반복 자동 생성기
🧠 아이디어
“다음 주부터 매주 금요일에 쓰레기 버리기 알려줘”
→ 반복 알림 + 날씨 체크해서 우산 챙기라는 메시지도 자동 추가
🛠 구현
- 자연어로부터 복잡한 반복 조건 파싱 (예: “2주마다 목요일”)
- Google Calendar, iOS Reminder 연동 가능
- GPT가 “날씨 기반 리마인더”도 자동 확장 가능
🧘 14. 건강 상태 모니터링 + 대응 루틴
🧠 아이디어
“몸이 좀 으슬으슬해…” → 실내 온도 높임 + 조명 따뜻하게 + 감기약 알림 + 일정 최소화 제안
🛠 구현
- 사용자의 건강 관련 발화 패턴 감지
- GPT가 건강 상태 추론 + 환경 조정
- 스마트 체온계나 웨어러블 연동 시 정확도↑
📚 15. 상황별 지식 제공 도우미
🧠 아이디어
“공기청정기 필터 언제 갈아야 해?” “로봇청소기 성능 유지하려면?”
→ AI가 각 기기의 매뉴얼 기반으로 지식 제공 + 자동 알림 설정
🛠 구현
- GPT가 제품 관련 FAQ를 이해하고 설명
- Home Assistant에 사용 주기 기록 → 적절 시점에 리마인드
AI를 활용한 스마트홈은 단순한 자동화가 아니라 상황 이해 + 예측 + 감정 공감을 통해 사용자에게 맞춤화된 ‘생활 동반자형’ 시스템이 됩니다. 😊✨
댓글