2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Home Assistant で体組成計 ESF-551 が切れ続けた原因は計量法だった

2
Posted at

Etekcity ESF-551 という BLE の体組成計を Home Assistant に繋いだら、測定値が一つも届かなかった。原因を Claude Code に追わせたら、行き着いた先は計量法 9 条だった。日本で売られている個体は、単位を切り替える機能が法律のせいで削られていた。

私はファームウェアのことも法律のことも分からない。やったのは、体重計に乗ることと、次に何を調べさせるか決めることくらいだ。AI がなかったら、この調査はできなかった。

乗っても何も返ってこない

使ったのは HACS の etekcity_fitness_scale_ble と、その中身の etekcity_esf551_ble==0.8.4。Claude Code にログを読ませると、接続して HW/SW バージョンを読み、単位を kg にするコマンド a5220305002b0163a10000 を書き込み、約 0.4 秒で切断される。そのまま再接続を繰り返す。体重計に乗っても notification は一度も来ず、センサーは全部 unavailable のままだった。

kg から kg への、実質何も変えない設定でも毎回切れる。

コマンドを 1 つ飛ばすと動く

切り分けも任せた。Claude Code は別のマシンから素の bleak で 0000fff1 を subscribe し、単位の write だけを外した。それなら切断されない。私が乗っている間は約 45ms 間隔で 22 バイトの notification が 80 回ほど流れてきた。

そこで Claude Code が、display_unit=None を渡して書き込みを踏まないローカルパッチを書いた。これで 14 個のセンサーが全部埋まった。上流への issue も Claude Code に書かせて出した(etekcity_esf551_ble #15)。

ここまでは、ライブラリのバグを直した話だった。

US 版の説明書にだけ単位の設定がある

なぜ日本版だけなのか、根拠を探させた。VeSync アプリに単位設定がなく、US 版のマニュアルには手順がある。

裏面のラベルを US 版の仕様と並べると、ファームのリビジョン違いではなく、市場別の別物だと分かった。日本の機器は IoT 対応が微妙だなあ、これもかぁ、と思った。

US の ESF-551 日本で買った個体
秤量 400 lb / 180 kg 2–150 kg
目量 0.05 lb / 0.02 kg 100 g
無線認証 FCC ID 2AB22-ESF551 技適 R 210-252428
計量法 なし 家庭用「正」マークあり

e-Gov の法令 API から計量法を取ってきて読んだのも Claude Code だ。第 9 条は、非法定計量単位による目盛や表記を付した計量器を、販売することも、販売の目的で陳列することも禁じている。lb や St で表示できる体重計を日本で売れない。だからメーカーは、日本向けのファームから単位を切り替える機能を落とす。自分で体重を量るのは取引でも証明でもないので、使う側は第 8 条にも掛からない。縛られているのは売る側だけだ。

経産省の試買調査報告書(平成 27 年度)には、実際の指導例があった。ポンドとストーンの表示が禁止だという認識がない業者に、切り替えができないよう封印しろと指示している。

切断が意図的かどうかは分からない

分かったのは、日本版に単位切替がない理由まで。切断そのものが意図した動作なのか、単位コマンドを知らないファームが雑に切っているだけなのかは、まだ判断がつかない。機能を消すのはいい。ただ、消し方が雑なんじゃないかという気はしている。1 台しか持っていないので、manufacturer data の model identifier 12 が日本版の印だとも言い切れない。上流への出し方は、identifier 12 を display_unit_settable=False で登録して write を飛ばす形にして、判断はメンテナに預けた。

未知の opcode を投げて切れ方を見る実験は、まだやっていない。

翌日に直った

issue を出した翌日、メンテナから返事が来た。

That's interesting to know about that Japanese regulation. That would explain it I guess, and since the option doesn't even show up in the app that pretty much confirms it I think.

その日のうちにライブラリ v0.8.8 と、HA の統合 0.8.3 が出た。統合を 0.8.3 に上げてローカルのパッチを外し、乗ってみたら、測定値がそのまま届いた。めちゃくちゃ早くてびっくりしたし、ありがたかった。

Home Assistant を自前でホストするのは面倒だ。でも、体重計 1 台から計量法まで行き着くような学びがあるので、やってよかったと思っている。


この記事は wada-dev.com に掲載したものです。

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?