티스토리 뷰

우리 집에는 스마트 기기가 꽤 많다. 샤오미 공기청정기, 스마트 플러그, 거실 조명, 현관 도어센서, 아이 방 온습도계까지. 문제는 이걸 제어하는 앱이 전부 따로 놀았다는 거다. 공기청정기는 미홈 앱, 조명은 또 다른 앱, 플러그는 헤이홈 앱. 아내가 "불 좀 꺼줘"라고 하면 폰에서 앱을 세 번 갈아타야 했다. 스마트홈이 아니라 앱 지옥이었다.

그래서 작년에 홈어시스턴트(Home Assistant)를 집에 들였다. 결론부터 말하면, 지금은 우리 집 인프라의 중심이 됐고, 아이 셋 키우는 집에서 이게 없던 시절로 돌아가라면 못 돌아간다. 오늘은 개발자 아빠 관점에서 홈어시스턴트 도입기를 정리해본다.

사진: BENCE BOROS, Unsplash

홈어시스턴트가 뭔가, 왜 필요한가

홈어시스턴트는 오픈소스 스마트홈 허브 소프트웨어다. 집에 있는 작은 서버(라즈베리파이나 미니PC)에 설치해두면, 제조사가 제각각인 IoT 기기들을 한 화면에서 모아 제어하고 자동화할 수 있다. 샤오미든 스마트싱스든 필립스 휴든 IKEA든, 웬만한 기기는 다 붙는다. 공식 통합구성요소(Integration)가 수천 개 수준이라 "이게 될까?" 싶은 기기도 검색해보면 대부분 누가 이미 붙여놨다.

내가 느낀 핵심 가치는 세 가지다.

첫째, 파편화 해소. 앱 여러 개 오가던 걸 대시보드 하나로 끝낸다. 거실 벽에 안 쓰는 태블릿 하나 걸어두고 대시보드를 띄워놨더니, 아내도 아이들도 그냥 터치해서 쓴다. 가족 만족도가 올라가는 지점이 바로 여기다.

둘째, 클라우드 독립. 제조사 앱은 대부분 중국이나 미국 서버를 거친다. 서버 장애가 나면 내 집 조명이 안 켜지는 황당한 구조다. 홈어시스턴트는 로컬 네트워크에서 도는 게 기본이라, 인터넷이 끊겨도 집 안 자동화는 그대로 돈다. 개발자 입장에서 이 아키텍처가 제일 마음에 들었다.

셋째, 자동화. 이게 진짜다. "제어"는 시작일 뿐이고, 결국 스마트홈의 완성은 내가 아무것도 안 해도 알아서 돌아가는 상태다. 뒤에서 실제 예시로 설명한다.

설치: 라즈베리파이냐 미니PC냐

홈어시스턴트를 돌리는 방법은 크게 세 가지다.

1. 라즈베리파이에 HAOS 설치 — 공식 권장 입문 코스. SD카드에 이미지 굽고 꽂으면 끝이다. 다만 SD카드는 수명 문제가 있어서 장기 운영하려면 SSD 부팅을 권한다.

2. 미니PC에 HAOS 또는 프록스목스 — 내가 최종 정착한 방식. 중고 미니PC(인텔 N100급이면 충분하다)를 10만 원대에 구해서 올리면 라즈베리파이보다 훨씬 여유롭다. 애드온을 이것저것 올려도 안 버벅인다.

3. 도커 컨테이너 — 이미 홈서버가 있는 사람용. 다만 컨테이너 방식은 애드온 스토어를 못 쓰기 때문에, 처음이라면 HAOS(운영체제째 설치)를 추천한다. 백업, 업데이트, 애드온 관리가 다 UI에서 된다.

개발자라면 도커가 익숙하니 3번이 끌리겠지만, 스마트홈 서버는 "잘 돌아가고 신경 안 쓰이는 것"이 최우선이다. 나도 처음엔 도커로 시작했다가 결국 HAOS로 갈아탔다. 집 인프라는 취미 프로젝트가 아니라 운영 서비스다. 장애 나면 항의하는 고객(아내)이 바로 옆에 있다.

도입 첫 주에 내가 한 일

설치 자체는 한 시간이면 끝난다. 진짜 작업은 그다음부터다. 내 도입 첫 주 기록을 순서대로 남겨두면 이렇다.

1일차 — HAOS 설치, 초기 계정 생성, 같은 네트워크에 있던 기기 자동 발견. 홈어시스턴트는 네트워크를 스캔해서 붙일 수 있는 기기를 알아서 찾아준다. 샤오미 공기청정기와 로봇청소기가 설치 10분 만에 대시보드에 떴을 때 살짝 소름이 돋았다.

2~3일차 — 미홈, 스마트싱스 계정 연동. 클라우드 계정을 한 번 연결해주면 그 계정에 물린 기기가 통째로 들어온다. 이 시점에 이미 앱 세 개가 대시보드 하나로 합쳐졌다.

4~5일차 — 모바일 앱 설치와 가족 구성원 등록. 홈어시스턴트 공식 앱을 깔면 폰이 곧 재실 센서가 된다. 누가 집에 있는지, 언제 나갔는지를 자동화의 조건으로 쓸 수 있게 된다. 위치 정보는 우리 집 서버에만 쌓이니 제조사 클라우드에 가족 동선을 올리는 것보다 마음이 편하다.

주말 — 첫 자동화 작성. 거창한 것 말고 "해 지면 거실 무드등 켜기" 하나만 만들었다. 작게 시작해서 하나씩 늘리는 게 요령이다. 처음부터 집 전체를 자동화하려고 하면 반드시 어딘가에서 꼬인다. 이건 소프트웨어 프로젝트랑 똑같다.

사진: Dan LeFebvre, Unsplash

기기 연동: 지그비 동글 하나가 세계를 바꾼다

와이파이 기기는 통합구성요소로 바로 붙는다. 진짜 재미는 지그비(Zigbee)부터다. USB 지그비 동글(코디네이터)을 하나 꽂고 Zigbee2MQTT나 ZHA를 올리면, 제조사 허브 없이 지그비 센서를 직접 붙일 수 있다.

이게 왜 좋냐면, 알리익스프레스에서 파는 몇천 원짜리 온습도계, 도어센서, 모션센서를 허브 없이 수십 개 붙일 수 있기 때문이다. 샤오미 허브, 이케아 허브, 스마트싱스 허브를 각각 살 필요가 없다. 지그비는 메시 네트워크라 기기가 늘수록 오히려 통신이 안정된다.

우리 집 기준으로 현재 붙어 있는 것들: 각 방 온습도 센서, 현관·베란다 도어센서, 복도 모션센서, 거실·안방 조명, 스마트 플러그 여러 개, 공기청정기, 로봇청소기, 월패드 연동까지. 처음엔 기기 5개로 시작했는데 어느새 50개가 넘었다. 이 바닥이 원래 그렇다. 입문 비용보다 중독 비용이 크다.

자동화 실전: 아이 셋 집에서 실제로 쓰는 것들

홈어시스턴트의 자동화는 "트리거 → 조건 → 액션" 구조다. 개발자에게는 이벤트 드리븐 아키텍처 그 자체라 금방 익숙해진다. 우리 집에서 실제로 돌아가는 자동화 몇 개를 소개한다.

아이 방 온습도 관리 — 아이 방 습도가 40% 밑으로 떨어지면 가습기 플러그를 켜고, 60%를 넘으면 끈다. 겨울철 아이들 감기 관리에 이만한 게 없다. 온습도 이력이 그래프로 쌓이니까 "어젯밤 방이 건조했나?" 같은 질문에 데이터로 답할 수 있다.

외출 모드 — 가족 전원의 폰이 집 와이파이에서 사라지면 조명과 대기전력 플러그를 일괄 차단한다. 아이 셋 데리고 외출하는 날 아침은 전쟁터라 "불 껐나?" 확인할 정신이 없는데, 이건 그냥 알아서 된다.

심야 복도 조명 — 밤 10시 이후 복도 모션센서가 감지되면 조명을 최저 밝기로 켠다. 애들이 밤에 화장실 갈 때 환한 불 때문에 잠이 깨는 걸 막아준다. 사소해 보여도 체감 효과는 크다.

세탁 완료 알림 — 세탁기 플러그의 전력 사용량이 일정 시간 바닥으로 떨어지면 "세탁 끝났습니다" 알림을 부부 폰에 쏜다. 스마트 세탁기가 아니어도 플러그 하나로 스마트 세탁기가 된다.

이런 자동화가 하나씩 쌓이면 어느 순간 집이 알아서 돌아간다. 손으로 하던 일을 시스템이 대신하는 경험, 개발자가 코드로 하던 그 일을 집에서 하는 셈이다.

사진: Jakub Zerdzicki, Unsplash

HACS, 커스텀의 세계

기본 기능만으로도 충분하지만, 개발자라면 결국 HACS(Home Assistant Community Store)를 만나게 된다. 커뮤니티가 만든 커스텀 통합과 대시보드 카드를 설치할 수 있는 비공식 스토어인데, 국내 사용자에게 특히 유용하다. 공식 통합이 없는 국내 서비스들, 예를 들어 아파트 월패드 연동이나 국내 가전 연동 같은 것들이 커뮤니티의 손으로 HACS에 올라와 있는 경우가 많다.

대시보드 쪽도 마찬가지다. 기본 카드만 쓰면 밋밋한데, 커뮤니티 카드 몇 개를 얹으면 벽걸이 태블릿에 띄워둘 만한 대시보드가 나온다. 다만 커스텀은 어디까지나 커스텀이라, 코어 업데이트 때 깨질 수 있다는 점은 감안해야 한다. 나는 "가족이 매일 쓰는 화면은 보수적으로, 내 실험용 화면은 자유롭게"라는 원칙으로 나눠서 운영한다.

외부 접속과 보안, 개발자라면 여기가 본론이다

집 밖에서 우리 집 상태를 보려면 외부 접속을 열어야 한다. 방법은 크게 세 가지다. 공식 클라우드 구독(월 몇 달러로 제일 간단하다), 테일스케일 같은 VPN(무료이고 안전하지만 가족 폰에 전부 깔아야 한다), 그리고 도메인과 리버스 프록시로 직접 여는 방법.

나는 직접 여는 쪽을 택했다. 개인 도메인에 서브도메인을 파고, 리버스 프록시 뒤에 홈어시스턴트를 두고, HTTPS 인증서를 물렸다. 여기서 강조하고 싶은 건 보안이다. 집 서버를 인터넷에 노출하는 순간부터는 운영자의 책임이 시작된다. 최소한 이것만은 지키자.

첫째, 2단계 인증(MFA)을 무조건 켠다. 홈어시스턴트 자체에 TOTP 기능이 내장돼 있다. 둘째, 로그인 시도 제한을 걸어 무차별 대입을 차단한다. 셋째, 관리자 계정과 가족 계정을 분리한다. 아이들 태블릿에 관리자 세션을 남겨두는 건 서버 루트 비밀번호를 거실에 붙여두는 것과 같다. 넷째, 백업은 외부 저장소에도 복사해둔다. 서버가 죽어도 설정은 살아야 한다.

이 과정 자체가 미니 인프라 운영 경험이라, 주니어 개발자에게는 오히려 살아있는 공부가 된다. DNS, 인증서, 프록시, 인증, 백업까지 실무에서 쓰는 개념이 집 안에서 전부 등장한다.

비용은 얼마나 들었나

스마트홈은 돈 먹는 취미라는 인식이 있는데, 홈어시스턴트 기준으로 정리하면 생각보다 소박하게 시작할 수 있다.

서버는 중고 미니PC 기준 10만 원 안팎, 라즈베리파이를 이미 갖고 있다면 0원이다. 지그비 동글은 2~4만 원대. 지그비 센서류는 개당 3천 원에서 1만 원 사이라 문·모션·온습도 센서를 열 개 깔아도 10만 원이 안 된다. 스마트 플러그와 조명은 이미 쓰던 걸 그대로 붙이면 된다. 즉 30만 원 이하로 "우리 집이 달라졌다"를 체감할 수 있는 수준까지 간다. 소프트웨어는 전부 무료 오픈소스다.

오히려 조심해야 할 건 그다음이다. 붙는 게 재미있어서 센서를 계속 사게 되는 단계가 온다. 나도 "이번 달은 그만 산다"를 몇 번이나 번복했는지 모른다. 예산 상한을 정해두는 걸 추천한다.

단점도 분명히 있다

좋은 얘기만 하면 광고 글이다. 현실적인 단점을 적어둔다.

초기 러닝커브가 있다. 요즘 UI가 많이 좋아졌다고는 해도, YAML 설정을 만질 일이 아예 없지는 않다. 비개발자 배우자에게 관리까지 맡기긴 어렵다. 우리 집도 "사용"은 가족 모두가 하지만 "운영"은 내 몫이다.

업데이트 관리가 필요하다. 홈어시스턴트는 매달 새 버전이 나온다. 대부분 무난하지만 가끔 브레이킹 체인지가 있어서, 릴리즈 노트를 훑고 백업을 확인한 뒤 올리는 습관이 필요하다. 자동 백업 설정은 필수다.

시간을 잡아먹는다. 이게 제일 큰 단점일 수 있다. 대시보드 꾸미기, 자동화 다듬기가 은근히 재미있어서 주말 밤이 순삭된다. 취미가 하나 늘어난다고 생각하면 장점이고, 시간이 없는 사람에겐 부담이다.

스마트싱스 VS 홈어시스턴트, 뭔 골라야 하나

이 질문을 주변에서 자주 받는다. 내 답은 단순하다. 앞으로 기기를 얕게 쓰고 관리는 하기 싫다면 스마트싱스나 애플 홈 같은 상용 생태계가 맞다. 앱 설치하고 기기 등록하면 끝이고, 장애 대응도 제조사 몷이다. 반면 기기가 계속 늘어날 예정이고, 제조사 경계를 넘나드는 자동화를 원하고, 내 데이터를 내 서버에 두고 싶다면 홈어시스턴트다. 둘은 경쟁 관계라기보다 공존 관계에 가깝다. 실제로 나는 스마트싱스 계정을 홈어시스턴트에 물려서 같이 쓴다. 허브의 최종 지휘권만 홈어시스턴트가 가져가는 구조다.

참고로 요즘 IoT 업계는 매터(Matter)라는 표준으로 수렴하는 분위기다. 제조사 간 장벽이 낮아지는 방향은 분명한데, 그래도 "모든 기기를 한군데 모아 자동화하는 두뇌" 역할은 여전히 필요하다. 홈어시스턴트는 매터도 지원하니, 지금 시작해도 표준 전환기에 버려질 선택은 아니다.

누구에게 추천하나

추천: 집에 스마트 기기가 이미 5개 이상인데 앱이 다 따로 노는 사람, 서버나 도커를 다뤄본 개발자, 집 데이터(온습도·전력)를 쌓아보고 싶은 사람, 그리고 가족을 위한 자동화에서 재미를 느낄 아빠들.

비추: 스마트 기기가 한두 개뿐인 사람(그냥 제조사 앱 쓰는 게 낫다), 서버 한 대 관리도 스트레스인 사람, 설정보다 완제품을 원하는 사람은 애플 홈킷이나 스마트싱스 같은 상용 생태계가 맞다.

마무리

홈어시스턴트는 IoT 파편화 시대에 개발자가 선택할 수 있는 가장 강력한 답이라고 생각한다. 10만 원대 미니PC 한 대와 주말 이틀 정도의 시간이면 시작할 수 있다. 그리고 어느 날 아이가 "아빠, 우리 집은 밤에 불이 알아서 켜져"라고 친구에게 자랑하는 걸 듣게 되면, 그간의 삽질이 다 보상받는 기분이 든다.

다음에는 지그비 센서 구성과 실제 자동화 YAML 예시를 따로 정리해볼 생각이다. 스마트홈 입문을 고민 중이라면, 일단 안 쓰는 라즈베리파이나 중고 미니PC부터 알아보시길.

댓글


최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday