家庭 Chatops #家庭を支える技術
このエントリは、家庭を支える技術 Advent Calendar 2015 の6日目です。
シーズン2
昨年につづいて、「家庭を支える技術」アドベントカレンダーを立てました。いろんなかたちの家庭があり、それぞれ違う課題を解決していて、とても楽しいです。あともう少しだけ空いてますので、よろしければご参加ください。
外から家庭のもろもろを操作したい
私達は共働きで、帰宅の時間がほぼ一緒になったりします。そうするとこの季節、帰宅時に部屋が寒くてつらい、という問題があります。
タイマーで起動するにも、帰宅時間は一定ではないですし、無駄につけっぱなしにするのも気が引けます...
そこでまず IRKit を導入して、外からエアコンなどを操作できるようにしました。
IRKit - iPhone,iPadを使って外出先からエアコン等の家電を操作できる学習リモコン
- 出版社/メーカー: maaash.jp
- メディア: エレクトロニクス
- この商品を含むブログ (1件) を見る
エアコンの赤外線受光部が高い位置にあるため、部屋の反対側の壁上部に貼り付けるようにして設置しました。
貼り付けシールはこちらが便利でした。買っておいて損はないです。
3M コマンド タブ(はがせる両面粘着) S 16枚 CMR2
- 出版社/メーカー: 3M(スリーエム)
- メディア: オフィス用品
- 購入: 2人 クリック: 8回
- この商品を含むブログ (1件) を見る
IRKit は USB 電源なので、長めの USB ケーブルと小さめの AC アダプタも準備しました。*1
IRKit のセットアップが出来たので、外からエアコンをつけることが可能になりました。
家庭 Chatops
hubot から IRKit を操作できるようにする
私達の家庭では、情報共有に Slack を使っています。Slack に hubot を立て、Slack から IRKit を操作するために ngs/hubot-irkit を導入しました。(下記、妻の発表から抜粋)
最寄り駅についたら Slack に通知する
また、これとは別個に、IFTTT を使って最寄り駅に近づいたら Slack に通知する、というのもやっています。
これは、IFTTT で "iOS Location" と "Slack" を組み合わせ、最寄り駅を中心とした一定範囲に Enter したら Slack のチャンネルにメッセージを送る、というレシピです。妻と二人とも設定しており、毎度「最寄り駅に着いたよ」という連絡をしなくてよいのでとても便利です。*2
最寄り駅についたらエアコンをつける
今回、上記ふたつを組み合わせて、「最寄り駅についたらエアコンをつける」ができるようにしました。
IFTTT のレシピを新たに作成し、最寄り駅についたら IRKit をキックする URL を叩く、としても実現可能ですが、Chatops の観点から hubot を使い Slack 上で動作を共有できるようにしました。
hitsuji/ifttt-irkit.coffee at master · shiratsuchi/hitsuji
面倒だった点を箇条書きにすると、
- hubot プラグインの設計の問題で、hubot-irkit プラグインで設定された赤外線情報を、別のプラグインから参照したり実行するのが困難。
- ほとんどの動作が robot.respond /.../, (msg) -> のように定義されるため、最後の callback だけ動作させるのが厳しい。
- 幸運なことに hubot-irkit は Webhook を用意してくれているので、上記プラグインから hubot-irkit の Webhook を叩くようにする。
- フルオープンにならないように、BASIC 認証をかける。
- IFTTT が Slack に投げる発言を hubot で拾うためには、通常の robot.hear ではなく hubot-slackでbotの発言にも反応させる - 下林明正のブログ のように、SlackBotListener を作成して渡す必要がある。
- 二人が同時に帰ってきたときに二重起動しないよう、最終起動時刻を記録してブロックするようにする。
というかんじです。
最終的に、
のように、最寄り駅にたどり着いたらエアコンを起動することができ、家についた頃には部屋が暖かくなっているようになりました。
もし間違って起動していた場合は、Slack で hubot に停止するよう伝えることで止められます。
今後の展望
ホントはエアコンじゃなくて、床暖房をつけたいのですが、床暖房のコントローラには赤外線リモコンがないため、諦めてました。
しかし、最近話題になっている MicroBot Push を見つけて、即 back しました。これを使って床暖房をつけられるか楽しみです(到着予定は4月です...!)。
まとめ
IRKit + Slack + hubot + IFTTT で、最寄り駅に着いたらエアコンを起動できるようになりました。
明日の家庭を支える技術は becyn さんです。