신형
샤오미 블루투스 온도계를 구매했습니다.
구형 블루투스 온도계는 암호화 없이 온습도 값을 브로드캐스트 하기 때문에 mac 주소만 알면 쉽게 HA에 연동이 가능하지만 신형은 미홈앱에 등록할때 발급되는 bindkey를 알아야만 합니다.
1. esphome 매뉴얼에 나온 대로 안드로이드 폰에 Remote PCAP앱을 설치하고 PC에 Wireshark를 설치해서 패킷을 캡쳐하는 방법을 시도했습니다. (https://next.esphome.io/components/sensor/xiaomi_ble.html#obtaining-the-bindkey )
PCAP앱을 실행한 상태에서는 미홈앱에 등록하는 과정에서 오류가 발생합니다.
2. https://github.com/custom-components/sensor.mitemp_bt/blob/master/faq.md#my-sensors-ble-advertisements-are-encrypted-how-can-i-get-the-key
https://github.com/custom-components/sensor.mitemp_bt/issues/7#issuecomment-595874419
미홈앱을 수정한 apk를 설치하는 방법을 시도했습니다.
/your_interlal_storage/vevs/logs/ 폴더를 만들어 놓고 등록을 하면 pairings.txt 파일이 생성된다고 하는데 아무리 해봐도 안생깁니다.
3. https://ru.kapiba.ru/mihome/files/old 에서 최신버전이 아닌 해당 comment가 올라왔을때쯤의 미홈 mod 버전을 받아서 해봤는데 실패했고 다시 Remote PCAP과 Wireshark로 패킷 캡쳐를 시도해봤는데 이번에는 성공했습니다.
아마도 몇달전 미홈앱을 사용해야 되는것 같기도 하고 뭔가 잘못한게 있는지도 모르겠습니다.
HTTP패킷중에 아래 내용을 찾으면 됩니다.
packet: POST /app/device/bltbind "data" = "{"did":"blt.3.129q4nasgeg00","token":"20c665a7ff82a5bfb5eefc36","props":[{"type":"prop","key":"bind_key","value":"cfc7cc892f4e32f7a733086cf3443cb0"}, {"type":"prop","key":"smac","value":"A4:C1:38:8C:34:B7"}]}"
라즈베리파이의 내장 블루투스나 블루투스 동글등을 사용할수도 있는것 같은데, 저는 이미 구형 샤오미 온도계를 연결하기위해 ESP32에 esphome을 설치해서 사용중이기 때문에 여기에 추가했습니다.
구형 온도계는 온습도가 올라오는 주기가 굉장히 짧았는데 신형은 10분에 한번 정도로 훨씬 길어졌네요. 아마도 배터리 용량과 관련이 있는것 같습니다.