13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[태그:] 홈오토메이션

  • Home Assistant를 Proxmox VM으로 — 왜 LXC가 아니라 VM인가

    홈 오토메이션을 시작하면 “Home Assistant를 어디에 올리지?”부터 막힙니다. 저는 Proxmox 위에 VM으로 올렸습니다. LXC나 Docker가 아니라 VM인 데는 분명한 이유가 있습니다. 실제 제 구성과 그 선택의 근거를 정리합니다.

    1. Home Assistant 설치 방식과 선택

    Home Assistant는 설치 방식이 여러 가지입니다.

    방식 애드온·Supervisor 홈랩 적합도
    HAOS (전용 OS) 완전 지원 VM으로 올리면 최고
    Container(Docker) Supervisor 없음 애드온 못 씀
    Core(파이썬) 없음 관리 번거로움

    애드온과 자동 업데이트를 편하게 쓰려면 HAOS(Home Assistant OS)가 정답인데, HAOS는 Supervisor를 포함한 전용 운영체제 전체입니다. 즉 자기 커널과 OS를 통째로 들고 있어서 LXC(호스트 커널 공유)로는 제대로 못 돌리고, VM이 맞습니다.

    2. 실제 VM 구성

    제 홈랩의 HAOS VM은 이렇게 잡혀 있습니다.

    항목 값 이유
    머신 타입 q35 + OVMF(UEFI) HAOS 공식 권장(UEFI 부팅)
    vCPU / RAM 2코어 / 4GB 중간 규모 자동화에 넉넉
    디스크 local-zfs(SSD) 반응 속도·스냅샷
    QEMU Guest Agent enabled 정상 종료·IP 보고

    포인트는 OVMF(UEFI) + q35입니다. HAOS 이미지는 UEFI 부팅을 전제로 하므로, 구형 SeaBIOS로 만들면 부팅이 안 됩니다. 그리고 QEMU Guest Agent를 켜두면 Proxmox에서 “정상 종료”를 보낼 수 있고 VM의 IP도 대시보드에 표시됩니다.

    3. USB 장치(지그비·지웨이브)는?

    제 구성엔 USB 패스스루가 없습니다. Wi-Fi·LAN 기반 기기와 네트워크 통합 위주로 쓰기 때문입니다. 만약 Zigbee/Z-Wave USB 동글을 쓴다면, Proxmox에서 해당 USB를 VM에 패스스루해야 합니다.

    # USB 동글을 HAOS VM(예: 106)에 패스스루
    qm set 106 -usb0 host=1234:5678

    동글은 VID:PID로 지정하는 게 포트 번호보다 안정적입니다(포트를 바꿔 꽂아도 유지).

    4. 백업 — 업데이트 전 스냅샷이 생명

    HAOS는 업데이트가 잦고, 가끔 통합이 깨집니다. 그래서 저는 업데이트 전 Proxmox 스냅샷을 습관처럼 찍습니다.

    # HAOS 업데이트 전 VM 스냅샷
    qm snapshot 106 pre_haos_update
    
    # 문제 생기면 롤백
    qm rollback 106 pre_haos_update

    여기에 더해 HAOS 자체 백업(설정 스냅샷)도 병행하면 이중 안전망이 됩니다. VM 스냅샷은 “OS·통합까지 통째로”, HAOS 백업은 “설정만” 되돌립니다.

    5. 정리

    • HAOS는 VM으로. 전용 OS라 LXC로 무리하지 말 것.
    • q35 + OVMF(UEFI)로 만들고 QEMU Guest Agent를 켤 것.
    • USB 동글은 VID:PID로 패스스루.
    • 업데이트 전 VM 스냅샷은 무조건.

    Proxmox 홈랩이 있다면 Home Assistant를 VM으로 올리는 게 가장 안정적입니다. 2코어·4GB면 충분히 시작할 수 있으니, 홈 오토메이션의 첫 서버로 강력 추천합니다.

  • [HomeLabs] 라즈베리파이 4로 홈 어시스턴트 구축 — 스마트홈 초보자 완벽 가이드

    라즈베리파이 4로 홈 어시스턴트 구축하기 — 스마트홈 구축 실전 가이드

    솔직히 처음엔 스마트홈이 그냥 비싼 장난감이라고 생각했어요. 삼성 스마트싱스, 애플 홈킷 같은 것들도 월정액이 나가고, 집 데이터가 외부 서버로 나가는 게 찜찜했거든요. 그러다 홈랩 커뮤니티에서 Home Assistant(홈 어시스턴트)를 알게 됐어요. 오픈소스, 로컬 실행, 수천 가지 기기 연동… 정말 원하던 그것이더라고요.

    그래서 서랍 속 라즈베리파이 4를 꺼냈습니다. 처음 설치하는 데 두 시간쯤 삽질했는데, 지금은 집에 들어오면 자동으로 불이 켜지고, 외출하면 에어컨이 꺼져요. 한번 써보면 정말 못 돌아가요. 이 글에서는 그 과정을 처음부터 끝까지 함께 해보겠습니다.

    라즈베리파이 4를 중심으로 한 홈 어시스턴트 스마트홈 구성도 — 허브 하나로 조명, 센서, 가전을 모두 연결합니다.

    홈 어시스턴트란 무엇일까요

    Home Assistant는 집 안의 스마트 기기들을 한 곳에서 통합 관리하는 오픈소스 홈 오토메이션 플랫폼입니다. 구글 홈이나 아마존 알렉사처럼 외부 클라우드에 의존하지 않고, 내 서버(라즈베리파이)에서 직접 돌아가는 게 핵심이에요.

    제가 가장 좋아하는 점은 프라이버시입니다. 집 데이터가 어느 미국 회사 서버에 올라가지 않고, 내 라즈베리파이에서만 처리된다는 거죠. 인터넷이 끊겨도 자동화가 작동하고요.

    설치 방식 비교

    설치 방식 특징 초보자 추천
    HAOS (Home Assistant OS) 전용 OS 이미지, 가장 간단한 설치, 공식 권장 ✅ 강력 추천
    Home Assistant Supervised 기존 Debian 위에 설치, 유연하지만 복잡 중급자 이상
    Home Assistant Container Docker 위에서 실행, 애드온 없음 고급 사용자
    Home Assistant Core Python 환경에 직접 설치, 가장 복잡 개발자용

    초보자라면 고민할 것도 없이 HAOS(Home Assistant Operating System)로 가세요. 저도 처음엔 Docker로 시작했다가 결국 HAOS로 갈아탔거든요. 애드온 생태계가 워낙 편리해서요.

    라즈베리파이 4 홈 어시스턴트 설치 — 준비물 체크리스트

    시작 전에 뭐가 필요한지 먼저 확인해 봅시다. 없으면 설치 중간에 멈추게 되니까요. 저는 SD카드가 없어서 한 번 멈췄거든요.

    • ✅ 라즈베리파이 4 (RAM 4GB 이상 권장, 2GB도 동작은 함)
    • ✅ MicroSD 카드 (32GB 이상, Class 10 이상 권장 — 저는 64GB 씁니다)
    • ✅ MicroSD 카드 리더기 (노트북에 내장된 것 있으면 OK)
    • ✅ USB-C 전원 어댑터 (라즈베리파이 4 공식 권장 5V/3A)
    • ✅ 유선 랜 케이블 (초기 설정 시 와이파이보다 안정적)
    • ✅ Raspberry Pi Imager 또는 Balena Etcher (이미지 굽는 소프트웨어, 무료)

    💡 팁: SSD로 부팅하는 방법도 있는데, 처음엔 SD카드로 시작하세요. 안정화되면 그때 SSD로 옮기는 게 훨씬 수월합니다.

    라즈베리파이 4 홈 어시스턴트 설치 — 단계별 실전 가이드

    1단계 — Home Assistant OS 이미지 다운로드 및 굽기

    먼저 Raspberry Pi Imager를 PC나 맥에 설치합니다. 공식 홈페이지(raspberrypi.com)에서 무료로 받을 수 있어요.

    1. Raspberry Pi Imager 실행
    2. “Choose OS” 클릭 → “Other specific-purpose OS” 선택
    3. “Home assistants and home automation” → “Home Assistant” 선택
    4. 라즈베리파이 4용 이미지 선택
    5. “Choose Storage”에서 SD카드 선택
    6. “Write” 클릭 — 다 쓰는 데 5~10분 정도 걸려요

    ⚠️ 주의: SD카드에 있던 데이터는 전부 지워집니다. 중요한 파일 있으면 미리 백업하세요!

    2단계 — 라즈베리파이 첫 부팅

    이미지를 다 구웠으면, SD카드를 라즈베리파이에 꽂고 랜 케이블을 연결한 후 전원을 넣어주세요. 처음 부팅은 조금 오래 걸려요. 저는 약 5분 정도 기다렸어요.

    부팅이 완료되면 같은 네트워크에 연결된 PC 브라우저에서 아래 주소로 접속합니다:

    http://homeassistant.local:8123

    혹시 위 주소로 안 된다면, 공유기 관리 페이지에서 라즈베리파이에 할당된 IP를 확인하고 직접 입력해 보세요:

    http://192.168.x.x:8123

    3단계 — 초기 설정 마법사

    접속하면 초기 설정 화면이 뜹니다. 여기서는 별로 어려운 게 없어요.

    1. 계정 생성: 이름, 아이디, 비밀번호 입력 (이게 홈 어시스턴트 관리자 계정이 됩니다)
    2. 위치 설정: 집 위치를 설정하면 일출/일몰 기반 자동화가 가능해져요
    3. 기기 자동 탐색: 같은 네트워크에 있는 스마트 기기를 자동으로 찾아줍니다 — 저는 여기서 필립스 휴 전구가 바로 잡히더라고요 🎉

    홈 어시스턴트 초기 설정 마법사 화면 — 몇 가지 기본 정보만 입력하면 바로 대시보드가 활성화됩니다.

    4단계 — 첫 통합(Integration) 추가하기

    Integration(통합)이란 홈 어시스턴트가 특정 기기나 서비스와 통신하는 방법을 정의한 모듈이에요. 쉽게 말해 드라이버 같은 거죠.

    설정 → 기기 및 서비스 → 통합 추가 버튼을 누르면 수백 가지 통합 목록이 나옵니다. 자주 쓰는 것들을 몇 가지 소개하면:

    • Philips Hue: 휴 조명 연동
    • MQTT: 다양한 IoT 센서 연동 프로토콜
    • ESPHome: ESP8266/ESP32 기반 DIY 센서 연동
    • Google Cast: 구글 홈, 크롬캐스트 연동
    • Samsung SmartThings: 삼성 스마트싱스 기기 연동

    5단계 — 첫 자동화(Automation) 만들기

    자동화야말로 홈 어시스턴트의 핵심이에요. 저는 처음에 UI로 만들었다가, 나중에 YAML로 직접 작성하는 방식으로 넘어갔어요. 일단 UI부터 익히는 게 좋습니다.

    설정 → 자동화 및 장면 → 자동화 만들기 순서로 들어가세요. 아래는 “해질 무렵 거실 조명 켜기” 자동화 예시입니다:

    alias: "해질 무렵 거실 조명 켜기"
    description: "일몰 30분 전에 거실 조명을 자동으로 켭니다"
    trigger:
      - platform: sun
        event: sunset
        offset: "-00:30:00"
    condition: []
    action:
      - service: light.turn_on
        target:
          entity_id: light.living_room
        data:
          brightness_pct: 80
    mode: single

    YAML이 낯설어도 괜찮아요. UI에서 클릭 몇 번으로 똑같이 만들 수 있거든요. 위 코드는 나중에 “아, 이런 구조구나” 참고용으로 봐두시면 됩니다.

    홈 어시스턴트 설치 후 트러블슈팅 — 제가 겪은 문제들

    설치하면서 막혔던 부분들, 솔직하게 공유합니다. 저만 겪은 게 아닐 거예요.

    문제 1 — homeassistant.local 주소로 접속이 안 돼요

    mDNS(멀티캐스트 DNS)가 막혀 있는 네트워크 환경에서 종종 발생합니다. 해결법은 간단해요.

    1. 공유기 관리 페이지(보통 192.168.0.1 또는 192.168.1.1)에 접속
    2. 연결된 기기 목록에서 “homeassistant” 또는 “raspberrypi” 항목 찾기
    3. 해당 IP 주소로 직접 접속: http://192.168.x.x:8123

    💡 팁: 라즈베리파이에 고정 IP(Static IP)를 할당해 두면 IP가 바뀌는 불상사를 막을 수 있어요. 공유기 DHCP 설정에서 MAC 주소 기반으로 IP를 고정해 주세요.

    문제 2 — SD카드 속도가 너무 느려요

    이거 진짜 많이들 겪는 문제예요. 홈 어시스턴트는 데이터베이스를 SD카드에 계속 쓰는데, 저가형 SD카드면 엄청 느려집니다. 해결 방법은 두 가지예요:

    • 단기: 좋은 SD카드로 교체 (A2 등급 이상 권장)
    • 장기: USB 3.0 SSD로 부팅 전환 — 이 방법은 나중에 별도 글로 다룰게요

    문제 3 — 특정 기기가 자동 탐색이 안 돼요

    같은 네트워크에 있는데 기기가 안 잡히는 경우, 공유기에서 AP 격리(AP Isolation) 기능이 켜져 있는 게 원인인 경우가 많아요. 공유기 설정에서 AP 격리를 꺼주세요. 그래도 안 되면 해당 기기 전용 Integration을 수동으로 추가해야 합니다.

    자동화와 기기 연동이 완료된 홈 어시스턴트 대시보드 — 조명, 온도, 에너지 사용량을 한눈에 확인할 수 있습니다.

    설치 완료 — 결과 확인해 봅시다

    설치가 다 됐다면 대시보드에서 이런 것들이 보여야 정상입니다:

    • ✅ 연결된 기기들이 엔티티(Entity)로 표시됨
    • ✅ 기기 상태(켜짐/꺼짐, 온도 등)가 실시간으로 업데이트됨
    • ✅ 만들어 둔 자동화가 활성화 상태로 표시됨
    • ✅ 설정 → 시스템 → 정보에서 버전 정보 확인 가능

    스마트폰 앱도 설치하고 싶으시면, iOS/안드로이드 모두 “Home Assistant” 공식 앱이 있어요. 같은 네트워크에서는 물론이고, 외부에서도 접속하려면 Nabu Casa(나부 카사) 클라우드 서비스나 Tailscale(테일스케일, VPN 서비스)을 활용하면 됩니다. 이 부분은 다음 글에서 자세히 다룰 예정이에요.

    홈 어시스턴트 확장하기 — 추천 애드온

    HAOS의 장점이 바로 Add-on(애드온) 생태계입니다. 설정 → 애드온 메뉴에서 클릭 몇 번으로 추가 기능을 설치할 수 있어요. 제가 쓰는 것들 몇 가지 소개합니다:

    • Mosquitto Broker: MQTT 브로커, IoT 센서 연동의 핵심
    • ESPHome: ESP 기반 DIY 센서를 홈 어시스턴트에 연결
    • Node-RED: 시각적 자동화 편집기, 복잡한 자동화 만들 때 편함
    • File Editor: 브라우저에서 바로 설정 파일 편집 가능
    • Samba Share: 윈도우 파일 공유로 설정 파일 접근

    처음엔 File Editor 하나만 설치해도 충분해요. 나머지는 필요할 때 하나씩 추가하면 됩니다.

    홈 어시스턴트 vs 상용 스마트홈 플랫폼 비교 요약 — 프라이버시, 비용, 확장성 모든 면에서 홈 어시스턴트가 홈랩 환경에 적합합니다.

    홈 어시스턴트 설치 — 자주 묻는 질문 (FAQ)

    Q. 라즈베리파이 4 말고 다른 기기로도 되나요?

    네, 됩니다. 인텔 NUC, 구형 미니PC, 심지어 가상머신 위에서도 돌아가요. 다만 라즈베리파이 4는 전력 소모가 적고 가격 대비 성능이 좋아서 홈 어시스턴트 전용으로 쓰기 딱 좋습니다.

    Q. 한국 스마트 기기들도 연동이 되나요?

    삼성 스마트싱스 기기들은 공식 통합이 있고, LG ThinQ도 커뮤니티 통합이 있어요. 다만 국내 제조사 기기들은 공식 지원이 없는 경우도 있어서 사전에 호환성 확인이 필요합니다.

    Q. 인터넷이 끊기면 자동화도 안 되나요?

    홈 어시스턴트 자체는 로컬에서 돌아가기 때문에 인터넷이 끊겨도 로컬 자동화는 정상 작동해요. 다만 클라우드 기반 기기(일부 스마트 플러그 등)는 영향을 받을 수 있습니다.

    마무리 — 이제 진짜 스마트홈 시작입니다

    라즈베리파이 4로 홈 어시스턴트를 구축하는 것, 생각보다 어렵지 않죠? 처음 설치하고 거실 조명이 자동으로 켜지던 그 순간이 아직도 기억나요. 진짜 뿌듯하더라고요 🎉

    정리하자면 이렇습니다:

    1. 라즈베리파이 4 + 64GB SD카드 준비
    2. Raspberry Pi Imager로 HAOS 이미지 굽기
    3. 부팅 후 homeassistant.local:8123 접속
    4. 계정 생성 및 기기 연동
    5. 첫 자동화 만들기

    다음 글에서는 외부에서 홈 어시스턴트에 안전하게 접속하는 방법 — Tailscale VPN 연동을 다룰 예정입니다. 이 부분이 설정되면 집 밖에서도 스마트홈을 완전히 제어할 수 있어요.

    질문 있으시면 댓글로 남겨주세요. 제가 직접 겪은 문제라면 같이 해결해 드릴 수 있을 것 같습니다 😊