Freeing a Xiaomi humidifier from the cloud

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 と直接連携できるようになり、メーカーのクラウドや専用アプリに頼らずに運用できます。

同じ日のほかのニュース

一覧に戻る →

2025/12/13 5:57

GNU Unifont

2025/12/13 7:02

Show HN: Tiny VM sandbox in C with apps in Rust, C and Zig

## Japanese Translation: uvm32 は、単一の C ファイルで書かれたミニマリストで依存関係を持たない仮想マシンサンドボックスです。 STM32L0 のような非常に小型のマイクロコントローラ上で動作し、4 KB 未満のフラッシュと 1 KB の RAM を使用します。静的割り当てのみで非同期設計となっています。 この VM は RISC‑V のサブセットを実装しており、軽量な管理インタフェースを公開しています。「if‑this‑then‑that」ロジックのために Lua、Duktape、MicroPython などの軽量スクリプトエンジンを置き換え、信頼できないコンポーネントや不安定な部品をサンドボックス化し、ターゲットコンパイラなしでモダン言語の「一度書けばどこでも実行できる」スクリプトを書けるようにすることが目的です。 主な特徴: - バイトコードアプリは C、Zig、Rust、またはアセンブリで記述可能。 - 非ブロッキングでシンプルな実行モデル。安全かつ最小限の型付けを備えた FFI を使用し、ホスト IO(stdio/ネットワーク)は想定していません。 - デザインは高速よりも安全性を優先しています。 - すべてのソースコードは `uvm32/` ディレクトリにあります。最小限のホスト例は `host‑mini` にあり、より高度なホストは `host/`、`host-parallel`、`host-arduino` にあります。 サンプルアプリケーションは VM の機能を示しています(C: helloworld, heap, conio, lissajous, maze, fib, sketch; Zig: zig‑mandel, zigtris, zigalloc, zigdoom; Rust: rust‑hello; アセンブリ: hello‑asm)。 ビルドとテスト用の Dockerfile が提供されており、`make dockerbuild`、`make dockershell` で構築・起動し、その後 `make` を実行してサンプルをコンパイル・実行します。ドキュメントはヘッダファイル `uvm32/uvm32.h` と `doc/README.md` にあります。本プロジェクトは MIT ライセンスで公開されています。

2025/12/13 5:15

Rats Play DOOM

## Japanese Translation: > **概要:** > 著者らは、ラットがDOOMをプレイできる完全にオープンソースの仮想現実装置をリリースしました。ゼロから構築されたこのシステムには、ハードウェア設計・ファームウェア・ソフトウェアがGitHubに掲載されており、他研究室でも簡単に再現または改良できます。バージョン 1(v1)はニューヨークのヴィクトール・トー氏によって開発され、ラットにDOOMコリドーを走行させるよう訓練しました。この実装はViceとPC Gamerで紹介されました。 > > 改良版(v2)はよりモジュラー化され、180°×80°の視野を持つ折りたたみ可能なAMOLEDスクリーン、新しいボールドライバー、強化された給餌器、ゲームイベントに同期した正確な10 µLの砂糖水投与が可能な改良リワード回路を備えています。追加センサーとランニングマシンのボール周囲に設置された光学フロー運動捕捉システムでトラッキング精度が向上しています。 > > ソフトウェアはPythonベースのモジュラースタック(arena_scenario.py)で、PC上で実行され、Raspberry PiとTCP経由で通信します。Piはリアルタイムセンサー読み取り・ボール駆動・リワード制御を担当します。すべてのコンポーネントはGitHubに文書化されており、3Dプリント可能なパーツや回路図も公開されています。 > > チーム(ヴィクトール・トー=ゲーマーラットコーチ、サンドル・マクラ=電気技師、アコス・ブラシュェク=ドキュメントリード)は、ラットが約2週間で慣れることを示しましたが、完全な訓練はまだ完了していません。 > > 現在の制限として、自動キャリブレーションスイートが無いため、ユーザーはセンサーの整列とリワードタイミングを手動で検証する必要があります。 > > 今後の課題は完全な訓練プロトコルの完成、キャリブレーションツールの改良、および他の行動タスクや種へ装置を拡張することです。低コストで完全にオープンなプラットフォームを提供することで、このプロジェクトは世界中の神経科学研究室の参入障壁を下げ、動物VR実験に依存する研究のスピードアップに寄与できる可能性があります。