본문 바로가기
Hardware/Home Assistant(라즈베리파이)

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

by lovey25 2020. 11. 16.
반응형

지금 살고 있는 아파트는 2014년도에 완공된 더샵 아파트입니다. 홈 네트워킹이 설치되어 있어서 월패드에서 전등을 켜고 끄거나 각방의 난방과 냉방을 조절하는 등 기본적인 기능이 가능합니다. 그런데 이게 흉내만 내다 말아서 편리하게 활용하기에는 너무 부족하고 그렇다고 아주 안 쓰자니 아쉽고 완전 계륵이라고 볼 수 있습니다. 

어떤 식이냐면 제가 주로 취미생활을 하는 방에 전등 스위치는 이런 식으로 생겼습니다. 터치로 천장 형광등을 켜고 끌 수 있는 스위치가 하나 있고 그리고 방 좌우 벽에 설치된 콘센트를 차단하거나 연결하는 스위치 2개가 있습니다. 벽 콘센트는 사용 중인 전력량까지 표시가 되는 나름 스마트한 스위치입니다. 그런데 문제는 이 스위치는 홈네트워크에 연결되어 있지 않습니다.

그리고 원격으로도 집 내부 상황을 확인하고 컨트롤할 수 있는 모바일 인터페이스가 있긴 한데 디자인도 좀 불편하고 속도가 너무 느리기도 하고 그리고 한 번씩 명령을 누르면 되다가 안되다가 해서 가스나 보일러를 안 끄고 나왔다거나 하는 정말 급한일이 있을 때가 아니면 사용이 꺼려지게 되어있습니다. 그리고 집안 모든 설비가 연결된 것도 아니고요.

사실 이 모든게 집값에 포함되어 있기에 아파트 사용 연한까지는 수도나 전기 설비처럼 지속적으로 편리하게 사용이 가능하도록 만들어져 있어야 하고 유지보수도 이루어져야 한다고 생각을 합니다. 하지만, 현실은 홈네트워킹 같은 건 약간 보너스 같은 인식이라서 되면 좋고 안돼도 어쩔 수 없지 뭐 라는 식으로 아직은 사람들마다 인식의 괴리가 있는 것 같습니다. 만약 아파트 배관에 문제가 있어서 물이 안 나온다고 하면 주민들이 난리가 날 텐데 홈네트워킹으로 원격 컨트롤이 잘 안된다고 불만을 제기하는 사람은 거의 없으니까요. 저 조차 아파트 입주 때 홈네트워킹 서버가 너무 느리고 사용하기 불편한 점에 대해서는 이이를 제기하지는 않았습니다.

그런데 Home Assistant(HA)를 알고 나서 혼자서 어떻게든 해 보면 불편하고 생각되는 부분은 극복하고 집안에 설치된 장비들을 최대한 활용해 볼 수 있을 것 같은 가능성이 보였습니다. 왜 이런 솔루션에 진작 관심을 가지지 않았을지 지난 시간이 아깝다는 생각이 드네요.

제가 HA를 이용해서 해결해보고자 하는 이슈는 크게 2가지입니다.

1. 아파트에 설치되어 있는 홈네트워크(월패드)를 HA와 연동해서 완벽한 자동화를 구현하기

2. 물리적으로 연결이 되지 않은 오프라인 스위치들도 모두 네트워크에 연결시키기 

통신단자함 배선

문제 해결을 위해서 본질을 파악해야 하니 관련된 내용에 대해서 좀 자료를 수집해보겠습니다.

먼저 통신단자함입니다.

알 수 없는 다양한 장비들이 들어있어서 머리가 어지럽네요.  처음 이사 와서 공유기 설치하면서 좀 자세히 들여다보려다 포기했던 기억이 나네요. 음... 컨트롤해야 할 기기들은 조명, 난방, 냉방 이런 것들인데 이것들이 모두 한 장비에 공통적으로 물려있는 게 보이네요. 장비 배치도에서 4번 I/O MODULE입니다. 이 I/O Module에 연결된 선에는 UTP, 485통신이라는 용어가 공통적으로 사용되고 있습니다. 시작부터 모르는 게 나왔으니 검색해 봐야겠죠.

먼저 IO 모듈입니다.

제품에 적혀있는 키워드 다 찾아봐도 뭐 정보를 찾을 수 없네요. U-life Solutions가 무슨 회사 인지도 모르겠고 건진 거라곤 현대통신에서 제작한 제품이란 겁니다. 실마리가 아닌 것 같으니 다음으로 넘어가죠. 

다음으로 UTP는 나무 위키의 연선 케이블(Twisted Pair Cable) 문서를 보면 자세하게 나와있는데 한마디로 우리가 흔히 인지하고 있는 랜케이블을 지칭하는 겁니다. 쉽게 말해서 랜케이블이 UTP 외에도 타입이 여러 가지가 있는데 그중에서 Unshielded Twisted Pair라고 해서 주변의 간섭 전파를 차폐할 수 있는 보호막이 없는 가장 저렴한 타입의 케이블이라고 생각하면 되겠네요.

차폐 단계에 따른 케이블 분류 (출처:나무위키)

그리고 참고로 우리가 익숙하게 랜케이블이라 하면 아래 그림과 같은 8개의 선으로 이루어져 있고 걸쇠가 있어서 딸깍하고 끼워졌다가 눌러서 빼야 하는 이런 모양을 연상하게 되는데 이런 모양의 케이블 플러그는 "RJ45"라는 별도 규격으로 규정되어 있고 UTP는 오로지 케이블에 대한 이름이란 걸 알 수 있었습니다.

RJ45

아직까지 실마리는 안 보이는 것 같네요. 마지막으로 485 통신을 찾아보겠습니다.

485 통신이라고 검색을 하면 RS485라는 용어와 시리얼통신이라는 용어를 같이 접할 수 있는데 바로 홈네트워크에서 기기들 간 커뮤니케이션을 하는 방식을 의미하는 용어들입니다. 요게 실마리가 되겠네요. RS485는 시리얼 통신방식의 한 종류로 +, - 두 가닥의 케이블로 정보를 주고받으며 통신을 하는데 MCU 공부하면서 많이 접하게 되는 UART와는 약간의 차이가 있습니다. 뒤에서 언급할 내용인데, 전 +/- 두 가닥 통신이라고 해서 UART방식인 줄 알고 무작정 아두이노를 연결해서 신호를 받아보려고 했었는데 무모한 짓이었더군요. RS485는 신호의 전압 레벨이 -7~12V이고 Half Duflex 방식이라고 해서 실제로 데이터를 주고받는 선은 한가닥이고 나머지 1가닥은 통신 컨트롤용으로 사용되기 때문에 동시 송수신이 불가능하고 무전기처럼 차례대로 데이터를 주고받아야 합니다.

그래서 RS485는 여러 디바이스의 +신호선과 -신호선을 각각 역어서 네트워크를 만들 수 있으며 네트워크에 물린 디바이스들은 모두 똑같은 신호를 교환할 수 있게 됩니다. 홈네트워크가 어떤 식으로 구성되는지 조금 각이 보이는 것 같네요. 여기서 중요한 포인트는 모든 장비가 동일한 신호를 주고받고 있다는 건데요. 그렇기 때문에 각 장비별 제어를 위해서 인터넷처럼 연결된 장비들은 고유한 ID를 가지게 됩니다. 이 ID를 주고받는 데이터에 꼬리표처럼 달아서 네트워크에 보내면 해당되는 장비만 반응하는 식으로 동작하는 거죠. 

이렇게 내용을 알고 나니 조금씩 궁금증이 해결되네요. IO 모듈을 잘 보면 각 방에서 온 랜케이블들이 특정 단자에만 다 모여들고 있습니다. 그리고 랜케이블의 8개 선들 중 많게는 4개 적개는 2개만 사용이 되고 있는데 바로 통신선 2가닥들이 한 곳에 모여서 네트워크가 완성되는 모습이었네요.

통신 패킷 복제

그럼 이제 가야 할 길이 정해졌습니다. 어떤 통신 패킷에 의해서 집안에 전등이 켜지고 꺼지며 보일러가 동작을 할 텐데 그 패킷을 알아내고 알아낸 패킷을 쏴줄 수 있는 중계 모듈을 만들어서 똑같은 방식으로 네트워크에 물려주기만 하면 되지 않을까요?!

그래서 어떤 패킷이 네트워크를 오고 가는지 궁금해서 무작정 패킷을 읽어보기로 했습니다. 지금부터 기술할 패킷 확인 방법은 통신방법에 대한 이해가 전무한 상태에서 무모하게 시도한 것이기 때문에 따라 하지 마시고 이럴 수도 있구나 정도로 참고만 해 주세요.

개념은 이렇습니다. +, - 두 가닥의 통신이니까 이걸 아두이노의 UART단자에 물려서 신호를 받고 그 신호를 다시 컴퓨터나 핸드폰의 시리얼 모니터로 포워딩해 봤습니다. 포워딩은 현관에 있는 통신반에 접근성이 부족해서 블루투스 모듈로 포워딩해서 받아 봤습니다.

지금 생각해보면 아두이노가 고장 나지 않은 게 참 다행이다 싶네요. 아무튼 통신속도를 몰라서 4800부터 점차 올려가면서 여기저기를 다 쑤셔봤습니다. 그러다가 baudrate 9600에서 뭔가 패킷처럼 보이는 데이터를 확인할 수 있었습니다.

그런데 문제는 이 데이터를 봐도 뭔 뜻인지 모르니까 맞는 건지 틀린 건지도 모르겠고 도저히 진도가 안 나가겠더라고요. 그래서 자료를 좀 더 검색해 봤습니다. 그러다가 주택법에 "지능형 홈네트워크 설비 설치 및 기술기준"이런 걸 찾을 수 있었습니다. 아파트를 지을 때 홈네트워크를 설치하게 되면 이런 구성을 필수로 갖추어야 한다는 내용의 규정인데요. 2021년부터는 의무 설치 설비가 간소화된다고 하는데 지금 제가 살고 있는 아파트는 아래 규정에 따라 지어져 있습니다.

이런 식으로 설치 설비의 구성을 법으로 강제한다면 통신에 대한 규약도 정해놓은 게 있지 않을까 싶어서 찾아봤는데 역시 있었습니다. 물론 강제로 따라야 하는 건 아니라서 회사별로 차이는 있는 것 같습니다.

자료들이 2013년 이후로 변동이 없고 일부 폐지된 것도 있고 해서 결정적인 도움이 되지는 않지만 콘셉트를 이해하는데 도움은 되었습니다. 내용을 보면 홈 네트워크에서 기기들 간의 통신은 RS485 통신을 하는데 다음과 같은 포맷의 패킷을 주고받으며 통신을 한다는 내용입니다.

패킷은 사용되는 Data에 따라 길이는 가변이나 처음 시작은 F7으로 해야 하고 설비를 구분하는 ID, Sub-ID 2바이트와 명령 구분 1바이트 등 포맷을 규정하고 있었습니다. 결론적으로 적어도 제 경우는 이 규격이 전혀 맞지 않았습니다. 유일하게 동일한 부분은 F7이라는 시작 바이트였습니다. 

패킷의 정확한 의미를 파악하는 것도 중요하지만 일단 처음엔 특정 명령에 대한 패킷만 추출해서 복제된 패킷으로 제어가 가능한지가 궁금했습니다. 그래서 거실 등 하나를 켜고 끄는 동작을 하는 와중에 잡아낸 패킷들을 최대한 정리해서 다음과 같은 결과를 얻었습니다.

일단 모든 패킷은 F7으로 시작하고 EE로 끝나는 것 같았고 마지막에서 두 번째 바이트는 XOR Checksum이었습니다. 그리고 나머지는 의미를 모르겠지만 반복되는 여러 패킷 중 1번만 나타나는 패킷이 2개 있었는데 이게 거실 등을 켜고 끄는 패킷이 아닐까 생각을 하고 아두이노에서 반대로 이 패킷을 날려봤지만 당연하게도 결과는 실패였습니다.

아두이노의 UART는 TTL 레벨의 신호로 통신을 하기 때문에 RS485로 변환이 필요했고 그러기 위해서는 변환 모듈을 준비해야 했습니다. 그래서 RS485-TTL, RS485-UART 등으로 검색을 하면서 이런 장비들을 알게 되었습니다.

RS485-TTL 변환 모듈도 여러 가지가 있는데 TTL 신호를 5V로만 변환해주는 제품도 있고 자동으로 3.3V도 같이 사용할 수 있는 제품도 있었습니다. 저는 궁극적으로 ESP8266 모듈을 사용해야 하기 때문에 3.3V도 사용 가능한 제품으로 구매했습니다.

그리고 주문한 제품이 오기를 기다리면서 이것저것 검색하던 중 이런 제품이 있는 것도 알게 되었습니다.

RS-485 통신정보를 와이파이를 통해서 TCP로 보내주는 제품입니다. 생긴 것도 깔끔하고 가격도 얼마 하지 않습니다. 아... 첨부터 바로 이런 걸로 했어야 하나 봅니다. ㅡ.,ㅡ 이것도 하나 주문했습니다.

음, 그런데 여기까지 오고 나니 내가 찾고 있던 게 뭔지 알게 되었고 그리고 이미 오래전부터 이 분야는 개척이 되어서 이제는 거의 고속도로 수준으로 잘 다져진 길이 있다는 것도 알게 되었습니다. 아래 두 개의 링크는 제가 하고자 하는 것 중 첫 번째 목표를 완벽하게 해결해주는 설루션을 설명하고 있습니다. 게다가 제가 평소 아주 애정 하는 ESP8266을 활용하는 방법이라서 더할 나위가 없습니다.

 

월패드 연동 ESPHOME RS485 컴포넌트 공유

2020-04-01 업데이트1. 체크섬 2byte 대응 checksum2 옵션 추가 (add sum)2. state_response, sub_device, state_on, ...

cafe.naver.com

 

ESPHome 현대통신 월패드 RS485

대한민국 모임의 시작, 네이버 카페

cafe.naver.com

제가 얼마나 허튼짓을 하고 있는지 알게 되었다는 게 참 부끄럽긴 하지만 더 돌아갈 수 있었는데 이렇게 방법을 찾게 된 것을 다행이라고 생각합니다. 제 뻘짓의 기록은 여기까지 하고 다음 포스팅부터 본격적으로 홈네트워크와 HA를 연동한 후기 시작하도록 하겠습니다.

 

끝!

반응형

댓글