우리집 IoT를 인프라부터 소개합니다

우리집 IoT를 인프라부터 소개합니다

근 3년간 집에서 갈고닦아 쓰고 있는 IoT 환경을 소개한다.

시스템: Intel NUC + Manjaro Linux

2019년부터 ARM 기반의 Raspberrypi를 쓰다가, 2022년 초부터 AMD64 기반의 Intel NUC(NUC7CJYHN)를 쓰고 있다. Raspberrypi OS, Ubuntu도 오래 썼지만, Manjaro Linux에 만족스럽게 정착 중이다.

Nairobi 모습 물론 서버는 와이프가 보지 못하게 소파 뒤에 숨겨놓고 쓴다.

IoT 플랫폼: Home Assistant

인기 많은 Smartthings를 3개월 정도 쓰다가, 문자 기반 인터페이스(CUI)가 성격에 맞았기에 Home Assistant로 전향했다.

우리집 IoT 시스템의 작동 코드를 GitHub에서 관리하고 있다. 그간 오랜 누더기질 덕분에 2022.8월초 현재 코드줄 수는 7천줄에 이른다. 배보다 배꼽이 더…

Home Assistant Integration 모습 집에서 Home Assistant로 사용 중인 확장

통신방식: Zigbee 80% + Others 20%

사물이 허브와 통신하는 방식은 ZigBee, Z-Wave, Wi-Fi, Bluetooth, RF 등이 있다. 상황에 따라 통신 방식을 선택해야 한다. IoT 하는 여는 사람들처럼 저전력이고 네트워크 부하가 적은 ZigBee를 좋아하지만, 마음에 드는 사물의 통신방식을 받아들일 수 밖에 없다.

내가 쓰는 사물 대부분이 ZigBee로 허브와 통신한다. Zigbee 네트워크를 구성하기 위한 게이트웨이로 CC2538을 연결했다. CC2531, CC2538, Conbee 등 다른 선택지도 많고 성능 차이가 있다.

CC2538 연결 모습 CC2538을 Intel NUC에 연결한 모습

Wi-Fi 기반 사물은 Awair 공기질 측정기나 Xiaomi 로봇청소기 같이 API를 제공하고 있는 경우만 제한적으로 쓰고 있다. 마찬가지로 Bluetooth 기반 사물로 SwitchBot을 써서 커피머신에 붙여쓰고 있다. SwitchBot은 Home Assistant가 빌트인으로 지원하고 있다.

RS485 방식으로 통신하는 월패드는 월패드 뒷면을 따서 패킷을 훔쳐쓰고 있다. RS485 패킷과 TCP/IP 소켓 통신간 어댑터인 Elfin EW11을 이용하고 있다. 패킷을 감청하면, 예컨대 월패드로 난방을 켰을 때 어떤 신호가 오가는지를 캡춰할 수 있게 된다. 그래서 내가 원할 때 같은 신호를 RS485에 흘려주면 난방을 킬 수 있다. 직접 해석한 패킷을 Home Assistant에서 조작할 수 있도록 별도 프로그램을 작성해서 쓰고 있다.

하고있는 것

IoT가 뭔지 모르는 와이프도 별도로 사용법을 알 필요 없이 작동하는 자동화를 지향하고 있다. Github 저장소에서 내가 쓰고 있는 자동화를 확인할 수 있다. 약 70개에 가까운 자동화 코드를 쓰고 있는데, 시간이 될 때 소개해보려 한다.