로컬 제어와 프라이버시를 최우선으로 하는 오픈소스 홈 오토메이션 플랫폼
개요
Home Assistant는 전 세계 DIY 커뮤니티가 만들어가는 오픈소스 스마트홈 플랫폼입니다. 클라우드 의존성 없이 로컬에서 모든 스마트 기기를 통합 제어할 수 있으며, Raspberry Pi부터 NAS, 전용 서버까지 다양한 환경에서 Docker로 쉽게 구축할 수 있습니다.
| 항목 | 내용 |
|---|---|
| 공식 사이트 | https://www.home-assistant.io |
| GitHub | https://github.com/home-assistant |
| 라이선스 | Apache 2.0 |
| 최신 버전 | 2026.1 (2026년 1월 기준) |
| Docker 이미지 | ghcr.io/home-assistant/home-assistant:stable |
왜 Home Assistant인가?
1. 로컬 우선 (Local First)
클라우드 서버 없이 집 안에서 모든 자동화가 동작합니다. 인터넷이 끊겨도 스마트홈은 계속 작동합니다.
2. 프라이버시 보장
데이터가 외부로 나가지 않습니다. 음성 명령, 카메라 영상, 센서 데이터 모두 로컬에서 처리됩니다.
3. 압도적인 통합 지원
3,000개 이상의 통합(Integration)을 지원합니다. Zigbee, Z-Wave, Matter, Thread, Wi-Fi, Bluetooth 등 거의 모든 스마트홈 프로토콜을 커버합니다.
4. 강력한 자동화
“해가 지면 조명 켜기” 같은 단순 자동화부터 “가족이 모두 외출하면 난방 끄고, 마지막 사람이 집에 오면 다시 켜기” 같은 복잡한 시나리오까지 가능합니다.
5. 활발한 커뮤니티
매달 새로운 기능이 추가되고, HACS(Home Assistant Community Store)를 통해 수천 개의 커뮤니티 통합을 설치할 수 있습니다.
2026년 주요 업데이트
Home Assistant Labs
새로운 기능을 미리 체험할 수 있는 실험실 기능이 추가되었습니다. Winter mode로 대시보드에 눈 내리는 효과를 즐길 수도 있습니다.
휴먼 프렌들리 트리거
자동화 작성이 더 직관적으로 바뀌었습니다.
# 기존 방식 (상태값 기반)
trigger:
- platform: state
entity_id: light.living_room
to: "on"
# 새로운 방식 (자연어 스타일)
trigger:
- platform: light
entity_id: light.living_room
event: turn_on
이제 “조명이 켜지면”, “버튼이 눌리면”, “누군가 집에 도착하면” 같은 자연스러운 표현으로 자동화를 만들 수 있습니다.
프로토콜 패널
Zigbee, Z-Wave, Thread, Matter 네트워크 상태를 한눈에 볼 수 있는 전용 패널이 추가되었습니다. 디바이스 연결 상태, 신호 강도, 네트워크 토폴로지를 시각적으로 확인할 수 있습니다.
WebRTC 카메라 스트리밍
실시간 카메라 스트리밍이 WebRTC로 개선되어 지연 시간이 대폭 줄었습니다.
모바일 대시보드 개선
홈 대시보드에서 요약 카드를 바로 확인할 수 있어 탭 없이 핵심 정보에 접근할 수 있습니다.
Docker Compose로 설치하기
기본 설치
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host
environment:
- TZ=Asia/Seoul
확장 스택 (Node-RED, Mosquitto, InfluxDB 포함)
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- ./ha-config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host
environment:
- TZ=Asia/Seoul
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto:latest
volumes:
- ./mosquitto/config:/mosquitto/config
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
ports:
- "1883:1883"
- "9001:9001"
restart: unless-stopped
nodered:
container_name: nodered
image: nodered/node-red:latest
volumes:
- ./nodered-data:/data
ports:
- "1880:1880"
restart: unless-stopped
environment:
- TZ=Asia/Seoul
depends_on:
- homeassistant
- mosquitto
influxdb:
container_name: influxdb
image: influxdb:2
volumes:
- ./influxdb-data:/var/lib/influxdb2
- ./influxdb-config:/etc/influxdb2
ports:
- "8086:8086"
restart: unless-stopped
environment:
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_USERNAME=admin
- DOCKER_INFLUXDB_INIT_PASSWORD=your_password_here
- DOCKER_INFLUXDB_INIT_ORG=homelab
- DOCKER_INFLUXDB_INIT_BUCKET=homeassistant
grafana:
container_name: grafana
image: grafana/grafana:latest
volumes:
- ./grafana-data:/var/lib/grafana
ports:
- "3000:3000"
restart: unless-stopped
depends_on:
- influxdb
설치 및 실행
# 디렉토리 생성
mkdir -p ~/homeassistant && cd ~/homeassistant
# docker-compose.yml 파일 생성 후
docker compose up -d
# 로그 확인
docker logs -f homeassistant
브라우저에서 http://<서버IP>:8123으로 접속하면 초기 설정 화면이 나타납니다.
핵심 개념
Entities (엔티티)
Home Assistant가 인식하는 모든 것은 엔티티입니다. 조명, 스위치, 센서, 카메라 등 각각 고유한 ID를 가집니다.
light.living_room_ceiling # 거실 천장 조명
sensor.outdoor_temperature # 실외 온도 센서
binary_sensor.front_door # 현관문 열림 센서
Integrations (통합)
외부 기기나 서비스를 Home Assistant에 연결하는 방법입니다. UI에서 대부분 자동으로 설정됩니다.
Automations (자동화)
트리거, 조건, 액션으로 구성됩니다.
automation:
- alias: "퇴근 후 조명 켜기"
trigger:
- platform: zone
entity_id: person.me
zone: zone.home
event: enter
condition:
- condition: sun
after: sunset
action:
- service: light.turn_on
target:
entity_id: light.living_room
Scripts (스크립트)
재사용 가능한 액션 시퀀스입니다.
Scenes (씬)
여러 기기의 상태를 한 번에 설정합니다. “영화 모드”, “취침 모드” 등을 만들 수 있습니다.
추천 통합 (Integrations)
필수 통합
| 통합 | 용도 |
|---|---|
| HACS | 커뮤니티 통합 스토어. 수천 개의 추가 기능 |
| Zigbee Home Automation (ZHA) | Zigbee 기기 연결 |
| Z-Wave JS | Z-Wave 기기 연결 |
| MQTT | IoT 기기 통신 프로토콜 |
| ESPHome | DIY 센서/스위치 제작 |
AI/카메라 통합
| 통합 | 용도 |
|---|---|
| Frigate | 실시간 객체 감지 NVR |
| LLM Vision | AI 이미지 분석 (GPT-4 Vision 등) |
| Google Generative AI | AI 기반 자동화 |
유틸리티
| 통합 | 용도 |
|---|---|
| Music Assistant | 멀티룸 오디오 통합 |
| Proxmox VE | 가상머신 제어 |
| Plex/Jellyfin | 미디어 서버 연동 |
HACS 필수 커스텀 컴포넌트
HACS(Home Assistant Community Store)를 설치하면 다음 커뮤니티 통합을 추가할 수 있습니다.
| 컴포넌트 | 용도 |
|---|---|
| Browser Mod | 브라우저별 대시보드 커스터마이징 |
| Mushroom Cards | 현대적인 카드 UI |
| Card Mod | 카드 CSS 커스터마이징 |
| Auto Entities | 동적 엔티티 카드 생성 |
| Bubble Card | 모바일 친화적 팝업 UI |
| Scheduler | 스케줄 기반 자동화 UI |
| Watchman | 설정 오류 감지 |
자동화 예제
1. 모션 감지 조명
automation:
- alias: "현관 모션 조명"
trigger:
- platform: state
entity_id: binary_sensor.front_door_motion
to: "on"
condition:
- condition: numeric_state
entity_id: sensor.front_door_illuminance
below: 100
action:
- service: light.turn_on
target:
entity_id: light.front_door
data:
brightness_pct: 100
- delay: "00:03:00"
- service: light.turn_off
target:
entity_id: light.front_door
2. 에어컨 자동 제어
automation:
- alias: "온도 기반 에어컨 제어"
trigger:
- platform: numeric_state
entity_id: sensor.living_room_temperature
above: 26
condition:
- condition: state
entity_id: person.me
state: "home"
action:
- service: climate.set_temperature
target:
entity_id: climate.living_room_ac
data:
temperature: 24
hvac_mode: cool
3. 외출 시 전체 꺼짐
automation:
- alias: "외출 모드"
trigger:
- platform: state
entity_id: group.family
to: "not_home"
for: "00:10:00"
action:
- service: light.turn_off
target:
entity_id: all
- service: climate.turn_off
target:
entity_id: all
- service: media_player.turn_off
target:
entity_id: all
- service: notify.mobile_app
data:
title: "외출 모드 활성화"
message: "모든 기기가 꺼졌습니다."
보안 설정
HTTPS 설정 (리버스 프록시)
Nginx Proxy Manager나 Traefik을 사용해 HTTPS를 적용하세요.
configuration.yaml에 추가:
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.16.0.0/12
- 192.168.0.0/16
- 10.0.0.0/8
2단계 인증
설정 → 사용자 → 프로필에서 TOTP 기반 2FA를 활성화할 수 있습니다.
IP 차단
configuration.yaml:
http:
ip_ban_enabled: true
login_attempts_threshold: 5
백업 및 복구
자동 백업 설정
설정 → 시스템 → 백업에서 자동 백업 일정을 설정할 수 있습니다.
수동 백업
# Docker 컨테이너 정지
docker stop homeassistant
# config 폴더 백업
tar -czvf ha-backup-$(date +%Y%m%d).tar.gz ./config
# 컨테이너 재시작
docker start homeassistant
복구
docker stop homeassistant
tar -xzvf ha-backup-20260120.tar.gz -C ./
docker start homeassistant
성능 최적화
데이터베이스 최적화
기본 SQLite 대신 MariaDB나 PostgreSQL을 사용하면 대규모 히스토리 데이터 처리가 빨라집니다.
# configuration.yaml
recorder:
db_url: mysql://user:password@localhost/homeassistant
purge_keep_days: 10
commit_interval: 1
exclude:
domains:
- automation
- updater
entity_globs:
- sensor.weather_*
로그 레벨 조정
logger:
default: warning
logs:
homeassistant.components.mqtt: debug
관련 프로젝트
| 프로젝트 | 설명 |
|---|---|
| ESPHome | ESP32/ESP8266 기반 DIY 센서 펌웨어 |
| Zigbee2MQTT | Zigbee 기기를 MQTT로 연결 |
| Frigate | AI 객체 감지 NVR |
| Node-RED | 플로우 기반 자동화 도구 |
| Rhasspy | 로컬 음성 어시스턴트 |
마무리
Home Assistant는 단순한 스마트홈 허브를 넘어, 집 전체를 프로그래밍 가능한 공간으로 만들어줍니다. 처음에는 조명 자동화로 시작하더라도, 점점 에너지 모니터링, 보안 시스템, AI 기반 자동화까지 확장할 수 있습니다.
Docker로 설치하면 업데이트와 백업이 간편하고, 다른 서비스(Grafana, InfluxDB, Node-RED)와의 연동도 쉽습니다. 스마트홈을 시작하려는 분들에게 Home Assistant는 최고의 선택입니다.