※ 총 4편(하드웨어 / 애드온 설치 / 조명과 팬 제어 / 보일러 제어) 중 조명 및 팬 제어 편임
현재까지 상황을 간단히 정리해 보면, 주방 후드장 위에 HA 기기를 배치해서 자동소방장치의 RS485 단자를 Y형 커플러를 통해 HA-자동소방장치-RS485 포트 연결이 된 상태이다.
하드웨어 설치
그리고 HA 운영체제에 'wallpad controller with RS485' add-on 설치했고 mqtt 로그인 정보 및 'USB to RS485 변환기'가 연결된 시리얼 포트 정보를 add-on 설정에 입력까지 한 상태이다.
Add-on 설치
이제 남은 작업은 우리 아파트의 RS485 기기 구성에 맞게 Wallpad Add-on의 “commax_serial_wallpad.js” 파일과 HA의 “configuration.yaml” 파일을 수정하는 것이다.
현재 작업 후의 상황을 정리해보면, 모든 RS485 통신 가능한 Wallpad 기기를 HA에 전부 연결하지는 못했고, 현재 연결이 완료된 것은 각 방 조명과 엘리베이터 호출 정도다. 아직 연결되지 않은 기기는 보일러, 전열 교환기, 그리고 대기전력 차단 콘센트다.
보일러의 경우, HA에서 제어할 때 다른 동작은 문제가 없었지만, off 명령 패킷을 보낼 때만 명령이 반복적으로 계속 전송되는 증상이 발견되었다. 이로 인해 어느 순간 Add-on이 먹통이 되는 문제가 발생했는데, 이는 js 파일 수정에서 오류가 발생한 것으로 보이고, 해결하는 데 시간이 많이 걸릴 것 같아서 보일러는 임시로 브릿지허브를 통해 제어하기로 했다.
전열 교환기와 대기전력 차단 콘센트는 HA와의 연동 필요성을 크게 느끼지 못했고, 보일러 설정 이슈로 인해 후순위로 밀리게 되었다. 그래서 이 기기들도 일단 브릿지허브에서 제어하기로 결정했다.
최종적으로 우리 아파트의 모든 Wallpad 기기는 다음과 같이 통합되었다.
첫 번째로, 브릿지허브를 통해 ST와 연결하고, HA에서 ST 통합구성요소를 설치하여 보일러, 전열 교환기, 대기전력 차단 콘센트가 HA로 통합되었다. 이 항목들은 클라우드 연결로 이루어져 있어서 외부 서비스에 문제가 발생할 경우 함께 먹통이 될 우려가 있다. 하지만 자주 사용하지 않는 항목들이라 리스크는 상대적으로 적다.
두 번째로, 각 방 조명과 엘리베이터는 ‘Wallpad Controller with RS485’ Add-on을 통해 HA에 바로 통합되었다. 이 항목들은 로컬 연결이기 때문에 외부 서비스 상태와는 무관하게 안정적으로 작동한다.
이 두 가지 통합 방식은 모두 HA에서 Apple HomeKit Bridge를 통해 Apple HomeKit에 로컬로 연동되었다.
1단계: "commax_serial_wallpad.js" file 수정하기
이 파일은 Wallpad Add-on을 처음 실행하면 자동으로 HA의 “share” 폴더 안에 생성된다. Add-on 초기 실행 시 로그 창을 보면 그 과정이 로그로 남아 있다. HA의 “Samba Share”라는 Add-on을 설치한 후, 직접 윈도우나 맥 OS에서 해당 폴더에 접근할 수 있다.
Samba Share는 Add-on Store에서 설치할 수 있으며, 설치 후에 Add-on 상단 메뉴의 Configuration에서 HA 기기 접속 계정 정보인 username과 password를 입력하고, save를 눌러 설정을 저장하면 된다.
그런 다음 Add-on을 시작(Start) 버튼을 눌러 실행시킨 후, 윈도우나 맥 OS 화면으로 나가서 윈도우 탐색기나 맥 OS Finder를 실행시켜준다. 맥 OS의 경우, Finder를 실행한 후 command + K 단축키를 누르면 팝업이 뜨는데, 여기에서 접속할 smb://HA기기의 내부 네트워크 IP 주소를 입력하고 연결을 눌러준다. 계정 정보 팝업이 뜨면 HA 기기의 username과 password를 입력해준다. 그러고 나서 마운트할 볼륨을 선택하라는 창이 뜨는데, 이때 share 폴더를 선택하면 된다.
JS 파일을 뜯어보면서 솔직히 거의 이해하지 못했지만, 몇 가지 짐작으로 이해한 부분을 아래와 같이 정리해 보았다. 파일의 앞부분에는 주로 기기의 현재 상태를 나타내는 패킷 정보와 기기에 명령을 전달하는 패킷 정보가 각 기기별로 포함되어 있고, 파일의 뒷부분에는 HA와 MQTT 서버 간에 상태 및 명령을 제어하는 방법들이 포함되어 있는 듯했다.
그래서 Wallpad Add-on 사용자가 먼저 해야 할 일은 파일의 앞부분에서 자신이 사용할 기기에 대해 각 기기별 상태/명령 패킷 정보를 자신의 상황에 맞게 수정하는 것이다. 사용하지 않을 기기는 앞에 “//“를 붙여서 주석 처리해주고, 패킷 정보는 ‘Serialmon’ 등의 툴을 사용해 본인의 Wallpad 패킷을 확인해야 한다.
파일의 뒷부분은 현재 내 능력과 상황으로는 이해하기 어려웠고, 이 부분에서 발생하는 오류에 대해서는 더 공부를 하거나 다른 방법을 찾아야 할 것 같다. 내 경우, 보일러 오류가 이와 관련된 문제였던 것 같은데, 상태/명령 패킷 부분은 꼼꼼히 체크했음에도 불구하고 보일러를 off 시키는 동작에서만 오류가 발생하며 Add-on이 먹통이 되었다. 결국, 보일러의 HA 연동을 포기했다.(최종적으로는 연동했고 최종편 참고)
<js 파일 본문 내용 중 기기 상태 패킷 관련된 부분>
<js 파일 본문 내용 중 기기 명령 패킷 관련된 부분>
이렇게 수정한 js 파일은 Samba share를 통해서 다시 HA의 share폴더에 덮어쓰기를 하고 이 과정을 끝냈다.
2단계 : HA의 "configuration.yaml" file 수정하기
MQTT 통합요소에 구성요소를 등록하기 위한 절차는 다음과 같다. 먼저, Add-on Store에서 “File Editor”를 설치해야 한다. 설치 후 “Start” 버튼을 누르고 “OPEN WEB UI”를 눌러주면 윈도우 탐색기와 비슷한 화면이 나타난다. 여기서 좌상단의 폴더 버튼을 누르면 최상위 폴더(/homeassistant)로 들어갈 수 있다. 이곳에서 “configuration.yaml” 파일을 선택하여 수정을 시작한다.
<File Editor에서 configuration.yaml을 열고, 아래 내용을 그대로 타이핑하여 추가한 뒤, 저장을 완료한다.>
이렇게 configuration.yaml 파일까지 수정한 후에 마지막으로 HA기기를 재부팅해줘야 한다. 재부팅이 되면 wallpad add-on을 start 시켜주면 완료이다.
------------------------------------------------
첫번 째 이야기 - 하드웨어 설치 : https://wendysm.tistory.com/78
두번 째 이야기- 애드온 설치 : https://wendysm.tistory.com/79
네번 째 이야기- 보일러 연동 관련 js file 수정 : https://wendysm.tistory.com/83