Categories: 工作・開発

有志がBraun製電動歯ブラシの充電台を解析、磨きデータ取得と純正アプリが両立

電動歯ブラシのファームウェアが更新されて、磨いている最中のデータが外へ出てこなくなった。タイマーは0のまま止まり、最後に総時間だけが飛び込んでくる。圧力の表示も凍りついたまま動かない。Braunの電動歯ブラシ「Oral-B iOシリーズ」で起きたこの変化に、Thomas Gregg氏は自分で対処した。

原因は放送の停止にあった。従来この歯ブラシは、磨いている間の状態を周囲へ一方的に流していた。Home Assistantの公式連携はそれを受け身で拾う作りなので、流れてこなくなれば何も表示できない。データは接続を必要とする別の経路へ移っていた。

同氏は7月23日、その経路につなぎに行く連携を公開した。ところが解決と同時に別の制約が現れる。歯ブラシはBluetoothの接続を1台としか結べない。Home Assistantがつないでいる間、純正アプリと、充電台を兼ねた表示装置のiO Senseが歯ブラシを使えなくなってしまう。

そこで同氏は充電台の側も解析した。iO Senseは歯ブラシと専用のBluetooth接続を保っており、その内容を手元のネットワークから読み取れる。7月31日に公開した改良版では、Home Assistantが充電台を経由してデータを受け取る。歯ブラシの接続枠は充電台が持ったままなので、純正アプリも表示装置もそれまでどおり動く。

取り出せる情報も増えた。1秒に1回更新される磨き時間、低・普通・高の圧力、磨きかたのモード、磨く場所を区切って知らせる区画と各区画の時間を扱う。直近1回の結果は再起動をまたいで残り、実際の時間とモード、圧力が高くなった回数、終了時の電池残量が記録される。充電台の側も別の機器としてHome Assistantに現れる。

同氏はやり取りの内容を文書にまとめてリポジトリへ置いた。両方の経路を記載し、調べたうえで違うと判断したものも書き残している。他の人が同じ解析を繰り返さずに済むようにするためだという。

投稿には、Bluetooth機器を解析する手順を尋ねる質問も付いた。同氏の答えは5段階になる。解析用のアプリで機器が公開している機能を調べ、Androidの通信記録を有効にして純正アプリで1つずつ操作しながら記録を取る。操作と記録を突き合わせてボタン1つ、設定1つの対応を確かめ、理解できたところから読み取りだけを再現する小さなプログラムを書き、最後にHome Assistantの連携として包む。同氏は、読み取りから始めて未知の書き込みには手を出すなと念を押す。初期化や校正の命令が、無害な設定と見分けのつかない形をしていることがあるためだ。

連携はHACSの既定の一覧に採用され、検索して導入できる。すべて手元で完結し、読み取りのみで、Oral-Bのクラウドを介さない。試したのはiO Series 10とiO Senseの組み合わせだけで、他の機種での報告を求めている。同氏は解析の成果を公式の開発者にも共有したとしている。

関連情報

FabScene編集部

FabScene編集部