재실센서, 그런데 ESP32인. (1)
HomeAssistant mmWave 재실 센서 구성기 01
구입 계기
지난 2024년 4월 Home Assistant 서버에 물린 Zigbee 노드가 30개가 넘어감에 따라
기존에 쓰던 CC2531 Zigbee 동글을 지원 종료하고 Home Assistant가 공식 지원한다고 하는 Home Assistant Skyconnect(현재는 Home Assistant Connect ZBT-1이라는 이름으로 팔리나 보다.)로 새로 구성하였다.
구성에 관한 내용은 별도 서술했으니 해당 포스트 참조.
그때 해당 동글을 사는 사이트에서 mmWave 재실 센서를 같이 팔았는데,
상시 전원에 Zigbee가 아닌 WiFi로 연결되는 재실센서라서 구매해보았다.
원래는 WiFi 연결을 사용하는 장비는 공유기에 크든 작든 부하를 주기 때문에 별로 선호하지 않는다.
그래서 보통은 Zigbee 연결로 매개되는 장비를 사용하고, 이를 통해 공유기의 범위가 닿지 않는 곳에서도 조명이나 스위치를 사용할 수 있도록 구성한다.
하지만 지금 이 센서는 다른 저렴이 센서에 비해 단정(?)해 보이고 성능도 좋아보이는 만큼 내 방에다 고이 모셔두어 활용할 생각으로 구매했다.
방치
그러나 해당 센서는 1년이 지나도록 활성화하지 못했다.
일단 내 방에서는 재실 센서의 필요성이 매우 떨어진다.
- 내 방은 모종의 이유로 아무나 들어올 수 없는 방인데다가,
- 내가 집에 있지 않으면 방문 자체가 열리지 않으므로, 내가 집에 없을 때 내 방에 대해 관제할 이유가 없고,
- 무엇보다 조명이나 Thermostat과 관련된 장비는 재실 여부보다는 온도나 시간을 기준으로 자동화를 짜는 것이 더 이상적이기 때문이다.
필요성이 떨어지니 우선순위에서 점점 멀어지고, 그러다가 까먹게 되니
센서가 전원에 물린 상태로 활성화가 되지 못한 사실도 망각한 채로 시간을 보내버렸다.
최근 Home Assistant의 Automation 영역과 불용처리된 Entity들을 정리하다가
연결되었지만 안 쓰는 센서가 있다는 걸 알아차렸고, 그제서야 이 센서를 활성화할 궁리를 하기 시작했다.
고난의 시작
우선 이 센서의 이름은 mmWave Human Detection Kit이다.
Seeed Studio의 XIAO ESP32-C3를 기반으로 만들어졌다.
WiFi, Bluetooth LE로 연결되며, mmWave로 정밀한 움직임 정보를 읽어낸다.
사이트에 매뉴얼이 있어 이를 따라 활성화해 보았다.
제일 먼저 기기에 전원을 인가하면 기기의 AP가 브로드캐스팅된다.
이 AP에 연결한 다음, 브라우저에서 192.168.4.1을 쳐 센서의 웹UI에 접속하여 센서가 연결할 WiFi 정보를 입력하는 것이다.
이 센서가 지원하는 WiFi 대역은 2.4GHz 이므로 주의해서 설정하도록 한다.
하라는 대로 했다면 Home Assistant에서 이 센서를 자동으로 발견할 것이다.
SeeedStudio mmWave Kit XXXXXX 의 이름으로 발견되며, 이를 구성하면 ESPHome의 장비로 잡힌다.
사이트 매뉴얼에서는 이 센서의 Entity를 Dashboard에 추가하면 Kit가 작동하는 걸 볼 수 있다고 했지만, 이 대목에서 문제가 생겼다.
센서의 모든 값이 Unknown으로 반환되는 것이었다.
문제찾기
사실 Home Assistant에서는 ESPHome의 장비로 잡히긴 했는데, ESPHome에서 이 장비를 인식하지 못해서 생기는 문제라는 글을 읽고 바로잡아보기로 했다.
그런데 이상하게도 ESPHome Addon이 보이지 않고 ESPHome Builder만 보이는 것이다.
알고 보니 관심을 껐던 1년 동안 ESPHome이 ESPHome Builder와 병합(24년 5월 경)되었다고 한다.
그래서 ESPHome의 WebUI는 앞으로 ESPHome Builder의 WebUI에서 접근할 수 있게 됐다.
관련해서 Gemini나 ChatGPT에게 물어보는 사람들은 이 점을 주지시켜주면 올바른 설명을 제공할 것이니 참고하면 좋을 듯 하다.
그렇게 아무것도 안 잡혀있던 WebUI 상에서 잡히긴 했지만 여전히 문제는 해결되지 않았다.
이리저리 찾아보아도 이 센서를 쓰는 사람이 많이 없는 문제도 있고,
이 센서를 활용할 줄 아는 사람이면 설명을 매우 불친절하게 적는 관계로(…) 이 대목에서 다시 Gemini의 도움을 받기로 했다.
Gemini는 기존 센서의 YAML에 적힌 내용에 센서의 Entity를 명시하지 않아 이런 문제가 생길 수 있다고 싶었다.
해서 해당 센서의 Github 자료에 들어가 YAML 파일의 내용을 보강하였다.