Tasker と sinatra 製サーバーで各端末のバッテリ状況を一元的に把握できるようにしてみた。

サーバー

Rubysinatra で、適当に GET するとバッテリ状況を保存するサーバー書いた
https://gist.github.com/anekos/8255991
一瞬でかけました。

Android 端末

Tasker というアプリを使用。
HTTP Get のアクションを使って http://example.com/level/$devicename/$level を定期的に叩く
(普段ネットに繋がないような端末は、WIFI On > Wait (%WIFI = On) > WIFI Off とかするといいっぽい。

ノート

C# で適当にプログラム書いた。
こいつをタスクスケジューラで、定期的に実行してやる。
https://gist.github.com/anekos/8256104
割と苦戦したけど、内容は超簡単。
BatteryLifePercent が float で 100% の時に 1 を返すような仕様は変。
あと、こいつで繋ぎに行くとサーバ側で Connection reset by peer になるのが謎。

見る

http://example.com/level/ を叩く
しきい値以下の端末があったら、Pebble というスマートウォッチとデスクトップに通知がいくようにしている。