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リージョンあったらなー