샤오미 BLE 온습도 센서 연동하기 (LYWSD03MMC) - HomeAssistant
안녕하세요. 최근에 선물용으로 3개를 구매하게 되었습니다.
LYWSD03MMC 기기인데요. 하기와 같이 생겼습니다.
이런 기기인데 생각보다 작고 귀엽네요. 개봉기 부터 연동까지 시작해보겠습니다.
참고로 BLE 게이트웨이를 통하는게 아닌 장비의 BT 에 연동하는 것입니다.
1. 개봉기
건전지가 개봉전까지 사용하지 못하도록 비닐 처리가 되어 있으며, 내부를 열어보니, 하기에 CR2302 배터리를 사용하고 있습니다. 그리고 어디 부착할 수 있도록 양면 테이프까지 동봉되어 있네요.
이걸 열때, 치킨 시켜먹다 받은 하기 카드를 이용했는데요.
(누군지 몰라서 정말 죄송합니다.) 카드와 사이즈를 비교하면 하기와 같습니다.
매우 작고 귀엽네요.
하기 이모티콘은 온습도 값에 따라서 삐져있거나 웃거나 그럽니다.
월패드 위에 직비 온도센서와 같이 두어 보았습니다.
기분좋을 때에는 하기와 같이 웃고 있네요.
2. 페어링 준비
페어링의 경우 하기의 과정이 필요합니다. NUC J5005 기준으로 설명합니다.
1. 블루투스 드라이버 설치
https://blog.djjproject.com/725
2. HACS 설치
https://blog.djjproject.com/737 - 5번 섹션
3. BLE Monitor 설치
https://github.com/custom-components/ble_monitor#encryption_key
상기 깃 레파지토리를 설치하기 위해서 2번의 HACS를 설치하였습니다.
하기처럼 설치합니다.
3. 페어링 실전
이 장비의 경우, 페어링 시 키가 필요합니다.
웹 블루투스 기능을 통해 키를 쉽게 알아챌 수 있습니다.
Chrome Remote Desktop 설치를 통해 크롬 리모트로 접속하여 간단하게 해결이 가능하였습니다.
관련 설치기 - https://blog.djjproject.com/621
일단은 크롬에서 Web 실험 기능을 켜야 웹 브라우저에서 블루투스를 사용할 수 있습니다.
그리고 하기 사이트에 접속합니다.
https://atc1441.github.io/Temp_universal_mi_activate.html
하기처럼 Connect 를 누르면 해당 블루투스 장비가 잡힙니다.
로그로 판단하면 하기와 같습니다. 웹 페이지를 밑으로 쭉 내리면 로그 확인이 가능합니다.
컨넥트가 되었는지 확인하고 Do Activation 을 누릅니다.
마찬가지로 Activation 성공 여부도 로그에 출력됩니다.
Do Activation 을 누르면 하기에 Mi Bind Key 가 나옵니다. 이 키가 설정 HA 설정 작성할 때 필요합니다.
자 그러면 설정을 작성해보겠습니다. 일단은 BT 칩 자체의 주소를 알아야합니다.
상기 과정을 한번 거쳤으면 bluetoothctl 을 사용할 때, 칩 주소와 / 장치 주소를 알 수 있습니다.
root@debian:/opt/hass/config# bluetoothctl Agent registered [CHG] Controller 50:76:AF:00:00:00 Pairable: yes # 일단은 상기에서 컨트롤러 주소가 칩 주소입니다. (50:76:AF:00:00:00) # 다음으로 현재 연결된 칩이 LYWSD03MMC 임으로 (상기에서 작업을 했기 때문에) # info 를 연결하여 연결된 장치 목록을 봅니다. [LYWSD03MMC]# info Device A4:C1:38:00:00:00 (public) Name: LYWSD03MMC Alias: LYWSD03MMC Paired: no Trusted: yes Blocked: no Connected: yes LegacyPairing: no UUID: Vendor specific (00000100-0065-6c62-2e74-6f696d2e696d) UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb) UUID: Battery Service (0000180f-0000-1000-8000-00805f9b34fb) UUID: Xiaomi Inc. (0000fe95-0000-1000-8000-00805f9b34fb) UUID: Vendor specific (00010203-0405-0607-0809-0a0b0c0d1912) UUID: Vendor specific (ebe0ccb0-7a0a-4b0c-8a1a-6ff2997da3a6) ServiceData Key: 0000fe95-0000-1000-8000-00805f9b34fb ServiceData Value: 30 58 5b 05 01 71 0e 4e 38 c1 a4 28 01 00 0X[..q.N8..(.. # 그러면 BT 온도 센서의 주소는 A4:C1:38:00:00:00 임을 알 수 있습니다. # exit 으로 빠져나옵니다. [LYWSD03MMC]# exit root@debian:/opt/hass/config# |
상기 2가지 정보를 메모하고 하기와 같이 configuration.yaml 에 작성합니다.
ble_monitor: bt_interface: '50:76:AF:00:00:00' # <-- BT 칩 주소 입력 discovery: True active_scan: False report_unknown: False decimals: 1 period: 60 log_spikes: False use_median: False restore_state: False devices: # sensor - mac: 'A4:C1:38:00:00:00' # <-- BT 센서 주소 입력 name: 'Xiaomi BT Temp/Humi Sensor' # <-- 이름 입력 encryption_key: '824900000000000000000000000000' # <-- 페어링 키 입력 temperature_unit: C decimals: 2 use_median: False restore_state: default |
자 그럼 이렇게 입력하고 HA 를 재시작합니다.
root@debian:/opt/hass/config# docker restart hass hass |
4. 페어링 됨을 확인하기
이 BT 온도 센서는 커펌을 하기 전에는 리포팅 주기가 10분입니다. 따라서 바로 HA 장치목록에 올라오지 않을 수 있습니다. 조금 기다리면 하기와 같이 통합구성요소에 올라옵니다.
이름의 경우, 재정의를 통해서 바꿔주시면 됩니다.
정확하게 10분마다 1번씩만 리포팅됩니다.
5. 마치며
선물용으로 3개를 구매했는데 실은 제가 2개 쓰고, 1개는 친구 주고
3개를 추가 구매해서 다른 친구들 나누어 주어야겠습니다. 굉장히 작고 귀엽네요.
그리고 HA 연동은 그렇게 어렵지 않죠?
다 하기 개발자 덕분입니다.
https://github.com/custom-components/ble_monitor
그리고 아무래도 HA 가 돌아가는 서버가 너무 멀리 있다보니, ESP32 BLE 게이트웨이를 고민안해볼 수가 없네요. 센서류에서 BT를 이용하고 MI Flora 같은 경우 BLE 로 통신하는데 이 경우, 아무래도 게이트웨이가 따로 있어야 할 것 같습니다.
차후에 ESP32 로 BLE 게이트웨이 제작하는 부분을 작성해볼려고 합니다.
이라이트 BT 무드등도 되도록 수정을 해봐야겠습니다.
여기까지 마치겠습니다.
감사합니다.