Google Homeに声をかけるだけで、赤外線では操作できないスマート家電も、赤外線でしか操作できない赤外線家電も、まとめて操作できるシステムを開発しました。
複雑な操作も簡単に実現できるので、シンプルにスマートホームを構築できます。
(他のシステムでは、家電のON/OFFのような単純な操作しかできなかったり、複雑な操作のためには複雑怪奇な設定が必要だったりします。)
「初心者でもできた!」という報告もたくさん頂いているので、ぜひお気軽にお試しください。
#できること
- 「OK Google、行ってきます」の一言で、スマート家電も、赤外線家電も、まとめてOFFにする
- 「OK Google、暖房
22
度」で、エアコンの設定温度を22
度にする - 「OK Google、エアコンを
6時半
につけて」で、6時半
にエアコンをつける - 「OK Google、エアコンを
7時間後
につけて」で、7時間後
にエアコンをつける - 「OK Google、テレビの音量を
4
上げて」で、音量アップを4
回繰り返す - Twitterの通知を、Google Homeに喋ってもらう
- 外出先から、自宅のエアコンを、スマホで操作する
他のスマートリモコンとの比較はこちら → スマートリモコンの比較表
-
Google Home (グーグルホーム)
- Amazon Echoでも可能ですが、IFTTT連携が使いづらい
- IFTTTと連携できるなら、ほかのスマートスピーカーでもOK
- スマートリモコン
-
RM Mini3
- 格安のWiFi付き赤外線スマートリモコン(別名: 黒豆、Black Bean)
- 海外通販なら千円強、国内通販だと3千円弱
- ただし、RM Mini3は技適を取っていないことに注意
- 技適のないWiFi機器でも、総務省に届け出れば、半年だけ実験的に使えるよう、電波法が改正(2019年11月20日に施行)されました
- 半年以上、実験以外の目的で使う場合は、技適を取った同等の機種(eRemote mini、約5千円)をお使いください
- 自作も可能
- 材料費は、たったの400円 → 格安スマートリモコンの作り方
-
RM Mini3
- 自宅サーバ
- Node.jsとRedisが動けばOK
-
Raspberry Piがお手軽
- ラズパイZero WHなら、省エネかつ安価(1,800円)
- Amazon Fire TV Stickもサーバ化できます!
- 第1世代でも、第2世代でも、動作報告を頂いています
#システム構成
下図のように、Google Home → Google Assistant → IFTTT → Slack → 自宅のhubotサーバ → RM Mini3を経由して、赤外線家電を操作できるようになります。
Slackのおかげで、自宅サーバに固定グローバルIPがなくても使えます。
(ngrokなどで自宅サーバをネットに晒す必要がないので、安全で簡単です。)
hubotからRM Mini3を操作するための拡張スクリプト(hubot-broadlink-rm)を私が作りました。
システムの構築方法は[こちら]で詳しく解説していますが、まずは以下の本文を読んで、雰囲気を掴むことをおすすめします。
#赤外線家電の操作方法
赤外線リモコンの学習と発信
例えば、照明をつける赤外線リモコンを学習するには、
learn light:on
というメッセージを、Slack経由でhubotに送ります。
すると、RM Mini3が学習モードになるので、照明のリモコンの点灯スイッチを押すと、学習が完了します。
学習した赤外線はlight:on
という名前でhubotが覚えてくれます。
学習した赤外線を発信するには、
send light:on
というメッセージをhubotに送ります。
Google Homeから家電を操作
IFTTTで、Google Homeに「OK Google、明かりをつけて」と話したら、
send light:on
をSlackに送るようにすれば、Google Homeから照明を点灯できるようになります。
(ちなみに「OK Google」と言わなくても、見つめるだけでスマートスピーカーを起こす こともできます。)
外出先からのエアコン操作
IFTTTのButtonトリガーで、
send aircon:on
をSlackに送るようにすれば、スマホのウィジェットを押すだけで、外出先からエアコンをONにできます。
また、スマホの位置情報やWiFi接続の有無をトリガーにすれば、自動でONにすることもできます。
複数の家電をまとめて操作
send
メッセージには、複数の赤外線信号を渡すこともできます。例えば、
send light:on tv:on aircon:on
とすれば、照明とテレビとエアコンを、まとめてONにできます。
発信間隔の調整
赤外線信号を発信する間隔を調整したければ、
send light:on [2s] tv:on [1500ms] aircon:on
というように微調整できます。(詳細はこちら)
発信を繰り返す
赤外線を発信する回数を*3
と指定すれば、
send tv:vol:up*3
⇒ send tv:vol:up tv:vol:up tv:vol:up
というように、音量アップを3回繰り返すこともできます。
さらに、繰り返しの間隔も調整したければ、
send tv:vol:up[300ms]*3
⇒ send tv:vol:up [300ms] tv:vol:up [300ms] tv:vol:up
というように微調整できます。(詳細はこちら)
この繰り返し機能を使えば、音量アップのIFTTTアプレットを1つに集約できるので、設定が楽になります。
「OK Google、テレビの音量を #
上げて」と言ったら、
send tv:vol:up*{{NumberField}}
をSlackに送信するIFTTTアプレットを1つ用意するだけで、「音量を 3
上げて」も「音量を 10
上げて」も実現できます。
RM Mini3の使い分け
複数台のRM Mini3を所有している場合には、台所を消灯して寝室を点灯するというような、使い分けもできます。
それにはまず、個々のRM Mini3を、MACアドレスやIPアドレスで識別して、台所(@kitchen
)や寝室(@bedroom
)という名前を付けます。
set @kitchen aa:bb:cc:dd:ee:ff
set @bedroom 192.168.135.246
すると、send
メッセージの中で、赤外線を発信させるRM Mini3を指定できるようになります。
send light:off@kitchen light:on@bedroom
格安のRM Mini3なら、家中のすべての部屋に設置しても、財布に優しいので、家全体のスマート化に打って付けです。
きめ細かな操作も簡単
これらの機能を組み合わせれば、きめ細かな操作も、簡単に実現できます。
例えば、「OK Google、外部入力 #
番」で、テレビの表示を #
番目の外部入力に切り替えるには、
send tv:dttv [2s] tv:source[3s]*{{NumberField}}
というメッセージを送るIFTTTアプレットを用意します。
「OK Google、外部入力 2
番」と言えば、
send tv:dttv [2s] tv:source[3s]*2
⇒ send tv:dttv [2s] tv:source [3s] tv:source
となって、地デジ切替(td:dttv
)の2秒後に、入力切替(tv:source
)が送信され、さらに3秒後に入力切替(tv:source
)が送信されるので、テレビには2番目の外部入力が表示されます。
また、「OK Google、外部入力 0
番」と言えば、
send tv:dttv [2s] tv:source[3s]*0
⇒ send tv:dttv
となって、地デジ切替(td:dttv
)だけが送信されます。そこで、Homeアプリのショートカット機能で、「地デジ」を「外部入力 0
番」に置き換えれば、「OK Google、地デジ」と言うだけで、テレビが地デジに切り替わります。
たった1つのIFTTTアプレットだけで、複雑かつ、きめ細かな操作を、簡単に実現できました。
#スマート家電の操作方法
赤外線では操作できないスマート家電も、赤外線家電と同じように、send
メッセージで操作できます。
例えば、WebAPIで操作できるスマート家電を考えてみましょう。
このスマート家電の電源をONにするWebAPIのURLが、
https://SMART.DEVICE/API/on
だとすると、以下のようなUNIXのコマンド:
curl -s https://SMART.DEVICE/API/on
を実行すれば、電源をONにできます。
このコマンドをsend
メッセージで扱うには、まず、
command smart:on curl -s https://SMART.DEVICE/API/on
というメッセージを送って、smart:on
という名前で、hubotにコマンドを登録します。
あとは、赤外線家電と同じように、
send smart:on()
というメッセージを送れば、hubotがコマンドを実行して、スマート家電がONになります。
間隔調整や繰り返しも、同じように指定できます。
send [7h] smart:on()[15m]*3
なお、WebAPIのないスマート家電でも、IFTTTにさえ対応していれば、IFTTT経由でWebhookを簡単に設置できます。(詳細はこちら)
#スマート家電と赤外線家電をまとめて操作する方法
スマート家電と赤外線家電をまとめて操作するには、単に、
send smart:on() tv:on light:on
と並べるだけです。どんな種類の家電も、分け隔てなく、同じように扱えます。
#まとめ
RM Mini3とhubot-broadlink-rmを使えば、たった1つのIFTTTアプレットだけで、Google Homeから、様々なデバイスを、ひとまとめに、きめ細かく操作できます。
IFTTTアプレットを無駄にたくさん作らずに済むので、スマートホームをシンプルに構築できます。
生活に直結するものなので、シンプルに、簡単に、運用できることは、このシステムの大きな強みです。
公開から2ヶ月でまだ数千ダウンロード程度ではありますが、「簡単に構築できた!」という声をたくさん頂いています。
より多くの方々に、快適なスマートホームを、手軽に、格安で体験していただければ、開発者冥利に尽きます。
まずは手始めに、赤外線家電のスマート化、スマート電球、スマートコンセントなどから、ご自宅をスマート化してみてはいかがでしょうか。
システムの構築方法は、こちらで詳しく説明しています → RM Mini3とGoogle Homeで家電を操作する方法
#おまけ(Twitterの通知をGoogle Homeに喋らせる方法)
(注:Fire TV Stickでは、残念ながらGoogle Homeに喋らせられません。)
まず、「テキストをGoogle Homeに喋らせるUNIXコマンド」を用意します。
次に、このコマンドをsay
という名でhubotに登録します。
すると、喋らせたいテキストをsay
に与えるだけで、
send say(太郎さんからフォローされました!)
Google Homeが「太郎さんからフォローされました!」と喋ってくれます。
あとは、IFTTTで、twitterでフォローされたら、
send say({{FullName}}さんからフォローされました!)
をSlackに送るよう設定すれば、Twitterの通知をGoogle Homeが教えてくれるようになります。