- 既存のDoorkingインターホンシステムのセルラーサービス停止によりゲート開閉機能が止まった状況で、リモート制御を復旧するためのハードウェアハックを実施
- ESP32 Wi-Fiリレーボードを使ってソレノイド制御線を直接制御し、Apple Homeと連携するMatterプロトコルクライアントとして構成
- Rustベースのファームウェアで、ゲートを一定時間だけ開けて自動で再施錠するよう設計し、セキュリティを維持
- Wi-FiとBluetoothのメモリ衝突問題を解決するため、2つのスタックを排他的に動作させ、プロビジョニング後はWi-Fiのみを使用するよう最適化
- 結果として、既存システムを損なうことなくスマートフォンでゲートを制御できる密かなIoT拡張事例を完成させた
集合住宅のインターホンをApple Homeと連携させた秘密の箱プロジェクト
- 友人の集合住宅インターホンがDoorking 1834-080システムで、管理不備によりセルラーサービスが停止し、ゲート開閉機能が動作しなくなっていたことから始まったプロジェクト
- 訪問者が電話で入場を依頼できなくなったため、ESP32ベースのハードウェアハックによってApple Homeからリモートでゲートを開けられる方法を実装
初期調査と最初の試み
- 現地調査の結果、インターホン上部のボックスに鍵がかかっておらず内部構造を確認でき、Wi-Fi/セルラールーターがデフォルトパスワードのまま設定されていた
- ルーターの設定ファイルをダウンロードしてrootパスワードを再設定できる脆弱性を発見したが、システムのカスタムシリアルプロトコルを解析する複雑さから断念
- 2回目の試みとして電話線(
PH LINE)端子を使ってDTMF信号を模倣しようとしたが、制御ボックスが受信待機状態でないときは命令を無視する可能性が高く、実験を中止
第3のアプローチ: 回路の途中を制御
- 音声ボックスとメインコントローラーの間にある配線用中継ボックス(junction box)を開けると、ゲートのロック装置を制御するソレノイド制御線が通っていた
- ソレノイドは通電すると開き、遮断すると施錠される単純な構造だったため、直接電源を供給してゲートを開ける方式を構想
- 音声ボックスから12V DC補助電源を引き出してESP32 Wi-Fiリレーボードを駆動し、これをApple Homeと連携させる計画を立案
- ソレノイド制御線を分岐してESP32リレーに接続
- Rustでファームウェアを作成し、Matterプロトコルクライアントとして動作
- 既存システムの正常動作を維持しつつ並列で制御できるよう回路を設計
ソフトウェア構成
- RustベースのMatterライブラリを使ってESP32をApple Homeに接続
- ネットワーク接続後に命令を受信すると、一定時間(デフォルト10秒)ゲートを開けて自動で再施錠
- ゲートが長時間開いたままになる状態を防ぎ、セキュリティを維持
- コード公開: GitHub - ImTheSquid/doorbell2
メモリ問題と解決
- ESP32のRAM不足問題により、Wi-FiとBluetoothスタックを同時に実行するとメモリ破損でリセットが発生
- 使用しているMatter実装がBluedroidスタックを使用しており、問題を悪化させていた
- 解決策としてWi-FiとBluetoothを相互排他的に有効化し、設定ファイル(
sdkconfig.defaults)にメモリ節約オプションを適用
- プロビジョニング時にのみBluetoothを一時的に有効化し、その後はWi-Fiのみを使用するよう変更して安定化
- Apple Homeではゲートロック装置が正常に表示され、メーカー情報も任意に設定可能
設置と電源問題の解決
- ESP32ボードは配線ボックス内部にぴったり収まり、外からは見えない
- 電源線を音声ボックスから引いて接続したが動作せず、暫定的に20Vコードレスドリル用バッテリーを使ってテストに成功
- その後マニュアルを確認した結果、音声ボックスの12V端子が入力用であることを発見
- 18V AC入力を12V DCに変換する整流レギュレーターを追加して電源問題を解決
- すべての部品を配線ボックス内部に収めて完成
結果と意義
- Apple Homeを通じてスマートフォンでゲートをリモート制御できるようになり、訪問者もアプリでゲートと集合住宅のドアを同時に開けられる
- 設置物はESP32ボードと小型電源装置だけで構成された密かな構造で、既存の入退室システムに干渉しない
- 単純な回路ハックとオープン標準ベースの統合により、既存ハードウェアの機能を拡張した実用的なIoT事例となった
- このプロジェクトを通じて回路ハックの経験を積み、類似環境でも容易に再現可能
1件のコメント
Hacker Newsのコメント
法的・倫理的に非常にグレーな行為だと指摘している
個人のマンション内部のボックスに接続するのは理解できるが、共用エントランスの制御装置に接続して友人にアクセス権を配るのは問題だと見る
何度も発覚を避けようとする試みをしていたことから見ても、本人もまずいことだと分かっているようだ
こうした行為はデジタルな攻撃対象領域を広げ、犯罪の機会を与える可能性もある
そのため一部でも責任を負う可能性があり、刑事・民事上の責任が生じうる
ただし、自分の所有物であり関係者全員が同意している状況なら、ソレノイド線をつないでシステムを改造することは妥当かもしれない
OPのように外部に露出したソレノイド線に給電する程度は大した問題ではないと見る
自分も似たようなApple HomeKit連携をシンプルに実装した
インターホンが自宅専用の有線電話につながっており、その電話は自動的に留守番電話へ転送され、そのメッセージがドアを開けるトーンを再生する
電源はスマートコンセントで制御しており、オンならすぐ入れて、オフなら遮断される
インターホンが自分のVoIP番号に電話すると、訪問者に暗証コードの入力を求め、正しければDTMF 9を送ってドアを開ける
メール・SMS通知も届き、複数のコードを発行して誰が入ったかも分かる
なので、音声メッセージ再生後に自動でコンセントをオフにするよう設定すると思う
自分も同じ問題を経験し、1年以上探した末にルーマニアでリバースエンジニアリング基板を作って売っている人を見つけた
30ユーロ未満で導入でき、雑だが魅力的な方法だ
リンク
24Vラインから電源を取ると「電気の窃盗」と見なされる可能性があり、断念した
最終的にNuki Openerへ置き換えたが、はるかに安定していて家族全員が使いやすい
実験用の雑な自作品は楽しいが、実運用には向かない
参考までに、コードのリポジトリはGitHubリンクにある
最近のインターホンのエコシステムがあまりに遅れていることに驚いた
ただ「夕食の準備ができたよ」と知らせる程度の半分スマートな製品がなぜないのか不思議だ
安い無名の無線製品では部屋間通信すらまともにできず、結局Asteriskと低価格のVoIP電話を使うのが唯一の解決策になる
音声を送受信したり、好きなタイミングで再生したりできる
Sonos, Wiim, Acrylicなどさまざまな組み合わせを試したが、結局Sonosの中程度の品質で満足して使っている
ヨーロッパの一部のインターホンにはDoormanというソリューションがある
KochプロトコルをリバースエンジニアリングしてESP32 + Home Assistantで実装しており、パーティーモード機能がイベント時に便利だった
Doormanサイト / Ring-to-openガイド
自分はもっとシンプルにTwilio番号を建物管理者に渡し、アプリでコードごとの応答を設定した
有効なコードならDTMF「9」でドアを開け、「1」なら自分の携帯電話へ転送する
別荘の暖房制御の問題で似たような不便を経験している
電池式の壁掛けサーモスタットが無線信号で床暖房を制御しているが、遠隔操作するには2,000ドル以上する新しい機器を買わなければならない
既存の信号を真似するだけで済むはずなのに、技術が不必要にクローズドで歯がゆい
いっそ遠隔操作ドライバーでつまみを回すほうがましだと思っている
Home Assistantで信号を録音・再生して、天井扇風機や赤外線機器の制御に使った経験がある
ほとんどのボイラーは単純に3つの信号(送風、暖房、冷房)だけを必要とする
ボタンを押す装置やブラインドの棒を回す製品があるので、つまみの回転にも応用できる
ESP32で24Vソレノイド制御線を並列接続すれば解決できるかもしれない
Frankの客はDoorking 16120のマスターキーさえあればいいと冗談を言っている
続けて大学時代、電子工学クラブで出入口の問題を解決した逸話を共有している
Raspberry Pi + リレーで解錠ボタン回路を並列接続し、Wi‑Fi経由でSSH接続するとドアが開くようにした
結局見つからず、建物のリモデル時に証拠も消えたという
リレーが故障する可能性に言及している
定格電流を超えるとリレーが張り付いたままになることがある
DPDTの代わりにSPDTを2個並列で使っており、片方だけ動作するとドアが施錠されたまま残る危険がある
ヒューズやスナバもない
その代わりRelay In A Box製品群を勧めている — UL・CE認証済みで、寿命は1,000万回、コード検査も通せる
データシート / 製品ページ
自分も似たようなものを自作した
プロジェクトリンク
eBayでBTicino BT 344232を32ユーロで購入し、4本の線をはんだ付けしてマイクロコントローラーを追加した
今ではNuki Opener + MQTT Pub/Subと連携して、スマートインターホンとして動作している