처음 스마트홈을 접했을 때는 스마트폰으로 조명을 켜고 끄는 정도만 해도 꽤 신기하게 느껴졌습니다. 그런데 여러 스마트 기기를 사용하다 보니 제조사마다 애플리케이션이 다르고 각각의 기기를 따로 관리해야 하는 불편함이 생겼습니다. 저도 처음에는 각각의 앱을 사용하는 방식으로 관리했지만 기기가 늘어나면서 한곳에서 관리할 수 있는 방법을 찾게 되었습니다. 그때 알게 된 것이 Home Assistant였습니다. 특히 이미 홈 서버를 운영하고 있다면 Docker를 이용해 Home Assistant를 설치해 스마트홈 관리 환경을 직접 구성할 수 있습니다. 이번 글에서는 Home Assistant가 무엇인지 알아보고 Docker를 이용해 설치하는 기본적인 방법과 초기 설정 과정을 정리해 보겠습니다.
Home Assistant란 무엇인가?
Home Assistant는 집 안의 다양한 스마트 기기를 하나의 플랫폼에서 관리하고 자동화할 수 있도록 도와주는 오픈소스 홈 자동화 플랫폼입니다.
스마트 조명, 센서, 스위치, 온도계 등 다양한 장치를 연결해 상태를 확인하거나 자동화 규칙을 만들 수 있습니다.
예를 들어 특정 시간에 조명을 켜거나 집 안의 온도에 따라 기기를 제어하는 등의 자동화를 구성할 수 있습니다.
Home Assistant의 장점은 특정 제조사의 제품만 사용하는 것이 아니라 다양한 장치와 서비스를 하나의 환경에서 관리할 수 있다는 점입니다.
왜 Docker로 Home Assistant를 설치할까?
Home Assistant는 여러 가지 설치 방법을 제공하지만 홈 서버를 이미 운영하고 있다면 Docker를 이용하는 방법도 고려할 수 있습니다.
Docker를 사용하면 Home Assistant를 컨테이너 환경에서 실행할 수 있습니다.
기존 서버 운영체제에 직접 설치하는 것과 비교해 프로그램을 분리해서 관리하기 편리하고, 같은 서버에서 다른 서비스와 함께 운영하기도 좋습니다.
예를 들어 한 대의 홈 서버에서 개인 클라우드와 미디어 서버, 모니터링 서비스, Home Assistant 등을 각각 별도의 컨테이너로 운영할 수 있습니다.
다만 Docker 환경에서는 Home Assistant의 모든 기능과 설치 방식이 동일하게 제공되는 것은 아니므로 자신에게 필요한 기능을 먼저 확인하는 것이 좋습니다.
설치 전에 필요한 환경
Docker로 Home Assistant를 설치하기 전에 기본적인 홈 서버 환경이 준비되어 있어야 합니다.
먼저 Ubuntu Server와 같은 서버 운영체제가 설치되어 있어야 합니다.
그다음 Docker가 정상적으로 설치되어 있어야 합니다.
서버에 충분한 저장공간과 메모리가 있는지도 확인하는 것이 좋습니다.
Home Assistant 자체는 비교적 가벼운 편이지만 연결하는 스마트 기기의 수와 함께 사용하는 다른 서비스에 따라 서버 자원 사용량이 달라질 수 있습니다.
또한 스마트홈 기기를 연결할 예정이라면 서버가 집 안의 네트워크에 안정적으로 연결되어 있는지 확인해야 합니다.
가능하면 무선 연결보다 유선 네트워크를 사용하는 것이 관리 측면에서 편리합니다.
Docker에서 Home Assistant 설치하기
Docker가 준비되어 있다면 Home Assistant 컨테이너를 생성할 수 있습니다.
처음 설치할 때는 Home Assistant의 설정 파일과 데이터를 서버의 특정 저장공간에 연결하는 것이 중요합니다.
컨테이너 내부에만 데이터를 저장하면 컨테이너를 삭제하거나 문제가 발생했을 때 설정과 데이터 관리가 어려워질 수 있기 때문입니다.
Docker를 사용할 때는 일반적으로 컨테이너의 설정 데이터가 서버의 별도 저장공간에 저장되도록 구성합니다.
이렇게 하면 Home Assistant 컨테이너를 다시 생성하더라도 기존 설정을 유지할 수 있습니다.
설치 과정에서 사용하는 명령어나 설정은 Home Assistant와 Docker의 최신 공식 문서를 기준으로 확인하는 것이 좋습니다.
프로그램의 설치 방식이나 지원 기능은 버전에 따라 변경될 수 있기 때문입니다.
Home Assistant 실행 확인하기
컨테이너를 정상적으로 실행했다면 웹 브라우저를 통해 Home Assistant 화면에 접속할 수 있습니다.
같은 네트워크에 있는 컴퓨터에서 서버의 IP 주소와 Home Assistant가 사용하는 포트를 이용해 접속합니다.
예를 들어 서버의 내부 IP 주소가 특정 주소라면 해당 주소 뒤에 설정한 포트 번호를 입력하는 방식입니다.
처음 화면이 정상적으로 표시된다면 기본적인 설치는 완료된 것입니다.
이후 Home Assistant에서 사용할 계정을 만들고 이름과 지역, 시간대 등의 기본 정보를 설정합니다.
지역과 시간대를 정확하게 설정하는 것이 좋습니다. 자동화 기능에서 시간이나 일출, 일몰과 같은 정보를 활용할 수 있기 때문입니다.
스마트 기기 연결하기
Home Assistant의 초기 설정이 끝나면 스마트 기기를 추가할 수 있습니다.
사용하는 기기의 제조사와 통신 방식에 따라 연결 방법이 달라질 수 있습니다.
일부 기기는 네트워크를 통해 자동으로 검색될 수 있고, 별도의 연동 설정이 필요한 경우도 있습니다.
처음에는 사용 중인 스마트 조명이나 스마트 플러그처럼 비교적 단순한 장치 하나를 연결해 보는 것을 추천합니다.
기기 하나를 정상적으로 연결한 다음 다른 장치를 추가하면 문제가 발생했을 때 원인을 파악하기 쉽습니다.
Home Assistant 자동화 기능 활용하기
Home Assistant의 핵심 기능 중 하나가 자동화입니다.
자동화는 특정 조건이 충족되었을 때 원하는 동작을 실행하도록 만드는 기능입니다.
예를 들어 특정 시간에 조명을 켜거나 센서가 특정 상태를 감지했을 때 다른 기기를 작동시키는 방식으로 활용할 수 있습니다.
자동화를 만들 때는 조건과 동작을 명확하게 설정하는 것이 중요합니다.
처음부터 복잡한 자동화를 만들기보다는 간단한 규칙 하나부터 만들어 보는 것이 좋습니다.
예를 들어 특정 시간에 조명이 켜지는 자동화를 먼저 만든 다음, 센서나 여러 장치를 연결해 점차 기능을 확장할 수 있습니다.
대시보드로 스마트홈 한눈에 관리하기
Home Assistant에서는 여러 장치의 상태를 하나의 화면에서 확인할 수 있도록 대시보드를 구성할 수 있습니다.
조명의 현재 상태, 실내 온도, 스마트 플러그 상태 등 다양한 정보를 화면에 배치할 수 있습니다.
스마트폰이나 태블릿에서도 대시보드를 사용할 수 있기 때문에 집 안에서 스마트홈 상태를 확인하기 편리합니다.
처음에는 모든 정보를 한 화면에 넣기보다 자주 사용하는 장치 위주로 구성하는 것이 좋습니다.
사용하다 보면 어떤 정보가 필요한지 자연스럽게 알게 되고 그에 맞춰 대시보드를 수정할 수 있습니다.
Docker로 운영할 때 주의할 점
Home Assistant를 Docker에서 운영할 때 가장 중요한 부분 중 하나는 데이터 관리입니다.
Home Assistant 설정 파일과 데이터가 안전하게 저장되도록 구성해야 합니다.
또한 컨테이너를 업데이트하기 전에 현재 설정을 백업해 두는 것이 좋습니다.
특히 스마트홈 자동화 설정을 오랜 시간 동안 만들어 놓았다면 해당 설정은 서버에서 중요한 데이터가 될 수 있습니다.
서버 저장장치에 문제가 생겼을 때 복구할 수 있도록 별도의 백업 공간을 마련하는 것을 추천합니다.
또한 Docker 컨테이너를 무작정 업데이트하기보다는 현재 사용 중인 Home Assistant 버전과 호환성에 문제가 없는지 확인한 후 진행하는 것이 좋습니다.
스마트홈 서버를 외부에서 접속할 때 주의하기
Home Assistant를 설치한 뒤 외부에서도 접속하고 싶을 수 있습니다.
하지만 서버 관리 화면을 인터넷에 직접 공개하는 것은 신중하게 접근해야 합니다.
외부 접속이 필요하다면 HTTPS와 인증, 접근 제어 등 기본적인 보안 환경을 먼저 구성해야 합니다.
처음에는 집 안의 네트워크에서 Home Assistant를 사용하면서 기능을 익히는 것을 추천합니다.
외부 접속이 꼭 필요해졌을 때 공식 문서에서 제공하는 안전한 접근 방법을 확인하고 자신의 환경에 맞는 방법을 선택하는 것이 좋습니다.
Home Assistant를 처음 사용할 때 추천하는 순서
스마트홈 서버를 처음 구축한다면 다음과 같은 순서로 진행하는 것이 좋습니다.
먼저 Ubuntu Server와 Docker를 준비합니다.
그다음 Home Assistant를 설치하고 웹 화면에 정상적으로 접속되는지 확인합니다.
이후 스마트 기기 하나를 연결합니다.
기기가 정상적으로 작동한다면 간단한 자동화를 하나 만들어 봅니다.
마지막으로 대시보드를 정리하고 필요한 장치를 추가합니다.
이렇게 단계적으로 진행하면 처음부터 너무 많은 설정을 변경하는 것을 피할 수 있습니다.
마무리
처음 Home Assistant를 설치했을 때는 단순히 스마트 기기를 한곳에서 관리하는 프로그램이라고 생각했지만, 실제로 사용해 보니 자동화를 직접 설계하고 집의 환경을 원하는 방식으로 구성할 수 있다는 점이 가장 재미있었습니다. 특히 Docker를 이용하면 기존에 운영하던 홈 서버에 Home Assistant를 추가할 수 있어 별도의 컴퓨터를 준비하지 않아도 스마트홈 환경을 만들어 볼 수 있다는 점이 편리했습니다. 처음부터 집 전체를 자동화하려고 하기보다는 스마트 조명이나 스마트 플러그처럼 간단한 기기 하나를 연결해 보는 것부터 시작하는 것을 추천합니다. 작은 자동화 하나가 정상적으로 작동하는 것을 직접 확인해 보면 스마트홈을 구성하는 과정도 훨씬 재미있게 느껴질 것입니다. 이후 필요한 기기와 자동화를 하나씩 추가하다 보면 자신에게 맞는 나만의 스마트홈 서버를 만들어 갈 수 있습니다.