LoginSignup
2
0

More than 1 year has passed since last update.

ラズパイでモバイルWi-Fiのバッテリーを監視する

Last updated at Posted at 2021-09-30

課題

私は外出と自宅でモバイルWi-Fi(Huawei Speed Wi-Fi NEXT W06)を兼用しています。
しかし、たまにモバイルWi-Fiのバッテリーが切れて、一時的にネットが使えなくなるのがストレスでした。
リチウムイオン電池的にも、過放電状態は良くないので、ラズパイでバッテリーを監視して、充電が減ったらGoogle Homeで通知する仕組みを構築しました。

調査

ラズパイからバッテリー監視できないかなぁ、と考えていたら、そういえば、モバイルWi-Fiの管理画面(http://192.168.100.1/html/login.htm)にアクセスしたときに、右上に、バッテリー表示されるじゃん!と思いだしました。
Screen Shot 2021-09-30 at 22.34.38.png

この辺をどうにか使えないかなぁと、開発者モードで調査していたら、JavaScriptでG_MonitoringStatusという変数に、バッテリー残量が格納されているという事がわかりました。
Screen Shot 2021-09-30 at 22.39.10.png

設計

ここまで分かったら後は作業です。ChromiumでモバイルWi-Fiの管理画面(http://192.168.100.1/html/login.htm)にアクセスして、G_MonitoringStatusの値をJSONとしてパースして、"BatteryLevel"か"BatteryPercent"を参照して、充電が減っていたら、Google Homeに喋らせます。
sequence.png

Google Homeに喋らせる機能はgoogle-home-notifierを使用しています。
google-home-notifierは、ラズパイ上でhttp://localhost:8091にリクエストすると、Google Homeの8009番ポートに音声再生リクエストを送ってくれます。
そうすると、Google HomeはHTTPリクエストをRaspberry Piに送って、Raspberry Piから音声データを貰いに行きます。図だとGoogle Homeとの通信を一緒くたにしていますが、使用するポートは異なるので、気をつけてください。

ソースは適当ですが、ここに置いておきました。

参考文献

GitHub - google-home-notifier
GitHub - node-castv2-client

2
0
0

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