※ 총 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" file 및 HA의 "configuration.yaml" 파일을 수정해 주는 부분이 남았다.
결론적으로 현재 작업 후의 상황은 모든 RS485 통신 가능한 wallpad 기기를 HA에 전부 연결시키진 못했고, 현재 연결이 끝난 것은 각방 조명과 엘리베이터 호출 정도이다. 연결이 안된 기기는 보일러와 전열 교환기 및 대기전력 차단 콘센트이다.
일단 보일러는 HA에서 제어를 하게 되면 다른 동작은 문제가 없는데 off 명령 패킷을 보낼때만 반복적으로 명령을 계속 보내는 증상이 발견되었고 어느 순간 add-on이 먹통이 돼버렸다. js file수정에서 오류가 발생하는 것 같고 시간이 많이 걸릴 것 같아서 보일러는 브릿지허브로 임시 쓰기로 했다.
전열교환기와 대기전력 차단 콘센트는 사실 HA와의 연동 필요성을 크게 못느끼기도 했고 보일러 설정 이슈가 발생하면서 후순위로 밀렸다. 그래서 이것들도 일단 브릿지허브에서 제어하기로 했다.
그래서 최종적으로 우리 아파트의 모든 wallpad 기기는 다음과 같이 통합이 되었다. 첫번째로, 브릿지허브에서 스마트싱스와의 연결을 통해 그리고 HA에서 스마트싱스 통합구성요소 설치를 통해 보일러/전열교환기/대기전력 차단 콘센트가 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 초기 실행 시 log 창을 보면 그 과정이 로그로 남아 있다.) 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 file을 뜯어보면 솔직히 거의 이해를 못했지만, 몇 가지 짐작으로 이해한 부분을 아래 정리해 보았다. 파일의 앞부분에는 크게 기기의 현재 상태를 나타내는 패킷 정보와 기기에 명령을 전달하는 패킷 정보가 각 기기별로 포함되어 있고, 파일의 뒷부분에는 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