追記: さらに進化したファームウェアがGitHub – pvvx/ATC_MiThermometer: Custom firmware for the Xiaomi Thermometers and Telink Flasher via USB to Serial converter。
“Bluetooth – Tasmota” の説明がわかりやすい。 “XiaomiのBLEスマート温湿度計LYWSD03MMCをESPHomeからアクセスするのは大変” で自分は誤解していたかも。
BLE通信のbindkeyが取得できなくてそれっきりになったのだが, “GitHub – atc1441/ATC_MiThermometer: Custom firmware for the Xiaomi Thermometer LYWSD03MMC and Telink Flasher via USB to Serial converter” で公開しているカスタムファームウェアでその必要がなくなる,しかもそのファームウェアはOTAでインストールできる。 “4$ Xiaomi thermometer custom firmware LYWSD03MMC BLE TLSR8251 – YouTube” が説明ビデオ。
ESPHomeとの連携については “…atc1441/ATC_MiThermometer…” に節が立てられているのと,そこでも参照されている “Support LYWSD03MMC new mijia temp/humidity sensor · Issue #552 · esphome/feature-requests · GitHub” でも作者を含めた人たちの議論を見ることができる。
bindkeyはペアリングごとに発行されるので,ペアリングが変更されるとそれまでのbindkeyは無効になる。LYWSD03MMCをESPHomeからアクセスしたければ以下の3つの方法がある。
- Mi HomeアプリでLYWSD03MMCをアクセスするスマホとのペアリングは解除せずにパケットスニッフィングでbindkeyを探る ー ESPHomeのウェブサイトに記載されている方法であり, “XiaomiのBLEスマート温湿度計LYWSD03MMCをESPHomeからアクセスするのは大変” で自分も試みて失敗した方法。
- “Telink Flasher” にある,ブラウザを走らせている端末(BLE通信が可能なPCを含む)とペアリングさせ,bindkeyを取得する。
- 同じ作者によるカスタムファームウェアをインストールする。データがそもそも暗号化されなくなり,bindkeyを取得する必要がなくなる。
最初の方法でのみ,Mi HomeアプリでLYWSD03MMCにアクセスしていたスマホで,以前通りにLYWSD03MMCにアクセスし続けることができる。後の2つの方法ではそれはできなくなる。
Mi HomeアプリはLYWSD03MMCのセンサーデータを,現在値のみならず,過去の履歴もグラフで示してくれる(右画像)。地味に便利なのでとりあえずこの状態を維持することにする。考えていた用途はお年寄りの体調管理だったわけだが,夏が過ぎた今暑さを心配する必要はしばらくないので。
Mi Homeアプリを使い続けられるよう最初の方法を採用しても,そのアプリを走らせる端末を変えるごとに改めてbindkeyを得なくてはならないので面倒は面倒。LYWSD03MMCに限らず,各種センサーのデータの履歴を包括的に記録し,さらにそれを必要があればグラフ化する手段を確立してから,カスタムファームウェアに移行するのがいいかもしれない。
「XiaomiのBLEスマート温湿度計LYWSD03MMCにカスタムファームウェア」への4件のフィードバック