IT/Home IoT 구축

Home IoT를 위한 Home Assistant 설치

잼니크 2022. 7. 28. 23:47
반응형

안녕하세요 잼니크 입니다. 

이번 글에서는 홈 IoT 프로젝트 내용 중 IoT 장치를 관리해 줄 미들웨어인 Home Assistant를 설치하려고 합니다.

이전 글에서 계속 이어지는 글이며, 링크는 아래와 같습니다. 

 

Home IoT를 위한 서버(?) 구입 및 세팅

안녕하세요 잼니크입니다. 새로 시작한 홈 IoT 프로젝트를 최대한 세세하게 기록하기 위해 한단계 씩 차근차근 글을 올리고 있습니다. 첫번째로 할 일은 집안에 있는 IoT 장비를 통제할 수 IoT 중

gam1532.tistory.com

이전 글 내용을 요약하면 뭐 10만원 안 되는 서버 하나 구입해서 데비안 최소 설치 + openssh 설치한 다음, 내부망 고정 IP 할당해 줬다! 이런 내용입니다!

 

운영체제를 설치했으니 IoT 장치를 관리할 Home Assistant를 설치하겠습니다!

Home Assistant는 IoT를 관리해 주는 SW인데, 라즈베리 파이나 오드로이드 같은 ARM도 공식적으로 제공하고 있습니다. 

Home Assistant는 크게 4가지 방법으로 구성할 수 있는데 설명은 아래와 같습니다 

설치 방법 설명
Home Assistant Operating System 홈 어시스턴트 미들웨어와 경량 OS 이미지를 포함한 배포
Home Assistant Container 홈어시스턴트 미들웨어를 컨테이너 가상화를 이용하여 배포
Home Assistant Supervised 홈 어시스턴스의 core + 플러그인 기능을 추가
Home Assistant Core 홈 어시스턴스의 핵심적인 기능을 담당 

좀 헷갈려서 한참 찾아봤는데... Core가 핵심적인 기능을 담당하고, Supervised에서는 Core에서 추가로 플러그인 기능과 관리 기능이 더해져 있습니다. 즉, 무엇을 설치하냐? 의 내용이고

Container와 Operating System은 설치 방법에 대한 내용입니다. 

Operating System은 core + supervised를 다 포함하고 있고 추가로 전용 경량 OS까지 설치하고, Container는 Core 만 할 것인지, OS처럼 둘 다 할지를 선택하고, 설치는 리눅스나 윈도 등에서 진행하면 됩니다. 

 

저는 실 서버를 구성할 것이기 때문에 가상 머신에서 먼저 둘 다 설치해 봤는데 굳이 supervised를 쓸 필요는 없어 보여서 (다행히 더 간단한) core로 갈 예정입니다. 나중에 필요하다면 supervised로 변경하는 걸로 하겠습니다. 

 

위 표에는 없지만 OS, 컨테이너의 대안으로 파이썬 가상 환경을 통한 설치도 가능하지만 저는 컨테이너를 이용한 설치를 진행하겠습니다. 

 


1. 컨테이너 관련 패키지 설치 

공식문서에는 docker를 사용하지만... 저는 밀려나고 있는 docker 대신 podman을 설치해서 사용할 예정입니다. 

그 이유는 일단 아래에 접어놓을 테니 궁금하신 분들은 펼 처서 읽어보세요!

더보기

잠시 옆길로 빠져서... docker 대신 podman을 쓰는 이유는  크게 두 가지입니다. 실패가 발생했을 때 영향을 최소화하기 위함이 첫 번째, 두 번째는 앞으로 컨테이너 기술이 다른 도구로 넘어갈 수 있을 것 같아서입니다.

docker가 가진 몇 가지 문제가 있습니다. 일단 docker의 구조적인 문제로 인해 컨테이너를 관리하는 docker daemon 컨테이너들의 부모 프로세스기 때문에 죽을 경우 다른 컨테이너에 영향을 주게 됩니다. 또한, 컨테이너 기술을 편하게 쓰게 만들긴 했지만 컨테이너를 위한 인터페이스인 OCI 표준과 부합되지 않습니다. 

docker에서 podman으로 바뀐다고 해서 명령어가 크게 바뀌진 않습니다. docker가 비표준이 되었지만 사실상 업계를 선도했기 때문에 넘어가더라도 크게 바뀌면 힘들겠죠 ㅋㅋㅋ Home Assistant 매뉴얼을 봐도 OCI 표준과 호환이 된다면 상관없다고 되어 있습니다!

 

그럼 podman을 설치해 보겠습니다.

# 쉘에서 실행
apt update 
apt upgrade -y
apt install podman

podman을 설치해 봅시다

그다음은 매뉴얼처럼 컨테이너를 실행해야 하는데 docker 명령어 대신 podman 이라고만 바꾸면 됩니다!

# 쉘에서 실행 
podman run -d \
	--name homeassistant \
	--privileged \
	--restart=unless-stopped \
	-e TZ=Asia/Seoul \
	-v /srv/hacore:/config \
	--network=host \
	ghcr.io/home-assistant/home-assistant:stable

이렇게 하면 되는데 매뉴얼을 보면 2 곳을 수정하라고 되어 있습니다. 

MY_TIME_ZONE은 Home Assistant가 설치되는 곳의 시간대의 지역을 쓰면 됩니다. 대한민국에서는 Asia/Seoul을 적으면 됩니다. 그다음, PATH_TO_YOUR_CONFIG가 있는데 이곳은 Home Assistant를 위한 설정 파일 이 저장되는 곳입니다. 저는 /srv/hacore라는 곳에 저장할 예정이라 아래와 같이 명령을 실행하면 됩니다.

# 쉘에서 실행
cd /srv
mkdir hacore

쉘에서 폴더 만드는 명령을 실행한 후 podman run 명령을 실행하면 아래와 같은 결과를 볼 수 있습니다. 

그리고 잘 떠있는지를 podman ps를 입력하면 위 그림의 맨 하단처럼 동작중인 Home Assistant 컨테이너를 보실 수 있습니다. 그러면 웹 브라우저를 통해 Home Assistant 세팅을 진행하겠습니다. 

웹 브라우저를 킨 다음 Home Assistant가 설치한 서버의 IP를 포트번호인 8123으로 접속하면 최초 사용자 등록하는 페이지가 나옵니다.

#웹 브라우저 주소창에 입력
http://<Home Assistant IP>:8123/

Home Assistant 최초실행시 사용자를 만드는 화면

이제 사용자를 만들어 줍니다. 저는 이름란에 제 이름을 넣었고, Username 은 사용할 ID, 암호 순으로 입력했습니다. 어려운 게 없으니 빠르게 다음으로 넘어가겠습니다!

위치 및 단위 설정 화면

그다음은 위치와 장소의 이름, 단위를 지정하는 화면입니다. 저는 내 집이라는 이름을 만들었습니다. 위 스크린 숏에는 암스테르담이라고 나와있는데, 지도 위쪽에 파란색 DETECT 버튼을 누르면 집 주면으로 마커가 이동합니다. 하지만 이 위치는 집 주면일 뿐 정확히 맞지 않아서 집으로 마커를 이동했습니다. 마커 이동은 마커를 좌클릭 후 드래그하면 됩니다. 그 아래 시간대는 지도에 맞게 다시 세팅이 됩니다. 시간 대 옆에 고도가 있는데... 이건 수동으로 세팅해야 합니다. 인터넷으로 검색하시면 알아내는 법이 있으니 확인해서 넣어도 좋습니다. 통화는 KRW 입력하면 됩니다. 

정보 활용 동의 입니다.

다음은 정보 활용 동의입니다. Home Assistant의 발전을 위해 데이터를 제공하고 싶으시면 활성을, 싫으시면 위 스크린숏처럼 비활성화하시면 됩니다. 

마지막 단계입니다!

자! 이제 마지막 단계입니다. Home Assistant가 인식한 기기들입니다. 저는 iptime 공유기와 시놀로지 NAS가 검색되었네요! 여기서 더 추가해도 되지만 우선은 넘어가고 나중에 세팅하겠습니다!

지금부터 Home Assistant를 쓸 수 있습니다!

그럼 이제 지금부터 Home Assistant를 쓸 수 있게 되었습니다!! 

짝짝! 

앞으로 할 일은 기기를 더 추가하고, 여기를 좀 더 멋지게 꾸미면 됩니다! 

오늘의 글은 끝!

반응형

'IT > Home IoT 구축' 카테고리의 다른 글

Home IoT를 위한 서버(?) 구입 및 세팅  (0) 2022.07.27
Home IoT 구축 프로젝트 시작  (0) 2022.07.27