Google Homeの未使用品が投げ売りされていたので、衝動買いをしてしまいました。
せっかくなのでということで、Google Homeを利用して簡単な おうちIoT環境 を作ってみました。作るときのノウハウを書いてみたので、よければ参考にしてください。
やりたいこと
誰でも家には、赤外線リモコンで操作するデバイスがいくつかあると思います。
私は非常にズボラなので、そのリモコンをしょっちゅうなくして、探し回ることがあります。なので、いっそのことリモコンを使わずに、声だけでデバイスを操ることができるようにしたいと考えました。
あと、朝起きるときと、寝るときでやることは決まっているので、それらの動作を一声でできると便利ですよね。
具体的には、「おはよう」と言ったら、以下のことをしてほしいですし、
- 部屋の電気をつける
- ディスプレイの電源を入れる
- 除湿機をつける
逆に、「おやすみ」と言ったら、以下のことをしてほしいです。
- 部屋の電気を消す
- ディスプレイの電源を消す
- 除湿機を消す
実現方法の模索
調べてみると、Google Homeなどのスマートスピーカーを使って赤外線で動くモノを操作する方法は、大雑把に分けて2種類あるようでした。
- Raspberry Piなどのマイコンボードでサーバを立て、IFTTTなどから命令を受け取って取り付けた赤外線センサーから送受信を行う
- 既製品の赤外線コントローラーを買う
1. はコストはそこまでかかりません(だいたい2,000円~3,000円くらい)が、サーバを建てる手間とセンサーをRaspberry Piなどに安全に取り付ける必要がある、というハードルがあります。例えば、以下の記事とかが参考になりますね。
https://qiita.com/takjg/items/e6b8af53421be54b62c9
2.はお手軽に実現可能ですが、1.よりはコストが掛かります。ただ、最近はだいぶ安くなってきて、現在は赤外線コントローラーだけであれば、有名どころが 5,500円くらいで買えます。
前は最低でも15,000円くらい必要だったらしいので、良い時代になったものです。
今回は、2. の一つである SwitchBot ハブミニ という赤外線コントローラーを使います。(写真左)
写真右は SwitchBot と言って、ハブミニ経由で動作するスイッチを押す専用のロボットです。
今回はこのSwitchBotを使って除湿機の操作をしたかったので、赤外線コントローラーとして、このSwitchBotハブミニを選びました。
SwitchBot ハブミニの使い方
大体は公式のマニュアルを見ればなんとかなりますので、ざっくりと流れだけ説明。
SwitchBot ハブミニに家電を登録する
家電リモコンを登録する方法(Hub Mini編)- SwitchBotサポート
SwitchBotのスマホアプリを利用して、上の方法に従って、家電を登録します。
設定を行うと、各家電に任意の名前をつけて登録できます。
私は上の画像のように登録しました。
設定の最中に、SwitchBotハブミニをインターネットに接続させるので、これだけで外出先から SwitchBotスマホアプリを使って家電を操作できるようになります。
これだけで立派なIoT環境ができました。すごい。
ちなみに、SwitchBot は開封して起動させるだけで勝手にSwitchBotハブミニが認識し、操作できるようになります。今回は、除湿機の操作をSwitchBotにやらせたいので、そのような設定を上画面では行っています。
Google HomeとSwitchBotハブミニを連携させる
BotとGoogle Homeの連携方法 – SwitchBotサポート
続いて、Google Homeで登録した家電を操作するためにGoogle HomeとSwitchBotハブミニを連携させます。
基本的には、上のマニュアルの流れでスマホアプリの操作を行えば設定が完了します。
一点異なるのが、Step 2-1にて、Google Homeアプリにて「SwitchBot Smart Home」というサービスを探すStepがありますが、この名前が単に「SwitchBot」に変わっているようでしたので、気をつけてください。
Google HomeはSwitchBotアプリで名付けた名前で各家電を認識します。
なので、例えば私の環境の場合は「OK Google, 『ライト』をつけて」と発声すれば、ライトが点くようになります。ただ、『ライト』が『電気』でも反応するので、ある程度はGoogle Home側で融通を効かせているのかもしれません。
実際の操作の様子はこんな感じです。ちょっとラグがありますね。
(動画を再生するときにGoogle Homeが反応するかもしれないので、気をつけてください)
ルーティンを設定する
Google Homeには「おはよう」や「おやすみ」、「いってきます」といった特定のワードやイベントが発生した場合にいくつかの操作を一斉に実施する「ルーティン」という機能があります。
例えば、「おやすみ」というルーティンを下記のように設定します。
こんな感じに設定すると、順に下記の操作をGoogle Homeは実行します。
- 明日の天気をしゃべります。
- 明日の最初の予定をしゃべります。
- ディスプレイの電源を切ります。
- 下記の照明やコンセントの操作を行います。(ここは歯車で設定)
- ライトをオンにする
- 除湿機をオフにする
- ライトをオンにします
ライトの操作が少し妙な気がしますが、これで寝るときに ディスプレイとライトと除湿機を消す、というやりたいことができるわけです。(動画にしようと思ったけど、ディスプレイの反射がひどくて録画できなかった…)
困ったこと
とりあえず、これでやりたいことはできたわけですが、SwitchBotハブミニは赤外線リモコンの動きを模倣するだけなので、対象のデバイスの状態(ONか?OFFか?)を認識することができません。この仕様のため、操作が少し難しいデバイスがあります。
上の写真は今回登録したリモコンです。(左からエアコン、シーリングライト、ディスプレイ)
ディスプレイ・除湿機(SwitchBot) 操作の問題点
ディスプレイのリモコンには写真の通り「電源ボタン」しか存在しないので、この「電源ボタン」を押すと、ディスプレイが消えていれば点きますし、点いていれば消えます。
SwitchBotハブミニでは、「電源ボタン」という操作しか登録されておらず、Google Homeの「電源をつける」と「電源を消す」はどちらもこの「電源ボタン」に割り当てられています。
そのため、ディスプレイが消えている状態で「OK Google, ディスプレイを消して」と言った場合、ディスプレイの電源が入ってしまいます。
うっかり、ディスプレイが消えた状態で「おやすみ」ルーティンを実行すると、暗い部屋でディスプレイが煌々と点灯する状態で寝なければなりません。
除湿機の操作についても同じで、「除湿機を点ける」と「除湿機を消す」に「SwitchBotを動作させる」という動作が割りあたっているので、同じような問題がおきます。
シーリングライト 操作の問題点
厄介だったのがシーリングライトの操作でした。
リモコンには「全灯/常夜灯/OFF」といったボタンがあって、これを押すと全灯→常夜灯→消灯→全灯…といった感じでライトの状態が変わります。まあ、よくあるやつです。
ただ、SwitchBotハブミニでは「ON」と「OFF」という操作が登録されています。Google Homeでも「ライトを点ける」が「ON」に、「ライトを消す」が「OFF」に割りあたっています。
色々実験してみると、「ON」には「全灯/常夜灯/OFF」ボタン、「OFF」は「どんな状態であっても消灯する」という操作が割りあたっていました。
じゃあ、「おやすみ」ルーティンには「ライトを消す」を割り当てればいいのかなと思うんですが、この操作のあとに「ライトを点ける」を実行してもライトが点いてくれません。もう1回「ライトを点ける」を実行すれば反応するのですが・・・。多分、別のNECのシーリングライトには「消灯」ボタンがあってそれを模倣しているせいかなあと思うんですが、詳しいことは分かりません。
そのため、「おやすみ」ルーティンで「ライトを消す」を実行すると、翌朝の「おはよう」ルーティンでライトが点いてくれません。暗い部屋で煌々とディスプレイが輝くハッカースタイルで朝を迎えます。
仕方がないので、「おやすみ」ルーティンでは、「全灯/常夜灯/OFF」の役割を持つ「ライトを点ける」という操作を2回行うことでライトを消しています。「おやすみ」って言うときにライトが全灯以外のことは考えにくいので・・・
まとめ
少し困ったことはありましたが、概ねやりたいことはできました。
今回の環境構築にかかったお金は 合計10,907円 でした。安いかどうかは微妙なところですね。
内訳
- Google Home 2,980円
- SwitchBotハブミニ 3,980円
- SwitchBot 3,947円
とにもかくにも、リモコンを探し回る日々とはおさらばです。