太陽がまぶしかったから

C'etait a cause du soleil.

家から出たらルンバで掃除をSiri(ショートカット)とWebhooks IFTTTで実現

IoTの基本・仕組み・重要事項が全部わかる教科書

家にいるときのルンバはうるさい

それで考えたのがロボット掃除機ルンバの購入だ。そもそも家の中にいる時間が増えているし、部屋の衛生値を重点的に上げる事が自身のQOLに直結することが見えてきた。

 そんなわけでルンバでの掃除と掃除をするための片付けが習慣化している。リモートワークや外出自粛の機会が増えているので部屋の衛生環境を整えておくのにこしたことはないのだけど、家にいる時にルンバが動いていると騒音の問題がある。

 できれば買い物などで出ている間に動いておいてほしいし、帰ってきたら掃除を中断してドックに戻っていてほしい。Siri や Google Home に声で命令するのも楽しいが、本当に実現したいのはそういうことだ。

Siri(ショートカット)と IFTTT でイベント駆動IoT

 特定の条件で起動をさせるのには iPhone のショートカット機能にあるオートメーション設定が便利だ。位置情報の変化や特定の Wi-Fi 接続イベントをトリガに任意の操作を行う事ができる。これで、ルンバを起動させれば良いと思っていたが、 iRobot アプリは Apple の Siri(ショートカット) には対応していない。Google Home や Alexa との連携はできているのに。

ルンバは元々iRobotのアプリから操作するために、iRobotアカウントを作成しているはずですよね。Webhooksとこのアカウント連携させ、そしてそれをiPhoneのショートカットアプリからSiri使って呼び出すというような流れになっています

 そこで、Webhooks から IFTTT を経由してルンバの製造元である iRobotWebサービスを叩ける様にすることで、直接的な連携機能が提供されていないアプリやWebサービスからルンバを操作できる様にする。具体的なやり方はリンク先にある通りだ。

 IFTTT 側に位置情報などを送り続けるのはセキュリティな問題があったが、あくまで iPhone 側からのイベント発生通知だけがなされるのも筋が良い。一旦この仕組みを作ってしまえば iPhone 側の様々なイベントをトリガにできるし、Slack アプリから Webhooks を叩いてルンバを操作したりなんかも簡単にできる。

iPhone が物理的に離れているかどうかを起動トリガにする

 最初はもっと人感センサーなどを駆使した構成を妄想していたのだけど、 iPhone が物理的に離れているかどうかを起動トリガにするのは非常にシンプルだし、他の活用方法にも応用できる。とりあえずダイソンのエアコン兼空気清浄機もよしなに動く様にした。

 そうなってくると物理的なスイッチを制御する仕組みも欲しくなってくる。照明や風呂の追い焚きをスマートホーム対応にしていくのは現時点では厳しいから物理的にスイッチを押してくれる簡易ロボットを使うことになるだろう。

 声で命令すること自体にはそこまでのメリットを感じられなかったのだけど、センサーとウェブインターフェイスの集合体である iPhone が状況に応じて自動的に動作して家電と連携する様になるのは非常に便利だ。そんなわけで、ショートカット機能について色々と試してみたいと思う。