IoT 랜이

똑똑한 IoT를 추구합니다.

IT Info/IoT

라즈베리파이에 Home Assistant 설치하기 (2)

랜이 Rangee 2019. 3. 3. 11:26

최신설치방법

 

HomeAssistant - 설치하는 방법

HomeAssistant - 설치하는 방법 그간 HomeAssistant(이하 HA)가 수많은 업데이트를 거치며 이전에 작성했던 설치방법은 더 이상 지원하지 않는 방법이 많이 생겼습니다. 또한 설치메뉴얼이 정립되기 전

mscg.kr

 

Raspberry Pi3(라즈베리파이3)

Home Assistant(HA, 홈어시스턴트)
MobaXTerm(SSH)

 

1. HA를 설치하기전에 선택해야 할 사항

1) Docker(도커)를 이용하여 설치할 것인지

2) Hass.IO 혹은 Hassbian 을 설치할 것인지

3) Python VirtualEnv(파이썬 가상환경)을 이용하여 설치할 것인지

 

NAS(시놀로지 등)을 이용한다면 1) Docker를 이용하면 되고

라즈베리파이 등을 이용하고있고

컴퓨터와 크게 익숙하지 않다면 2) Hass.IO 혹은 Hassbian 을 설치하고

컴퓨터와 친숙하면서 이것저것 본인이 직접 할 수 있겠다면 3) Python VirtualEnv 로 설치하면 된다.

(개인적으로는 3) 을 이용하는것이 제한? 제약? 없이 마음껏 할 수 있다고 판단)

 

1) Docker를 이용한 설치(라즈베리파이 이용시)

필자는 처음에 라즈베리파이에 Docker를 이용한 환경을 구축했었는데

이런저런 시행착오를 겪고 Docker를 이용하면 불편함점이 많아서

HA 공식홈페이지에 나와있는 설치메뉴얼대로 3)으로 설치를 하였다.

여기에서는 Docker를 이용하여 HA를 설치하는 방법을 터미널 명령어로만 간단하게 설명하겠다.
(예전에 Docker로 설치하면서 작성해놓은 과정이라서 최신버전과 맞지않는 부분이 있을수 있습니다.)

 

 

1. 도커 설치

curl -sSL https://get.docker.com | sh

 

2. 도커 이미지 검색 및 다운로드

sudo docker search home-assistant

sudo docker pull lroguet/rpi-home-assistant:latest

 

3. HA 에서 사용할 설정 폴더

sudo mkdir /etc/home-assistant

 

4. 도커 이미지를 이용하여 도커 컨테이너 만들기 -- name XX 부분에 본인이 원하는 이름. 본글에서는 ha

sudo docker run -d -p 8123:8123 --net=host --name ha -v /etc/localtime:/etc/localtime:ro -v /etc/home-assistant/:/config lroguet/rpi-home-assistant:latest

sudo docker start ha

 

5. 도커 명령어

sudo docker search $       ====> 이미지 검색

sudo docker ps                                ===> 현재 실행중인 컨테이너 리스트

sudo docker ps -a                           ===> 로컬에 설정한 컨테이너 리스트

sudo docker start|stop|restart 컨테이너명 ==> 컨테이너 실행, 중지, 재시작

sudo docker logs -f $  ===> 현재 실행로그 확인, 에러발생 유무 파악을 위함

 

6. 나스로 도커 설정

http://blog.weekendproject.net/110

 

7. 도커 기본 포트 8123(위에서 설정한 값)

cd /etc/home-assistant 로 가셔서 sudo vi secrets.yaml 을 하셔서 파일을 만드시면 됩니다.

vi 관련해서는 기본 모드에서는 x 가 지우기, dd가 줄 지우기, i가 입력모드 전환이며, 저장종료 :wq!

secrets.yaml 파일을 열어

아래와같이 Key: value 형태로 원하는 Key 이름을 넣고. 아래 세개는 기본으로 넣으면 좋습니다.

이건 어디에 쓰냐면 homeassistant를 외부에서 접속할때 쓸 password이다

server_ip도 내가 지은이름이니 알아서 짓고 주소는 homeassistant가 설치된곳의 서버 ip를 넣으면 됩니다.

> user_id: yourID

> entry_passwd: xx

> server_ip : 192.168.0.x

cofiguration.yaml을 열고 api_password > !secret entry_passwd

공유기 포트 포워딩 8123 추가

 

8. Docker MQTT

sudo docker pull fstehle/rpi-mosquitto

sudo docker run -d -p 1883:1883 -p 9001:9001 --name mqtt fstehle/rpi-mosquitto

 

9. 도커 HA MQTT 자동실행

 

sudo vi /etc/rc.local 하셔서 if와 exit0 사이에 넣어주시면 부팅할때마다 자동으로 docker가 실행

sudo docker start ha

sudo docker start mqtt

 

10. 도커 HA 업그레이드

컨테이너 콘솔로 들어가는 명령어

sudo docker exec -it ha /bin/bash

HA 업그레이드 명령어

sudo pip3 install --upgrade homeassistant

간혹 pip3 전체 업데이트 필요시 명령어

pip3 freeze --local |sed -rn 's/^([^=# \t\\][^ \t=]*)=.*/echo; echo Processing \1 ...; pip3 install -U \1/p' |sh

 

 

2) Hass.IO 혹은 Hassbian을 이용한 설치는 해본적이 없어서 공식홈페이지 링크

https://www.home-assistant.io/getting-started/

 

 

3) Python VirtualEnv 를 이용한 설치

 
# 시작하기에 앞서 리눅스 환경에서 읽기쓰기 권한 및 소유자 변경하는 방법
 
sudo chmod -R 777 /home/homeassistant/.homeassistant
sudo chown -R homeassistant:homeassistant /home/homeassistant/.homeassistant

 

리눅스의 nano 로 직접 파일을 불러와서 수정하는것이 아닌
SSH 의 FTP기능으로 컴퓨터에서 텍스트파일을 수정할 경우 권한을 변경해주어야(777권한) 작업이 가능하다.
"-R" 은 해당 폴더 내의 파일/폴더 등을 전부 수정한다는 뜻.
위 "chown" 명령어를 이용 시 오타가 발생하면 아주 곤란하오니 부디 조심히 오타없이 사용하길 바람.
 
# 시작하기에 앞서 라즈베리파이에 homeassistant 계정 추가하기
sudo useradd -rm homeassistant
 
* 사용자계정 추가 및 sudo 권한 주기 / pi 계정에 권한 주면 됨.
sudo adduser [id]
sudo visudo
# User privilege specification
root    ALL=(ALL:ALL) ALL
pi    ALL=(ALL:ALL) ALL
homeassistant    ALL=(ALL:ALL) ALL
# 여기에 권한을 줄 id 추가
# [id]   ALL=(ALL:ALL) ALL

 

 

이제 HA를 설치하기 위한 명령어를 나열하도록 하겠습니다.

해당 내용은 공식홈페이지에 나와있습니다.
 
cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
sudo chmod 777 homeassistant
sudo su -s /bin/bash homeassistant
sudo -u homeassistant -H -s
pip install --upgrade setuptools
cd /srv/homeassistant
sudo -u homeassistant -H -s
python3 -m venv .
source bin/activate
python3 -m pip install wheel
pip3 install homeassistant
hass

 

위와 같이 성공적으로 따라하셨다면 아래 주소로 본인의 HA에 접속할 수 있습니다.

 

http://라즈베리파이IP:8123

 

HA가 업데이가 될 경우에는 아래와 같이 하시면 됩니다.

 
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 install --upgrade homeassistant
 
HASS 수동시작 / 업데이트 이후
hass --open-ui

 

이제 라즈베리파이를 재부팅 시에 HA를 자동시작하도록 해보겠습니다.

sudo nano -w /etc/systemd/system/home-assistant.service
 
 
[Unit] 
Description=Home Assistant 
After=network.target 
[Service] 
Type=simple 
User=%i 

ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant" 

[Install] 
WantedBy=multi-user.target
 
 
sudo systemctl --system daemon-reload
sudo systemctl enable home-assistant
sudo systemctl restart home-assistant
sudo systemctl status home-assistant

 

위 명령어 중 자주 쓰이게 될 명령어가 restart 와 status 인데, 지금은 그렇구나 라고 알아만 두시면 속편합니다.

 

 

이상 라즈베리파이에 HA 설치하기를 마무리하겠습니다.