[HA 구축기 09] Home Assistant에 AI 붙이기

스마트홈을 처음 꾸릴 때만 해도 음성 한 마디에 조명이 꺼지는 것 자체가 신선했다. 그런데 시간이 지나면서 그 신선함은 금세 익숙함으로 바뀌었고, 얼마 지나지 않아 슬슬 불편함이 쌓이기 시작했다. 매번 똑같은 패턴만 반복하는 자동화, 상황이 조금만 달라져도 작동하지 않는 조건들, 경우의 수마다 직접 규칙을 짜야 하는 번거로움이었다. Home Assistant를 운용하면서 이 한계를 체감하던 시점에 AI 연동을 시도해봤고, 그 이후로 스마트홈을 바라보는 시각이 꽤 달라졌다. 이번 글은 그 경험을 정리한 것이다.

참고로 이 시리즈는 처음부터 순서대로 읽지 않아도 되지만, 자동화 기초가 궁금하다면 [HA 구축기 08] 내가 쓰는 자동화 5가지를 먼저 보고 오면 이 글의 맥락이 더 잘 잡힌다.

기존 Home Assistant 자동화의 구조적 한계

Home Assistant의 자동화 엔진은 분명히 강력하다. 트리거(어떤 상황이 발생했을 때), 조건(어떤 상태일 때), 액션(어떤 동작을 실행할지)을 자유롭게 조합할 수 있고, YAML이라는 설정 파일 형식으로 거의 모든 상황을 커버할 수 있다. 이 구조 자체는 지금도 높이 평가한다.

그런데 이 구조의 본질은 규칙 기반(rule-based) 처리라는 점에서 한계가 있다. 쉽게 말하면, 사람이 미리 “이럴 때 이렇게 해라”는 규칙을 전부 짜 넣어야 한다는 뜻이다. 퇴근 후 피곤한 상태와 손님이 방문한 상황, 아이가 잠든 늦은 밤과 주말 오전을 자동화 규칙은 구별하지 못한다. 발생 가능한 모든 상황을 미리 상정하고 조건으로 녹여내야 하는데, 그 작업이 생각보다 훨씬 많은 시간을 잡아먹는다.

음성 제어도 마찬가지였다. 정해진 명령어 형식에서 조금이라도 벗어나면 인식에 실패하거나 엉뚱한 기기를 제어하는 일이 잦았다. 사람이 기계에 맞춰 말하는 상황이 반복되다 보니, 어느 순간부터 음성 제어를 포기하고 앱을 직접 여는 습관이 굳어져 있었다. 자동화를 구축한 목적 자체가 무색해지는 경험이었다.

Home Assistant에 AI를 연동하면 실제로 무엇이 달라지나

Home Assistant에 AI를 연동하는 방법은 크게 두 가지 방향이 있다. 하나는 Assist(어시스트) 기능에 대화형 AI 모델을 연결하는 방식이고, 다른 하나는 자동화 로직 자체에 AI의 판단을 일부 개입시키는 방식이다. Assist는 HA에 내장된 음성·텍스트 명령 처리 기능인데, 기본 상태에서는 정해진 명령어만 인식한다. 여기에 AI를 붙이면 자연스러운 말투로 명령을 내릴 수 있게 된다.

두 방향을 모두 써본 결과, 체감 변화는 예상보다 컸다. Assist에 대화형 AI를 연결한 이후부터는 더 이상 정해진 문법으로 말하지 않아도 됐다. “요즘 날씨가 갑자기 추워졌는데 거실 좀 따뜻하게 해줘”라고 말해도 맥락을 파악하고 난방 기기를 제어했다. 100% 완벽한 인식률을 보장하지는 않지만, 자연어 이해의 유연성은 이전과 비교했을 때 체감할 수 있을 만큼 향상됐다. 짧고 단절된 명령어가 아닌 일상적인 말투로 대화가 가능해졌다는 점이 가장 큰 변화였다.

자동화 구조 측면에서도 달라진 부분이 있었다. AI가 과거 사용 패턴을 분석해서 특정 시간대에 주로 어떤 동작이 이루어졌는지 파악하고 제안하거나, 평소와 다른 에너지 소비 패턴이 감지됐을 때 알림을 주는 방식으로 활용하기 시작했다. 사람이 모든 규칙을 수동으로 입력하지 않아도 집이 스스로 패턴을 읽어가는 구조에 조금씩 가까워지고 있다는 인상을 받았다.

연동 가능한 AI 옵션 비교와 선택 기준

어떤 AI를 연동할지 고르는 것 자체가 처음에는 꽤 헷갈렸다. 아래에 주요 옵션을 간단히 정리해봤다.

연동 방식 특징 비용 프라이버시
OpenAI GPT API 자연어 이해 수준이 높고 초기 설정이 비교적 간단하다 사용량 기반 과금 외부 서버 전송
Ollama (로컬 LLM) 완전 로컬 실행, 인터넷 연결 불필요 무료 (하드웨어 비용 별도) 완전 로컬
Google Gemini API 무료 티어 제공, 한국어 처리 성능이 준수하다 무료 티어 있음 외부 서버 전송
Home Assistant Cloud (Nabu Casa) 공식 지원, 설정 절차가 가장 간단하다 월정액 외부 서버 전송

처음에는 GPT API로 시작했다. 설정이 간단하고 자연어 이해 수준이 높아서 초기 진입에는 적합했다. 다만 집 안에서 발생하는 각종 명령과 상태 데이터가 외부 서버로 전송된다는 점이 꾸준히 마음에 걸렸다. 어느 조명이 켜졌는지, 언제 집에 들어왔는지 같은 생활 패턴 데이터가 외부로 나간다는 사실은 편의성과 별개로 신경 쓰이는 부분이었다.

그래서 현재는 Ollama를 활용한 로컬 LLM 방식으로 전환해서 운용하고 있다. Ollama는 오픈소스 LLM(대형 언어 모델)을 자신의 서버나 PC에서 직접 실행할 수 있게 해주는 도구다. 응답 속도는 서버 하드웨어 사양에 따라 차이가 있지만, 집 안의 데이터가 외부로 전혀 나가지 않는다는 점에서 심리적 부담이 훨씬 줄었다. 현재 구성에서는 간단한 명령 처리에 2~4초 정도 소요되고 있어 실사용에 큰 지장은 없다.

어떤 방식을 고를지는 결국 본인의 우선순위에 달려 있다. 설정 간편함을 원하면 Nabu Casa, 비용 없이 시작해보고 싶으면 Gemini 무료 티어, 프라이버시가 우선이라면 Ollama 로컬 방식을 검토해보는 것이 현실적인 순서다.

AI가 자동화 YAML 작성 자체를 도와주는 경험

예상하지 못했던 수확도 있었다. AI를 단순히 명령을 실행하는 인터페이스로만 쓰는 게 아니라, 자동화 YAML 코드를 직접 작성해주는 보조 도구로 활용하기 시작한 것이다.

예를 들어 “저녁 8시 이후 현관 모션 센서가 감지되면 복도 조명을 30% 밝기로 5분 동안 켜줘”라고 입력하면, AI가 Home Assistant에서 바로 적용 가능한 자동화 YAML 코드를 생성해준다. 물론 그대로 복사해서 붙여넣기보다는 내용을 검토하고 자신의 환경에 맞게 수정하는 과정이 필요하다. 엔티티 이름(기기 ID)이나 서비스 명칭이 본인 환경과 다를 수 있기 때문이다. 그래도 자동화 작성에 소요되던 시간이 절반 이하로 줄었다는 것은 실제로 느끼는 변화다.

이 방식은 특히 Home Assistant를 처음 시작하는 사람들에게 진입 장벽을 실질적으로 낮춰준다. YAML 문법을 완전히 이해하지 못하더라도, 하고 싶은 동작을 말로 설명하면 코드로 변환해주는 구조가 갖춰지기 때문이다. 다만 생성된 코드를 최소한 읽고 검토할 수 있는 기본적인 이해는 여전히 필요하다. AI가 틀린 코드를 자신 있게 내놓는 경우도 있기 때문에, 검증 없이 무조건 적용하는 방식은 권장하지 않는다.

실제 설정 전 확인해야 할 것들

AI 연동을 시작하기 전에 아래 항목을 먼저 점검해두면 시행착오를 줄일 수 있다.

  1. Home Assistant 버전 확인 — Assist 기능이 안정화된 버전은 2023.5 이후다. 오래된 버전이라면 업데이트를 먼저 진행하는 것이 좋다.
  2. HACS(커스텀 통합 관리자) 설치 여부 — 일부 AI 연동 통합은 공식 스토어가 아닌 HACS를 통해 설치된다. HACS가 없다면 먼저 설치가 필요하다.
  3. API 키 발급 방식 파악 — GPT나 Gemini를 쓸 경우, 각 서비스의 개발자 콘솔에서 API 키를 발급받아야 한다. 발급 절차가 처음에는 낯설 수 있으니 미리 확인해두는 것이 좋다.
  4. 로컬 방식이라면 서버 사양 점검 — Ollama 기반 로컬 LLM은 RAM 16GB 이상을 권장한다. 그 이하에서는 응답 지연이 심해져 실용성이 크게 떨어진다. GPU가 있으면 속도가 눈에 띄게 빨라진다.
  5. 네트워크 구성 확인 — 로컬 LLM 서버와 HA 인스턴스가 같은 네트워크 안에 있어야 통신이 원활하다. 별도 서버에 Ollama를 설치했다면 IP 주소와 포트를 미리 확인해둔다.
  6. 기존 Assist 파이프라인 설정 확인 — HA 설정 → 음성 어시스턴트 → 파이프라인 경로에서 현재 어떤 엔진이 연결돼 있는지 확인한다. AI 연동 후 이 파이프라인을 새로 설정하거나 교체하게 된다.

아직 남아 있는 현실적인 과제들

긍정적인 면만 있는 것은 아니다. 솔직하게 정리해두는 게 맞을 것 같아 적어둔다.

  • 로컬 LLM은 하드웨어 문턱이 있다. 앞서 언급했듯 RAM 16GB 이상, 가능하면 GPU 환경을 갖추지 않으면 응답 속도가 실용적이지 않다. 라즈베리파이 같은 저사양 기기에서는 현실적으로 어렵다.
  • AI 응답이 항상 정확하지 않다. 중요한 자동화에 AI의 판단을 무조건 신뢰하는 방식은 현재로서는 권장하지 않는다. 특히 보안 관련 자동화(잠금장치, 외부 접속 등)에는 AI 개입을 최소화하는 것이 안전하다.
  • 한국어 처리 성능 편차가 있다. 모델에 따라 한국어 명령 이해도가 다르다. 영어로 명령할 때보다 오인식이 더 많이 발생하는 경우가 있어, 자주 쓰는 명령어는 어느 정도 반복 테스트가 필요하다.
  • 업데이트 주기가 빠르다. AI 연동 관련 통합과 기능은 HA 업데이트마다 변경되는 경우가 잦다. 설정 방법이 몇 달 전 글과 달라져 있는 경우도 있으니, 공식 문서와 커뮤니티를 함께 참고하는 것이 좋다.

이 부분들을 미리 인지하고 시작하면 “왜 안 되지?”에서 헤매는 시간을 줄일 수 있다. 완성된 솔루션을 기대하기보다는, 현재 진행형인 기능을 직접 테스트하면서 맞춰간다는 마음으로 접근하는 것이 현실적이다.

AI 연동, 지금 시작할 만한 수준인가

결론부터 말하면, 시작해볼 만한 수준은 됐다고 본다. 다만 “설치하면 알아서 다 된다”는 기대는 내려놓는 것이 좋다. 현재 시점에서 HA에 AI를 붙이는 것은 완성된 제품을 사용하는 경험이 아니라, 계속 발전하는 기능을 직접 조율하면서 쓰는 경험에 가깝다.

처음 시작한다면 GPT API나 Gemini 무료 티어로 가볍게 연동해보고, 자연어 명령이 어느 정도 작동하는 것을 확인한 뒤 필요에 따라 로컬 방식으로 전환하는 순서를 권장한다. 한 번에 모든 것을 바꾸려 하면 문제가 생겼을 때 원인을 찾기 어려워진다.

외부 접속 보안 설정이 아직 안 돼 있다면, AI 연동보다 그쪽을 먼저 챙기는 것이 순서상 맞다. [HA 구축기 06] HA 외부접속 안전 설정에서 기본적인 보안 구성을 먼저 확인해두면 좋다.

기기 연결 쪽에서 막히는 부분이 있다면 Home Assistant 디바이스 연결이 안 될 때 해결 방법도 같이 참고해보길 권한다. AI 연동 이전에 기기 자체가 제대로 붙어 있어야 명령도 의미가 있기 때문이다.

스마트홈에 AI를 붙이는 작업은 아직 한창 진행 중인 영역이다. 지금 당장 완벽하게 돌아가는 시스템을 기대하기보다는, 조금씩 손을 대면서 집이 달라지는 과정을 즐기는 쪽이 오래 이 취미를 유지하는 방법이라고 생각한다.


시리즈 글 모아보기

댓글 남기기