월패드 원격제어를 위한 RS485 패킷 분석 준비

월패드 원격제어를 위한 RS485 패킷 분석 준비

Home Assistant 등 IoT 플랫폼에서 월패드를 제어할 수 있다면, 월패드에서 제어가능한 조명, 난방, 환기 등 기기를 IoT 플랫폼에서 간접적으로 제어할 수 있다.

월패드는 RS485 직렬통신을 주로 이용한다. 연결하는 방법은 의외로? 간단하다. Elfin EW11은 RS485 선에 연결하여, 오가는 패킷을 듣고, 원하는 패킷을 흘려준다. RS485 신호를 TCP 소켓, MQTT 등 다양한 방식으로 변환해준다.

난 나비엔 UHN-1010을 쓰고 있다. 월패드 아래에 있는 나사를 뜯어 월패드를 조심스럽게 들어냈다. 가족들에겐 양해가 필요하다.🤦🏻‍♂️

월패드 개방과정

Elfin EW11의 A, B 단자는 신호가 오가고, C, D 단자는 전원이다. 월패드 내측 회로에 있는 단자들과 점퍼케이블을 통해 연결했다.

Elfin EW11 Wiring

월패드에 EW11 연결

Elfin EW11의 Wi-Fi 설정을 마치고, 라우터의 DHCP 서버로 고정된 내부IP를 할당했다. 패킷을 TCP 서버에 방송하도록 설정했다. SerialPortMon에서 TCP 서버에 접속하니 패킷이 잘 보인다. 더 자세한 설정 장법은 도정진님 블로그에서 확인할 수 있다.

SerialPortMon

위 설치가 다 끝나면, 유념해야 할 두가지 요소가 있다.

① 이 패킷에 표준은 없는 것 같다. IoT 까페에서 안내해 준 한국정보통신기술협회의 표준 문서가 있는데 폐지된 기준으로 나온다. 따라서 본인이 쓰는 월패드가 쓰는 패킷을 리버스엔지니어링해야 한다. 이 작업이 좀 고되다.

한국정보통신기술협회 표준문서

② 패킷 분석 뿐만 아니라 Home Assistant가 읽을 수 있도록 변환도 해야한다. Home Assistant는 워낙 확장이 많아 신호를 넘겨줄 방법이 다양할 것 같은데, 가장 흔한 방법이 MQTT일 것이다.

난 홈어시스턴트 코리아 저장소에 있는 코콤 월패드 프로그램을 수정해 ①과 ②를 해결하고 있다. 월패드 때문에 별도의 프로그램을 쓰는 것이 좀 찝찝해서, EW11이 MQTT로 바로 패킷을 쏘도록 하고, Home Assistant가 패킷을 분석하는 방법이 가능한지도 알아보고 있다.