본문 바로가기
Hardware/Home Assistant

HomeAssistant, 더샵 아파트 월패드 연동 2편 - EW11로 RS485 패킷 분석

by lovey25 2020. 11. 18.

더샵 아파트 월패드를 Home Assistant(HA)에 연결하기 두 번째 포스팅입니다.

아파트 홈네트워크가 어떻게 구성되어 있는지 지난 포스팅에서 아주 가볍게 알아봤었죠. 이제 방법을 알아버렸기 때문에 쭉쭉 진도를 뺄 수 있을 것 같네요. 아래 링크의 글에 이어서 계속 진도 나가보겠습니다.

 

Home Assistant, 더샵 아파트 월패드 연동 1편 - 설치환경 확인 및 홈오토메이션 관련 자료 수집

지금 살고 있는 아파트는 2014년도에 완공된 더샵 아파트입니다. 홈 네트워킹이 설치되어 있어서 월패드에서 전등을 켜고 끄거나 각방의 난방과 냉방을 조절하는 등 기본적인 기능이 가능합니다

kwonkyo.tistory.com

EW11 사용 준비

홈네트워크의 연동 가능성을 보기 위해서 EW11이라는 장비를 하나 구입했습니다. 홈네트워크의 통신 방식인 RS485를 와이파이로 전송해주는 아주 편리한 제품입니다. RS485 패킷을 컴퓨터에서 편하게 확인할 수 있죠.

물론 이런 추가 장비 구매 없이 ESP8266 모듈을 이용해서도 간단하게 RS485 통신을 무선으로 연결시켜주는 브릿지를 만들 수 있지만 요런 거 하나 있어도 좋겠다 싶어서 주문했습니다. (ESP8266을 이용한 RS485-WIFI 브릿지에 대한 내용은 여기를 참고해 주세요.)

알리에서 구매를 했는데요. 구매 옵션이 여러 가지가 있는데 저는 일단 본품만 신청했습니다. 그랬더니 포장 박스도 없이 뽁뽁이 한 장에 둘둘 말아서 요것만 도착했습니다. 받고 보니 와이어링 하는 게 일이라 연결 아답타 같이 구매할 걸 하는 후회가 들었어요. 구매하실 분들은 참고하세요. 

와이어링을 위해서 어쩔 수 없이 랜선 하나를 희생했습니다. 다행히 집에 놀고 있는 UTP 케이블이 많기 때문에 하나 잘라서 피복 벗겼습니다.

사용하는 배선은 5: A+, 6: B-, 7: VCC, 8: GND인데 어디가 1번이고 8번인지 방향이 계속 헷갈립니다. EW11 포트 쪽에 잘 보면 양끝에 1, 8이라고 적혀있어서 방향을 구분할 수 있습니다.

EW11 초기화 작업을 먼저 해 주겠습니다.

EW11은 전원으로 5~18V를 사용할 수 있습니다. 다행히 홈네트워크에 사용되는 설비들의 전원이 12V이기 때문에 아무 전원이나 물려서 사용할 수 있습니다. 그런데 12V는 제가 평소에 접해보지 않은 높은 전압이라서 좀 겁도 나고 해서 테스트 겸 먼저 직류전원장치에 물려서 초기화 작업해 주었습니다. 12V는 +, -를 가까이 가져가면 스파크가 튈 만큼 높은 전압입니다. 5V 이하의 전압만 사용하는 아두이노에서는 볼 수 없는 현상이기 때문에 긴장할 필요가 있습니다. 잘못하면 부품 태워먹을 수 있어요.

전원을 연결하고 나서 와이파이로 EW11에 연결을 합니다.

무선인터넷을 검색하면 EW11_0000이라는 SSID를 볼 수 있습니다. 당연히 인터넷이 안 되는 네트워크기 때문에 스마트폰에서 연결하면 자동으로 연결을 끊고 공유기로 접속을 해버리기 때문에 타 공유기로 자동접속은 잠시 꺼두시고 시도하시기 바랍니다.

인터넷이 연결되고 나서 연결된 SSID를 눌러주면 위에 첫 번째 화면을 볼 수 있습니다. 여기서 "공유기 관리"라는 메뉴를 눌러줍니다.
그럼 두 번째 로그인 화면으로 이동하는데요 ID와 비번은 "admin"으로 동일하게 로그인하면 3번째 화면 만나실 수 있습니다.

3가지만 확인해 주시면 되는데요. 먼저 EW11이 접속할 네트워크 정보를 입력합니다. "WiFi Settings"페이지에서 "WiFi Mode"를 AP+STA 또는 STA로 변경하고 아래에 "Scan" 버튼을 눌러서 접속하고자 하는 네트워크를 선택하고 비밀번호를 입력하시면 됩니다. 맨 아래에 제출 버튼을 꼭 눌러야 저장이 됩니다.

다음으로 "Serial Port Settings"페이지에서 Baudrate를 "9600"으로 변경합니다. 그리고 마지막으로 "Communication Settings"페이지로 이동해 보시면 접속 포트번호를 확인할 수 있는데요. 기본이 8899로 되어 있네요. 나중에 접속할 때 필요하니 기억해 줍니다.

추가로 선을 물릴 때 사용할 악어 케이블 몇 개 준비해주면 이제 하드웨어 준비는 끝났습니다.

홈네트워크에 EW11 연결

이제 EW11을 물려서 사용할 위치를 찾아야 하는데, 통신반 내 IO 모듈을 살펴보면 유독 특이하게 여러 전선이 옹기종기 모여있는 단자를 볼 수 있습니다.

포트 레이블에도 485라는 글자가 보이는 걸로 봐서 이 부분인 것 같습니다. 그리고 시공업체에서 케이블을 정리할 때 각 선들의 이름을 다 붙여놔서 그 용도를 쉽게 짐작할 수 있습니다. 저희 집은 환기, 온도조절기, 원격검침, 가스, 도어록 5가지 선들이 위 사진에서 왼쪽 붉은색 네모의 단자로 모이고 있습니다. 오른쪽은 12V 전원 단자입니다. 이 단자에 EW11을 물려주도록 하겠습니다. 꼭 필요한 조명은 바로 아래에  별도 포트로 연결되어 있네요. 같이 연결된 건지 모르겠는데 일단 이대로 테스트해 보기로 했습니다.

도어록으로 가는 단자가 점프선 연결하기 좋게 생겨서 거기에 연결했습니다. EW11에 녹색의 전원 LED와 함께 주황색 LED도 깜빡이면서 뭔가 신호가 들어오고 있다는 걸 알 수 있습니다.

결선은 다음과 같습니다.

EW11         -  IO module (전선 색)
5번(A+)     -    C485-1A (흰+파)
6번(B-)     -    C485-1B (파랑)
7번(Vcc)   -       12V (빨강)
8번(GND) -      GND (검정)

이제 EW11이 접속한 IP주소를 확인합니다. 공유기 관리 페이지로 가서 할당된 IP 목록에서 EW11이라는 이름을 찾습니다.

10.11.85.41로 접속되어 있네요. 

SerialPortMon 다운로드

이제 컴퓨터에서 RS485 신호를 읽어줄 모니터링 프로그램이 필요한데요. 홈네트워킹을 하시는 분들 후기를 읽어보면 열에 아홉은 이 프로그램을 사용하십니다. 어느 능력자께서 개발하셔서 무료로 그리고 소스코드까지 완전히 공개하신 "SerialPortMon"이라는 프로그램입니다.

 

시리얼 포트, TCP/IP, UDP/IP 터미널 프로그램 (시리얼 통신 프로그램)

프로그램을 잘 사용하고 계신다면, Youtube 구독과 좋아요 부탁드립니다. https://www.youtube.com/channel/UCyeFmUd3h9Gzw4wK7tglc9Q 이번에 소개 드리는 프로그램은 시리얼 포트(COM port)나 TCP/IP, UDP/IP 프..

blog.daum.net

여기서 프로그램 다운로드하시고 실행합니다.

군더더기 없이 그리고 꼭 필요한 기능들로만 알차게 구성되어 있습니다. 문자열 표시방식을 모두 "HEX"로 선택하고 상단에 "Connect"버튼 눌러줍니다.

연결 형태는 TCP Client를 선택하고 앞에서 확인한 EW11 IP주소와 초기화를 하면서 확인했던 포트번호를 넣고 접속해 줍니다. EW11이 아무런 문제 없이 잘 동작하고 있다면 아래와 같이 알 수 없는 패킷이 쏟아지는 걸 볼 수 있습니다. 

패킷 분석

이제 패킷을 분석해야 하는데요. 아파트 월패드로 컨트롤 가능한 기기들을 하나하나씩 동작시키면서 동작에 연동되어 발생되는 패킷들을 찾아냅니다. 지금부터는 노가다입니다. ^^ 

SerialPortMon에 뜨는 패킷들을 복사해서 먼저 MS워드에 붙여 넣고 FF ~ EE 형태의 구문이 한 문장이 되도록 편집을 해 줍니다. 그리고 다시 복사해서 이번엔 MS 엑셀에서 중복 검사를 해서 반복 빈도가 높은 패킷들은 모두 지워줍니다. 이렇게 반복 작업을 하다 보면 아 이거구나 하는 패킷들이 보이는데요. 패킷을 복사해서 반대로 보내기를 시도해 봅니다.

예를 들어 "F7 0B 01 19 02 40 13 02 00 B7 EE"라는 패킷을 보냈더니 복도의 3 Way 등이 꺼졌습니다. 오~~ 됩니다 돼요.

SerialPortMon에 단축키 지정이라는 아주 편리한 메뉴가 있는데요. 확인된 패킷들을 저장해 두고 테스트할 때 요긴하게 쓸 수 있습니다.

이런 식으로 반복 노가다를 통해서 불필요한 패킷들은 지워가면서 아래 그림과 같은 결과를 얻을 수 있었습니다.

난방과 도어록 그리고 조명 관련 패킷을 확인할 수 있었습니다. 다행히 조명 단자가 별도로 있음에도 네트워크를 공유하고 있었습니다. 패킷들의 패턴을 보면 나름 규칙이 있는 것 같은데 설비별로 포맷이 조금씩 다르기 때문에 다른 설비의 패킷을 쉽게 유추하기는 불가능한 것 같습니다. 대신 컨트롤 신호가 발생되면 그 신호를 받은 설비는 신호를 받았다는 응답을 하여 오고 가는 패킷이 쌍을 이루는 구조로 통신을 하고 있는 걸 알 수 있어요.

그 외에도 알아내지 못한 패킷들이 많이 있습니다. 앞으로 천천히 들여다보면서 알아가야 할 부분인 것 같습니다.  ㅡ.,ㅡ 

환기 관련된 패킷은 알 것 같으면서도 잘 모르겠는데 응답 패킷이 하나가 아니라 2개가 발생하고 있어서 규칙을 찾기가 어려웠습니다.

하지만 다행히 능력자 분들께서 많은 정보를 공유해 주고 계셨고 그 정보가 완벽히 일치하지는 않지만 많은 부분이 동일해서 약간의 수정만으로 사용이 가능했습니다. 이전 포스팅에서 언급했던 네이버 카페 글에서 공유된 코드에 있는 패킷 중 환기에 관련된 부분은 수정 없이 이용해도 기대한 동작이 모두 인식되어서 패킷 분석은 일단 여기서 일단락하고 다음으로 넘어가기로 했습니다.

다음 포스팅에서는 분석된 패킷을 바탕으로 ESPHome을 이용해서 펌웨어도 만들어보고 ESP8266 모듈을 이용해서 브리지 모듈을 만들어서 펌웨어를 올리고 HA와 완전히 통합하는 작업을 계속 진행해 보겠습니다.

 

끝!

728x90

댓글2