스마트홈 플랫폼인 홈어시스턴트(Home Assistant) 구축기

|


이번에는 오픈 소스 스마트홈 플랫폼인 홈어시스턴트(Home Assistant)를 시놀로지 나스의 도커(docker) 위에 구축하여 보았다.







지난달에 내가 가끔씩 놀러가는 'SmartThings & Connect Home'이라는 네이버 카페에서

홈어시스턴트(이하 HA)와 관련된 게시글을 읽고서는 호기심이 발동하여서 시놀로지 나스부터 질렀다.


시놀로지 나스 DS918+를 업어 오다. - 1.개봉 및 설치

시놀로지 나스 DS918+ - 2.RAM, M.2 SSD, HDD 추가 설치







그리고는 10월 중순까지는 머리 아픈 일을 해결하는라 거들떠보지를 못하다가,

지난 주말부터 DS918+에 도커와 프로그램을 하나씩 설치하면서 HA구축을 시작하였다.







먼저 이번 HA를 구축하면서 붱이님의 블로그럽2유3님의 강좌글에서 많은 도움을 받았음을 밝히며,

두 분께 진심으로 고맙다는 말씀을 전하고 싶다.


그래서 이 포스팅에서는 HA구축하면서 삽질했던 개인적인 경험과 유용한 팁(TiP) 정도만 공유하고자 한다.






1. 에디터(Editor) 선택부터 갑갑했었다.



나는 PC에서 프로그램을 짤 이유도 없었고 스크립트를 만들 필요도 없어서,

그동안은 윈도우 메모장으로 버텼었는데 이번에는 도무지 불가능하여서,

인터넷에서 'Notepad++'라는 에디터를 다운로드하여 사용했는데 나름 괜찮더라.






2. state.json에 ST값들이 채워지지가 않을 때



ST와 HA를 브릿지로 잘 연결했는데도 state.json에 ST값들이 채워지지가 않아서 살짝 당황했었는데,

오리지널 state.json 파일을 state_old로 rename 시켜놓고 브릿지를 다시 시작하면 ST값들이 정상적으로 채워지더라.






3. 우리집 위치는 스마트싱스의 경위도 값이 제일로 정확하다.



HA의 configuration.yaml의 기본 위치(Asia/Seoul)는 우리집이 한강 한가운데 있는 것으로 보이는데,

스마트싱스 허브에 있는 우리집의 경위도가 가장 정밀(소수점 이하 8자리)하니 가져다 쓰면 된다.






4. 'include_dir_merge_named'와 'include_dir_merge_list'를 활용하자.



configuration.yaml 파일 하나에 모든 스크립트를 기술하면 가독성이 많이 떨어지니,

'include_dir_merge_named' 와 'include_dir_merge_list' 를 활용하여 폴더를 만든 후에,

목적별 또는 방(room)별로 파일을 만들어 놓으면 유지보수(maintenance)가 많이 편하다.






5. MQTT sensor의 entity는 가변적(variable)이다.



쉽게 이야기를 하여서 DHCP서버에서 IP주소를 뿌리듯이 프로세서를 다시 시작하면 entity가 매번 변해서,

뒤에서 group이나 customize를 사용하여서 탭 뷰(Tap view)등으로 예쁘게 가공하기가 불가능하다.

이 부분은 조금더 공부와 테스트를 하고서 2단계 구축시에 추가적으로 반영을 할 예정이다.






6. 한글 장치명(device name)은 HA에서 부분적인 문제를 일으킨다.



나는 지난 8월에 애플 홈킷, 스마트싱스, 필립스 휴의 장치명을 한글로 통일을 했었는데,


애플 홈킷(Apple Homekit)을 재구성하다.


HA에서 한글 장치명은 부분적인 문제를 일으켜서 또다시 영문명으로 확~ 뒤집어 엎었다.

맨처음 뒤집을 때의 결정에는 많은 고민을 했었지만 두번째 뒤집는 것은 일도 아니었다.







HA의 늪에 빠져서 대략 열흘 동안은 완전히 허우적 거렸다.


저녁에 어머님을 목욕시켜 드리고 작업을 하고자 하였으나 머리가 책상을 박고 있더라.

그래서 영어 해석과 스크립트 작성등의 집중이 가능한 새벽시간에 주로 작업을 하였는데,

실제 작업(20%)보다는 공부하고(40%), 스크립트 작성(40%)하는데 대부분의 시간을 보냈다.







홈어시스턴트(Home Assistant)는 주머니, 정신건강, 육체건강에 두루두루 해롭더라.


시놀로지 나스(DS918+)를 구매하느라 완전히 거지가 되었고,

짧은 영어 실력으로 도큐먼트와 예제를 공부하고 이해하느라 머리를 쥐어 짰으며,

노안(老眼)으로 침침한 눈을 비비며 yaml스크립트를 작성하느라 눈알이 빠지는 줄 알았다.


당분간 얘랑(HA)은 조금 멀리하면서 단풍놀이나 하면서 피폐(疲弊)해진 심신(心身)을 추스려야겠다.


그래도 Home Assistant가 오픈 소스 플랫폼의 유연함과 껍데기로 보여주는 뽀대 하나는 죽여준다.






And