
2025/12/12 15:17
Freeing a Xiaomi humidifier from the cloud
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
この記事では、著者が Xiaomi Mi Smart Antibacterial Humidifier(内部モデル
deerma.humidifier.jsq、パッケージコード ZNJSQ01DEM)の標準ファームウェアをカスタム ESPHome コードに置き換え、Home Assistant を通じてローカルで制御できるようにした手順を説明しています。これにより Xiaomi のクラウドサービスが不要になります。既存のスマート加湿器は通常、専用アプリやクラウド API に依存しますが、著者は外部センサーを追加する代わりにファームウェア置き換えを選択しました。
デバイスには ESP‑WROOM‑02 モジュールが搭載されており、ESPHome でフラッシュ可能です。装置の分解は、ゴム製足リング下の 4 本の Philips 六角ネジを外し、Wi‑Fi モジュールを取り外してピンにワイヤーを接続(オレンジ=GND、グレー=VCC 3.3 V、イエロー=GPIO0、ブラウン=RX、レッド=TX)しただけです。
Sören Beye(Hypfer)が書いた元のファームウェアは Xiaomi がプロトコルを変更した後に動作しなくなりました。著者はそれを ESPHome の「外部コンポーネント」として再実装し、コードを
/stv0g/esphome-config/components/xiaomi_deerma_humidifier に公開しました。元のイメージをバックアップするには次を実行します
esptool.py --chip esp8266 --baud 230400 --port /dev/tty.usbserial-31310 read_flash 0x0 0x200000 xiaomi-deerma-humidfier-original-2mb.bin
新しいファームウェアをフラッシュするには次を実行します
esptool.py --chip esp8266 --baud 230400 --port /dev/tty.usbserial-31310 write_flash 0x0 deerma.bin
フラッシュ後は、インターネット接続不要で Home Assistant から直接加湿器を制御できるようになり、完全にオープンソースかつクラウドフリーの解決策が提供されます。この手法は、同様の IoT ガジェットに対しても再現可能な方法として示されています。
本文
最近、新しいアパートに引っ越した際に、家を少しスマート化するチャンスがあったので、Home Assistant を使って自宅のホームオートメーションプラットフォームを構築しました。
しかし残念ながら、特に加湿器分野では Home Assistant に直接対応している製品がまだ極めて少ないです。多くのデバイスはメーカー独自のアプリやクラウドサービスに依存しており、そのためにスマートフォン OS が更新されるとアプリが使えなくなる、あるいはメーカー側のクラウドが停止すると製品そのものが機能しなくなるという「計画的陳腐化」の一種になっています。
このような依存関係を避けたくて、Home Assistant と直接連携できるスマート加湿器を探すことにしました。
検討した手段は次の2つです。
- 既製の加湿器にセンサーやアクチュエーターを追加してスマート化する。
- スマート加湿器のファームウェアを書き換えて自分で開発したコードを入れる。
どちらも実現可能ですが、後者は自前でファームウェアを書く必要があるため手間が少なく済みましたので、こちらに決めました。
適切なデバイスの選定
ESP8266 または ESP32 を搭載した機種を探し、ESPHome で新しいファームウェアを書き込むことを前提としました。
ESPHome は、シンプルながら強力な設定ファイルで ESP8266/ESP32 を制御でき、ホームオートメーションシステムに統合するためのフレームワークです。
Xiaomi Mi Smart Antibacterial Humidifier
Sören Beye /Hypfer さんのおかげで、この Xiaomi の「Mi Smart Antibacterial Humidifier」にすぐに注目しました。彼は独自ファームウェアを作成していましたが、Xiaomi が内部通信プロトコルを変更したため既存のバージョン(/Hypfer/esp8266‑deerma‑humidifier)は現在の機種と互換性がなくなっています。そこで、ESPHome の「外部コンポーネント」としてファームウェアを書き直すことにしました。
以下のリポジトリにそのコードがあります:/stv0g/esphome-config/components/xiaomi_deerma_humidifier。
自分で加湿器をハックする手順
1. 正しいモデルを確認
- 対応デバイスの内部 Mi モデル ID:
deerma.humidifier.jsq - パッケージに記載されているモデル名: ZNJSQ01DEM
2. 分解
ゴム製足リングの下に隠れたフィリップス頭のネジが4個あります。これを外し、ネジがあった場所だけゴムを剥がしておくと後で再装着できます。
内部にはケース背面に小型 Wi‑Fi モジュールが取り付けられています。このモジュールを抜き取り、以下の配線図通りにリボンケーブルをはんだ付けしてください:
| 配線 | 色 | 機能 |
|---|---|---|
| オレンジ | GND | グランド |
| 灰色 | VCC (3.3 V) | 電源 |
| 黄色 | GPIO0 | フラッシュモード |
| 茶色 | RX | 受信 |
| 赤 | TX | 送信 |
3. ファームウェアを書き込む
バックアップを取る
新しいファームウェアを書き込む前に、Xiaomi のオリジナルファームウェアを保存しておきます。
esptool.py --chip esp8266 --baud 230400 --port /dev/tty.usbserial-31310 \ read_flash 0x0 0x200000 xiaomi-deerma-humidfier-original-2mb.bin
新ファームウェアを書き込む
バックアップが取れたら、次のコマンドで新しい ESPHome ベースのファームウェアをフラッシュします。
esptool.py --chip esp8266 --baud 230400 --port /dev/tty.usbserial-31310 \ write_flash 0x0 deerma.bin
完了
ESPHome のファームウェアが書き込まれたことで、加湿器は Home Assistant と直接連携できるようになり、メーカーのクラウドや専用アプリに頼らずに運用できます。