홈 어시스턴트 스마트홈 8개월 사용기 / 유지보수기

목차

유지보수 목적

홈 어시스턴트는 스마트싱스에 비해 로컬의 장점, Yaml을 통한 쉬운 수정 그리고 사용자가 원하는 제품혹은 서비스를 추가하거나 수정하기에 쉽다는 장점이 있다. 이러한 장점을 위해 필자가 홈 어시스턴트를 선택했었다. 하지만 완제품인 스마트싱스보다는 연결과 관리에 손이 더 타고 코딩이나 하드웨어에 대한 지식이 부족하다면 반대로 스마트싱스보다도 어려울 수 있을 것 같다. 홈 어시스턴트로 스마트홈에서 구현할 수 있는 자유도가 높은만큼 여러가지 에러들이 있었다. 아래는 필자가 약 8개월동안 쓰는 동안 있었던 에러 내용들이다.

  1. 다원 지그비 스위치(2구) 홈 어시스턴트에 연동안됨
  2. 다원 플러그 전원 제어불가
  3. VM과 지그비 코디네이터 연결 불가 문제
  4. 아수스 공유기 에드온 오류
  5. 자동화 트리거 오류

유지보수 방법

다원 지그비 스위치 홈 어시스턴트에 연동 안됨

이 문제는 근처에 다른 지그비 라우터를 놓고 Z2M 설정에서 지그비 업데이트 주기를 1이나 0으로 설정해서 수정했었다. 또한 이래도 잘 안된다면 아래쪽 버튼을 10초동안 눌러 초기화를 하고 다시 5초동안 눌러 재페어링을 해야한다.

다원 플러그 전원 제어불가

이 문제는 다원 플러그 AS를 진행하고 있다. 부디 AS 후에는 잘 작동했으면 좋겠다. (추가) AS 이후에는 잘 작동된다. 솔직히 다원 AS 후기가 좋지않아서 걱정이 많았는데 잘 진행되서 정말 다행이라고 생각한다. 비록 지그비 스위치는 어쩌다가 한번씩은 안되지만 역시 국산은 국산인 것 같다. 다만 와이파이 플러그는 최근 서버관련 일로 추천하는기는 힘들 것 같다.

VM과 지그비 코디네이터 연결 불가 문제

부팅시간 오류나 알 수 없는 오류로 VM에서 지그비 스틱을 인식하지 못하는 경우가 있다. 이런 경우에는 윈도우 서비스에서 부팅시간 지연을 설정하고, 그래도 지그비 스틱이 연결안되는 경우를 대비해 서버나 VM을 재시작할 수 있도록 자동화를 구성해야한다. 지그비 장치가 연결이 안되면 unavailable이라고 표시가 되는데 이를 이용해 자동화를 구현한다. VM 재시작은 홈 어시스턴트 ‘Call Service’쪽에서 할 수 있지만 서버 PC 재시작은 Shell Command를 사용해서 구현해야한다. airytec switch off라는 앱을 서버 호스트 OS에 설치하고 웹페이지를 통해 제어할 수 있도록 설정한다. 그 이후에 홈 어시스턴트의 Shell Command기능을 사용해서 curl -k http://192.168.01.**:8124/?action=System.Shutdown 이런식으로 홈 어시스턴트내의 configuration.yaml에 명령어를 추가해준다. 아래는 필자가 등록한 쉘 커맨드 예시이다.

1
2
3
4
5
6
7
8
9
shell_command:
shutdown_game_z800: 'curl -k http://192.168.50.**:8124/?action=System.Shutdown'
restart_game_z800: 'curl -k http://192.168.50.**:8124/?action=System.Restart'
sleep_game_z800: 'curl -k http://192.168.50.**:8124/?action=System.Sleep'
hibernate_game_z800: 'curl -k http://192.168.50.**:8124/?action=System.Hibernate'
shutdown_server_z800: 'curl -k http://192.168.50.*^:8124/?action=System.Shutdown'
restart_server_z800: 'curl -k http://192.168.50.*^:8124/?action=System.Restart'
sleep_server_z800: 'curl -k http://192.168.50.*^:8124/?action=System.Sleep'
hibernate_server_z800: 'curl -k http://192.168.50.*^:8124/?action=System.Hibernate'

이런 방식으로 커맨드를 등록하고 자동화에 활용하자

아수스 공유기 에드온 오류

홈 어시스턴트와 아수스 공유기는 큰 작업없이 바로 연결될 수 있다. 다만 공유기를 스마트플러그나 스위치로 키거나 끄면 제대로 연동이 안되서 Wan 상태나 IP가 unavailable로 뜨는 경우가 있었다. 이러한 현상이 안 생기게 하기위해서는 공유기를 소프트웨어적으로 재부팅시켜야한다. 그러기위해서는 SSH로 공유기를 재부팅시키는 방법을 사용한다. 아수스 공유기에서 SSH 사용설정을 하고 putty에서 Puttygen 프로그램을 사용하여 공공키와 개인키를 발급해야한다. 여기서 주의할 점은 OpenSSH에 맞게 공공키와 개인키를 만들어야한다! Putty 용으로 만들면안된다! 공유기에 공공키를 넣고 홈 어시스턴트에서는 개인키 파일을 넣어서 사용한다. 홈 어시스턴트에서는 위에서 한 방법처럼 쉘 커맨더를 사용하면된다. 아래는 필자의 예시이다.

1
2
shell_command:
asus_router_reboot : 'ssh -i /config/ssh_key ID@192.168.**.1 -p **** reboot'

자동화 트리거 오류

모션 센서나 전등스위치와 관련된 자동화를 실행시키다보면 잘 작동되던 자동화가 잘 안되는 상황, “씹힙” 현상이 있다. 현재까지의 추측으로는 지그비 통신 환경 (채널 수정, 2.4 무선간섭)으로 인한 것으로 생각이되지만 의외로 통신이 원활한 상태에서도 있어서 코디네이터 문제도 의심해봐야겠다. 다른 코디네이터를 구해서 테스트를 진행해볼예정이다. (추가) 아직 모션 센서관련된 자동화는 테스트 중이지만 지그비 플러그를 더 구해서 지그비망을 보강하고 2.4GHz 와이파이를 제거하니 자동화 실패의 수가 체감될 정도로 줄었다. 효과가 있어서 다행이다.

참고한 자료들과 같이보기 좋은 자료들

  1. https://docs.oracle.com/en/cloud/paas/goldengate-cloud/tutorial-change-private-key-format/
  2. https://www.lesstif.com/lpt/ssh-unprotected-private-key-file-80249001.html
  3. https://community.home-assistant.io/t/remote-shutdown-restart-sleep-hibernate-pc/11473
  4. https://community.home-assistant.io/t/running-a-shell-command-from-home-assistant-to-remote-linux-pc/135221/3
  5. 홈 어시스턴트 네이버카페
  6. 스마트싱스 네이버카페