ただのにっき
2018-02-28(水) [長年日記]
■ MacroDroidで充電状況をSlackへ通知
これまで(もう5年以上前から)、Androidの自動化にはTaskerを使ってきたんだけど、超高機能なTaskerを使うほどの凝ったことをしているわけでもないし、いつまでたっても洗練されないTaskerのUI(はっきりいってダサい)がストレスになって使う気分自体が下がっているし、ここはスパっと捨てて、別のアプリを試すことにした。
通の間(?)ではAutomateのウケがいいけど、これもまた過剰に多機能っぽいので、もうちょっとシンプルなの……ということでMacroDroidにした*1。なお、最近のXperiaには機能的にかなり割り切った「Xperiaアクション」という自動設定変更ツールが付属しているが、割り切りすぎてて不満もあるので(併用しつつ)MacroDroidでできることはMacroDroidに任せたい。
特定のアプリだけスクリーンローテーションを変えるとか、接続先のWiFiに合わせたアクションをさせるとかは簡単にできたので、まずは合格。あとで課金して広告を消そう(310円)。
で、今回やりたいと思っていたのが「充電状況をうまいこと知りたい」である。自宅や職場で常時充電器につないでいると電池の寿命をかなり削ることになるので、これをなんとかしたい。今日び、スマホの寿命は電池の寿命といっても過言ではないし。
最近のXperiaには「いたわり充電」という機能があって、これをONにしておくと普段の使い方を自動で学習して適切なタイミングで100%になるように充電速度をコントロールしてくれるというすごいヤツなんだけど、案の定というか学習が甘くてさほど頼りにならない(笑)*2。AIが充分に進化するまでは自分でなんとかする方がマシである。
というわけで「90%まで充電されたらSlackに通知する」というのをやる。これならPCに向かって仕事中、スマホを注視してない状況でも気づけるし*3。で、「充電中に90%を超えたら」という条件設定は簡単にできる:
ここからSlackへはIFTTTを経由する。まずはIFTTTから自分のWebhooks URLを取得する。このページに有るURLじゃなくて、Edit Connectionした先にある
https://maker.ifttt.com/trigger/{event}/with/key/……
のスタイルのヤツ。この「{event}」の部分を任意に設定すると、自分だけのIncoming Webhookを作れる。これが実に使えるヤツなんですよ! 今回はここを「battery_max」かなんかにして、MacroDriodのアクションから「アプリケーション」カテゴリにある「Webサイトを開く/HTTPを取得」に設定。GETでいい:
あとはIFTTTでレシピを作ればよい。トリガーをWebhookの「Receive a web request」にしてイベント名に「battery_max」を入力、アクションにはSlackの好きなチャンネルを指定して適当なメッセージを入力すれば完了。これでバッテリが充電中に90%になるとSlackに通知が来るようになる:
いやー、IFTTTのWebhooksマジでいいよな。なんでもできちゃう。大好き。神。(←MacroDroidの話じゃなかったのか)
2018-03-06追記
その後、Webhook URLのうしろに「?value1=90」とつけることで、パーセンテージをIFTTTへ渡せるようにした。Slackに渡すメッセージに{{Value1}}を入れることで、端末側で変更した数値を含めて通知できるようになるので、90%を95%に変更したくなっても一ヶ所だけ修正すればいいようになった。