본문 바로가기
Tech/IoT

HA 홈네트워크 연동 - 3. HA 설치

by Kim Gaon
 

HA 홈네트워크 연동 - 2. 패킷 캡쳐

HA 홈네트워크 연동 - 1. 배선 작업 집에 있는 RS-485 통신 기반의 홈네트워크 시스템을 원격에서 제어하기 위해 라즈베리파이를 통한 Home Assistant 연동 작업을 시작하였다. 아파트 홈네트워크 시스

blog.gaon.kim

 홈네트워크를 Home Assistant에 연동하려면 서버 역할을 할 컴퓨터가 필요한데 HA와 작성할 프로그램을 머신 대 머신 통신을 위한 프로토콜인 MQTT를 통해 연결할 것이므로 보안을 위해 해당 기기 내에서만 접속이 가능하도록 하나의 기기에서 일괄적으로 실행하는 것이 좋다. 그렇다고 하여 NAS가 아닌 이상에야 전력 소모도 많은 컴퓨터를 24시간 돌릴 수는 없으니 라즈베리파이에 설치하는 것을 추천한다.

 


 

HA 설치 방법에 따른 기능 차이.

 라즈베리파이에서는 OS, Container, Core 설치가 가능하다. OS는 애드온을 쉽게 추가할 수 있다는 장점이 있지만 설정이 너무 제한적이어서 Container이나 Core을 추천한다. Container은 Docker를 이용해 컨테이너로 가상화하는 방식이라 HA 외에도 이것저것 돌리게 될 내 라즈베리파이에겐 너무 가혹할까 봐 Core로 설치했다. Home Assistant 자체가 Python 기반이라 Core 설치 과정에서 Python을 설치하게 되는데 제어에 필요한 프로그램도 Python으로 작성하면 필요한 리소스를 깨나 많이 절감할 수 있지 않을까 한다.

 


 

 

Raspberry Pi OS – Raspberry Pi

From industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody.

www.raspberrypi.com

 Home Assistant OS를 설치하는 게 아니라면 일단 라즈베리파이 OS를 설치해야 한다. 위 링크에서 Imager를 다운받는다. 이미지 파일로 설치하는 방법도 있지만 최근에 기본 계정(pi, raspberry)으로 로그인해서 설정하는 방식이 사라져서 SSH를 통해 처음에 로그인이 불가능하다. Imager를 설치하면 그 과정에서 사용자 계정과 SSH 접속 설정을 할 수 있기에 Imager를 활용하는 편이 훨씬 낫다.

 

Raspberry Pi Imager를 실행한 화면.

 처음 실행시키면 저런 화면이 뜨는데, 먼저 "CHOOSE OS" 버튼을 눌러 설치할 OS를 선택한다. SSH로만 사용할 거라 데스크톱 환경이 불필요하고 Raspberry Pi 4 Model B 8GB짜리를 사용 중이라 "Raspberry Pi OS (other)"을 눌러 "Raspberry Pi OS Lite (64-bit)"을 선택하였다. 64비트 OS를 설치했을 때 호환되지 않거나 오류가 나는 프로그램도 있다고 하니 확인해 봐야 한다. 하지만 Home Assistant나 MQTT 브로커를 설치하는 과정에서 별다른 문제는 없었다.

 

 이후 설치할 저장소(micro SD 카드)를 연결한 후 "CHOOSE STORAGE"를 눌러 선택한다. 그 다음이 가장 중요한데, 우측 하단에 표시되는 톱니바퀴 버튼을 눌러 "Advanced options" 메뉴에 진입한다.

 

Raspberry Pi Imager의 Advanced options 메뉴.

 SSH를 활성화한 후 이용할 사용자 이름과 암호를 입력한다. Home Assistant가 설치된 서버를 대상으로 한 해킹 시도가 많다고 하니 사용자 이름을 알려진 것(root, admin 등등)으로 하거나 지나치게 쉬운 암호는 하지 않아야 한다. SAVE를 눌러 설정을 저장한 후 "WRITE"를 누르면 자동으로 설치가 완료된다. 설치가 완료된 micro SD 카드를 라즈베리파이에 마운트 한 후 사용하는 컴퓨터와 같은 네트워크에 연결하고 전원을 넣어 준다.

 


 

 이제 본격적으로 Home Assistant를 설치하기 위해 라즈베리파이에 SSH를 통해 접속해야 한다. Mac에선 Terminal 앱에서 바로 연결이 가능한데, Windows에선 PuTTY를 많이 사용한다.

 

Mac 사용시 Terminal 앱을 열어 다음 명령어를 입력하면 접속할 수 있다.

ssh <Username>@<라즈베리파이 내부IP>

 

 

Raspberry Pi

Install Home Assistant on a Raspberry Pi

www.home-assistant.io

 접속을 완료하였다면 위 링크의 설명에 따라 설치하면 된다. 2023-02 버전부터 Python 3.9 이하의 버전에 대한 지원을 중단한다고 하니 3.10 이상의 버전을 설치해야 한다.

 


 설치된 Home Assistant에 접속하여 설정을 완료하였으면 Settings에 가서 돋보기 아이콘을 누르고 Stop Server를 눌러 HA를 중지한다. 현재 HA가 SSH를 통해 연결된 터미널 위에서 실행되고 있기 때문이다. 이 연결이 끊기면 터미널이 사라지고, HA도 함께 중지된다. 이를 방지하기 위해 Linux의 터미널 가상화 도구인 Screen을 사용한다.

 

 현재의 연결을 종료한 후 다시 SSH를 통해 접속하여 다음 명령어를 입력한다.

sudo apt-get install screen

 

 설치가 완료되면 다음 명령어를 통해 가상 터미널을 생성한다. (다시 접속할 때에도 사용된다.)

screen -R <터미널 이름>

 

생성한 가상 터미널에 자동으로 접속된 후 다음 명령어를 차례대로 입력해 Home Assistant를 다시 시작한다. 이후 SSH 연결을 종료해도 HA가 실행 중인 터미널은 종료되지 않는다.

sudo -u homeassistant -H -s
cd /srv/homeassistant
source bin/activate
hass

댓글