下林明正のブログ

思いついたことを適当に書いています。

Sleep as AndroidのインテントをTaskerで受け取れなくなっていたのでIFTTTで代用した

これまでSleep as Androidでスリープトラッキング開始を入眠とみなして電気毛布がつながったスマートプラグを自動でONにするとかしていたんですが、知らないうちに電気毛布がつかなくなっていて風邪を引きそうになったりしたので問題を調査して解消しました。

まず、やはりSleep as Android側がインテントの送信をやめていたようです。

sleep.urbandroid.org

Direct receiving of broadcast intents stopped working in late 2018 due to Android restrictions on implicit intents.

これはどうやら最近のAndroidの仕様変更に則ったもののようです。

developer.android.com

僕はAndroid開発から離れて久しいこともあってあんまりちゃんと読んでませんが、何にせよ改めてインテントが送信されるようになることはなさそうです。

そして代替手段が特に示されていません、困りましたね。 調べているとどうやら、いつの間にかIFTTTとの連携ができるようになっていました。

sleep.urbandroid.org

自分の場合はもともとTasker -> IFTTT -> スマートプラグという形で制御していたので、単純にこの連携機能を有効にしてIFTTT側でトリガーとなるEvent名を変更したらそれだけで済みました、良かったですね。


ちなみに、Sleep as Android側の設定画面にTaskerとの連携を示すチェックボックスも存在しているのですが、チェックしても何がどうなるのかいまいち良くわかりませんでした。ドキュメントにもTaskerの名が無いように見えます。

Integration - Sleep as Android

そのうちもっといい感じに連携できるようになると助かります。

僕自身、ここ数年でTaskerでやっていた多くのオートメーションが動かなくなり、都度IFTTTへ移しました。 IFTTTは楽でいいんですが、中央集権的なのでプラットフォーム側の都合で突然使えなくなったりする懸念があるのと、モノによっては結構遅延などがあるのが気にはなってます。複雑な制御もできないので、たまに困ることもありますね。