スマートオフィス化計画エアコン編
はじめに
エアコンはありがたいものです。夏の暑いときも冬の寒いときも快適な室温を保ってくれます。
…電源さえ入っていれば。
朝イチで出社するメンバーから、鍵開けてオフィスに入った時点で既にいい感じに涼しくなっていてくれたらとてもうれしいという話を聞いて、やってみることにしました。
オフィス用エアコンは案外賢くない
家庭用エアコンは赤外線リモコンで制御できるので、いわゆるIoTリモコン(スマートリモコン)とPCを連携させれば電源のオンオフ・温度変更・風量変更・モード変更を割と自由に制御出来ます。
一方、オフィス用エアコンは温度やモードが表示されるパネルを見ながら物理ボタンをポチポチ押して制御するしかありません。
という訳で、今回は電源のオンオフに専念します。
SwitchBot
エアコンの電源ボタンを物理的に押すためにSwitchBotを導入しました。
こんな感じでボタンを押してくれます。
SwitchBotはBluetoothを搭載していて、スマートフォンアプリでボタンプッシュの動作をさせることができます。今回は自動制御を目指したいので、ネット経由でトリガを送れるSwitchBot Hubを併用します。
SwitchBot HubをIFTTTと連携させて、以下のようにしてエアコンの自動起動を実現できます。
- ラズパイで朝7時にスイッチオン用のスクリプトを起動
- IFTTTで設定したWebhooksのURLをスクリプトが叩く
- IFTTTからSwitchBot Hub経由でSwitchBotにトリガが届く
- スイッチオン!
IFTTTとの連携
IFTTTでは’This’としてWebhooks、’That’としてSwitchBotのBot Pressを選んでアプレットを作成しました。
このアプレットへのアクセスキーをIFTTTのWebhooksのページで発行すれば、以下のようなURLを叩いてSwitchBotを動かせます。(XXXの部分がアクセスキーです)
https://maker.ifttt.com/trigger/PressSwitchBot12F_Red/with/key/XXXXXXXXXXXXXXXXX
残念ながら、IFTTTでもSwitchBot Hubでも1個のトリガで複数のSwitchBotを動かすアクションは実行できないので、オフィスの6台分のエアコンそれぞれに対応したアプレットを作って6つのURLを1個ずつ叩くスクリプトを作りました。IFTTTで「平日朝7時に実行」というトリガを作れるので、それを6台分設定することも考えましたが「平日だけど会社は休み」のパターンへの対応を考えてスクリプトから起動しています。
結果
自動起動を始めて2週間ほど経ちます。それなりにちゃんと動いていて、朝イチの出社のメンバーを空調の効いたオフィスが迎えてくれるようになっているようです。
「それなり」というのは、6台のエアコンのうち1,2台が動いていないことが多いからです。「オフィスに入ったら空調が効いている」という目的には大きな影響は無いと言えば無いのですが、何故全部ちゃんと動いてくれないのかは気になるところです。いろいろ試した感じではSwitchBot Hubがどうも怪しいようです。何回かに1回IFTTTからのトリガを取りこぼしたり1個のトリガで2回動いたりします。
https://github.com/OpenWonderLabs/python-host
を使えば SwitchBot Hub 無しでラズパイから直接SwitchBotを制御できるようなので、いずれ挑戦してみたいと思います。