GoogleCalendarで家電を制御するようにした

以前からhipchatやcommand line, 音声認識で家電を制御していたものの、結局おおよその生活パターンで前もってスケジューリングしておくのが多少効率は悪いが一番楽という結論に至った。

特に朝に暖房を入れたり照明をつけるのは、気持よく起きることが出来てよい。

以前の実装では家電の動作スケジュールを変えるにはコードで反映するしか無かったので、今回は柔軟にスケジュールを記述できるようにgoogle calendarを使った。繰り返し設定や平日のみの指定ができ、状況が可視化されるので便利だった。

あと今までmacbook airを自宅サーバにしていていろいろもったいなかったので、Raspberry Piに切り替えた。

構成図

chrome appとweb appは今まで使っていたものをほとんどそのまま流用した

家電用カレンダー

イベント名のところに[device]:[command]の形式で書いておくと、イベントの開始時にそのコマンドを実行するようにした。また、イベントの終了時間には[device]:offコマンドが自動的に実行される。

(スクリーンショットではデバッグの為に[device]:offイベントが設定されてあるが、本来は必要ない)

リポジトリ

雑感

コマンドをすべてSQS経由にすることで、かなり実装がシンプルになった。

herokuを介すとボタンを押してから家電が反応するまでに約1秒ぐらい掛かるので、chrome appは直接SQSにキューイングするのもいいかもしれない。HerokuにTokyoリージョンあったらなー