cametekの日記

かめりあの日記です。 http://cametek.jp/ http://twitter.com/cametek/

Google HomeでIoTリモコン「MagicCube」を使って照明のオン・オフを動作させる方法の備忘録

初投稿です。

以前からブログを持っておいたほうが良いと思っていたのですが、タイミングがなく、太古の昔に放棄したブログ以外のものを始めていませんでした。

そんな所、今日(2018/02/28)から、IoT赤外線リモコン「MagicCube」が対応するアプリ「Homemate」がGoogleに認証を受け、Google Homeで使用できるようになりました。自分はこいつを使ってエアコンのオン・オフや照明のオン・オフをしています。じゃあ「照明付けて~」っつってつくようになったら超便利じゃね?

しかしながら、その内の「照明のオン・オフをGoogle Homeでしたい!」を設定・実現させるためにマジで丸2時間以上を費やしたのでとりあえず備忘録として公開します。

そんな動機で最初の記事を書いて良いのか…

一応注釈ですが、この記事は「自分はこれでできた」という話なのでできなくても文句は言わないで下さい。君も時間をかけてチューニングすればできるようになるぞ。多分。自分は2時間以上掛かった。

また突発的に作った記事なのでAmazonアソシエイトや商品紹介などは付いていません。あちゃ~。各自ググって下さい。

ORVIBO スマート家電リモコン 統合スマートホームアプリ「HomeMate」で家電をコントロール【AmazonAlexa/Google Home対応】

18/03/29追記:試しにリンクを付けてみました、どうでしょうか(どうでもいい)。

 

 

できたこと

  • Google Homeに「明かり付けて」で照明のオン、「明かり消して」で照明のオフを行う。
  • オン・オフができたらGoogle Homeが「メインライトをオン/オフにします。」と言う。まぁ通常の動作応答メッセージです。

なんでこれができねえんだ、「未来に生きさせろ」、と文句を言いながら2時間以上格闘。

 

※この設定をすると、『点灯』『消灯』がそれぞれ別の家電として認識されるため、「全部消して」「全部つけて」「いってきます」「ただいま」「全てオン」「全てオフ」などのすべての家電をオン/オフにする動作の内、片方が必ず動作しなくなります。そのため、この設定をストーブや暖房のリモコンに適用すると、上記のコマンドを使用した際に消し忘れ、火災を起こしたりする可能性があります。ストーブや暖房への設定は絶対に行わないで下さい。Google Homeを使用して家電製品の操作をする際は細心の注意を払って操作して下さい。この設定によって何らかの損害を被ったとしても一切の責任を負いません。

やりかた

  1. まずGoogle HomeGoogleアシスタントアプリがインストールされている方はそっちになります)とHomemateの連携を解除する。

  2. Homemateに「照明点灯」と「照明消灯」という二つのリモコンを「テレビのリモコン」のカテゴリで、「リモコンコピー」で作成する。後述しますが「カスタムリモコン」はGoogle Homeが認識しません。

    なんとなくこの名前はどうにでも設定できる気がするんですが…、変えるとドツボにはまる可能性があります。「こいつ照明だから!」とGoogle Home側に認識させつつも、日本語として認識しやすく、更に「照明オン」「照明オフ」とか言う言葉でトリガーされない微妙な言葉にするのが大事だという結論に至りました。「照明常夜灯」とかも多分行けると思いますが名前変更が本当にめんどいので自分の目で確かめて下さい。

  3. 「照明点灯」の「電源ボタン」に手元のリモコンの「オン」を、照明消灯の「電源ボタン」に手元のリモコンの「オフ」を設定する(学習させる)。
    つまり「照明をオンにする(実際にはテレビの電源ボタンを押す)」と言う動作でできるのがこのボタンを押すことしかないということです。
    Google Homeが照明なんやなと思っている限り、それ以外のボタンはGoogle Homeから呼べないっぽいです。これマジ?あ ほ く さ まま、(なんか悪用されそうだし)ええわ
  4. ここで連携を解除したHomemateとGoogle Homeを再度連携します。できれば部屋の設定をしたほうがいい気はしますが、自室のみで使うのであれば部屋の設定はしなくてもいいと思います。
  5. Homemateには「照明点灯」「照明消灯」の2つのリモコンが登録されています。Google Home上でのリモコンのニックネームを、それぞれ「メインライト」「めインライト」に設定します。
    は? あ さ く さ やめたらこの仕事…こんな…あほらし…
    メインライト」は他の単語でも大丈夫なんですが、「Google Homeがニックネームの名前で呼ぶ」と言う仕様上、同じ名前にしたいという強い要望がありますよね。そこで同音異義語、今回はひらがなにするだけで同じ読みにできるように名前をチョイスしました。
  6. Google Homeの「ショートカット」で「明かりつけて」で「メインライトのオン」を、「明かり消して」で「めインライトのオフ」を登録します。
    特に「明かりつけて」「明かり消して」の文言は絶対に変えないで下さい。「明かり付けて」が動かないのを確認しています。奇跡的に動いています。マジで意味不明なドツボにはまります。
  7. 「オッケーグーグルあかりつけて」「オッケーグーグルあかりけして」と言う
  8. うごいた…
  9. 2時間の成果だ…

多分キモは「Google Homeで認識されるタイプのリモコンに赤外線シグナルを学習させる」「電源ボタンしか動かなかったら、手元のリモコンのボタンそれぞれをいい感じの名前で電源ボタンに設定する」「それぞれの電源ボタンを1つずつGoogle Homeが押せるように、いい感じの文言で設定する(「明かりつけて」とか)」「ショートカットにはニックネームを使い、ニックネームを同音異義語にすることで、上手いこと動作応答してくれるようにする」という所だと思いますので、応用ができれば他のIoTリモコンでもなんかうまくいったりする気がします。

以上です。良いIoTライフをお送り下さい。

 

なぜできないか

  1. HomemateのMagicCubeリモコンカテゴリに「照明」というカテゴリが無いので、「カスタムリモコン」を使用していた。
  2. Google Homeはカスタムリモコンを認識しない。なので他のリモコンカテゴリで照明を無理やり動かすしかない。
    (他に設定したエアコンは「エアコンリモコン」というリモコンカテゴリがあったのでそれで設定して無事認識された。「エアコン付けて」「エアコンを冷房にして」とかちゃんと動く)
  3. 他のリモコンカテゴリで、赤外線シグナルを学習できるのが「テレビリモコン」しかない。無理矢理照明をつけようとしているので赤外線シグナルを学習できないと話にならない。
  4. Google Homeに「こいつは照明だ」と認識させた上で、実際には「テレビリモコン」のボタンを押させないといけないが、できれば「照明をつけて」とかで照明をつけたい。そりゃそうや
    しかし「照明をつけて」で「テレビのボリュームを上げる」みたいな動作ができなくて(なんで?)、「照明をオン」「照明をつける」=わかった!照明をつけるんやな!「テレビの電源ボタン」ポチーという事になってしまう。
    「テレビのリモコン」と「照明のオン・オフ」で使えそうなのが「電源ボタン」しかないので、ボタンの分だけリモコンを登録して動かすしかない。
  5. Google Homeも対応できる語句が限られている上、「照明付けて/消して」で「わかったわ!全部の照明付けといたやで~」とかやり始める。なので、「全部の照明の動作やな」と"ならない語句"をトリガーにして、照明のリモコンのフリをしたテレビのリモコンの電源を押さないといけない。
  6. リモコン名を「照明オン」や「照明オフ」にすることも試したがGoogle Homeが「照明 音」と聴き取ったりするなど動作しない。その上ショートカットで「照明 音」に対応するように設定しても「すみません、お役に立てそうにありません。」としか言わない。恐らく「ボタンを押す」動作を行える語句と、リモコンとボタンとの組み合わせに微妙に制限がある。
  7. いろいろチューニング(2時間)した結果、トリガーにする語句を「明かりつけて」「明かり消して」にした上で、「ショートカットでニックネームを使うように設定」した上で、「ニックネームを同音異義語(動作応答で呼ぶ名前を同じにするため)」にした上でリモコンそのものの名前を別個のものにして、という様にすれば行けるっぽいという事が判明。
  8. 以上です

 

ちなみに当ブログ、今後は家電以外のことをブログに書く予定なので気をつけて下さい。