GoogleHomeを120%活用する簡単なまとめ

f:id:paradisecircus69:20171010181234j:plain

発売日、有楽町ビックカメラの行列に並んでGoogleHomeを買ってみました。
まだいろいろ試してる最中ですが、使いこなしていない方も散見するので簡単なまとめを。



【スポンサーリンク】



対応機器

スマートスピーカーと大仰な肩書。
実際は、単に精度の高い「音声入力デバイス」

なのでインプットした情報を単体で処理するだけではなく、何かしらと連携してこそ力を発揮することができる。
そうでなければスマフォのAIアシスタントを据え置きにしただけ。
レビュー記事を見てみても、音声入力デバイスとしてだけ使っているひとが「値段の割に大したことない」など低い評価をしてる。


今のところ公式にサポートしているサービスは、
・GoogleMusic
・Spotify
・Googleカレンダー

などなど。

Googleは色々サービスをやっている割に、大して対応していない謎。
テレビのオフに関してはHDMI-CECに対応していれば可能とのことだが。
Google Home を使ってテレビをオンまたはオフにする - Google Home ヘルプ

対応ハードウェアとしては、まずHUEやChromeCast、

Philips Hue(ヒュー) スターターセット v2   929001156101
Philips(フィリップス) (2016-04-06)
売り上げランキング: 2,233

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Chromecast ブラック
価格:4978円(税込、送料無料) (2017/10/10時点)


ルンバも対応しているとのこと。
これらが家にあれば、音声で明かりやストリーム動画など操作することができる。

www.itscom.net
KDDIのauホームやイッツコムの「インテリジェントホーム」などがサポートを発表。
とはいえランニングコストかかるのは少し気になる。

テレビや照明が対応してくれれば一番だが、少なくとも日本では厳しい現状。

 

音声コマンド

音声入力について気づいたことを少し。

長文は苦手なGoogleHome。
ニュースや天気、貨幣換算など簡単に応えられるものは得意だが、情報の多い乗り換えを調べたりするのは難しい。

だが、
「乗り換え 10時発 池袋から新宿」
という聞き方をすると簡易だが乗り換え案内もできる。
出発時間、乗り換え回数などは音声で返る。

「リビングのテレビでNetflixのジェラルドのゲームを再生」
などという指示は、ChromeCastを接続したテレビがあればすぐに可能。

「ネットフリックスでスタートレックディスカバリーを再生」
とGoogeHomeに声掛けしてもChrome Castで再生ができる。
ただし残念ながら
「ネットフリックスでスタートレックディスカバリーの四話目を再生」
という再生の指定はできない。

指定無しで最初からの再生はできるが、話数は指定不可。
アプリで再生してからCastしろと言われる。

基本的に長い音声コマンドは受け付けない。
売りの機能にしている割に痒いところに手が届かない印象。
続きドラマを最初からしか再生できないというのは、評価下げざるを。

この辺は、今後の対応待ちかもしれない。

IFTTT

ifttt.com

GoogleHome(GoogleAssistant)は、IFTTTに対応。
IFTTTとは「ウェブサービスなどをつなぐハブ」のようなサービス。

いちからコードを書く必要はなく、トリガーになる「IF」とその結果として動く「THAT」を決めると連動して動く。
非プログラマーでも使いやすい簡単さ。

qiita.com
上記リンク先では、GoogleHome(Asistant)をトリガーにツイッターを「THAT」に設定して、GoogleHomeから呟けるようにされたらしい。
WBSのニュースにすらGoogleHomeが反応したのを見てTWITTERの連携はさせないことにしていますが。

IFTTTには、EVERNOTEなどさまざまなサービスがあるので工夫のし甲斐がある。
ただIFTTTのTHATにGoogle Assistantを設定できないのが難点ではありますが……(IFTTTでは、Homeをインプットに使えるがアウトプットには使えない)。


さて、このIFTTTとIRKITを使いGoogleHomeでIOTなスマートハウスを実現する、というのがGoogleHomeの醍醐味。
IRKITなどの学習リモコンなし、GoogleHomeだけでは、対応機器も限られる今は活用の幅も限られる。
GoogleHomeを買う(持っている)ならIRKIT(もしくは後発のNatureRemo)を買うことを考慮されたい。

インプットのためのGoogleHomeとアウトプットのためのIRKIT。
これを揃えることが(今のところ)120%活用できる組み合わせ。
以下、IRKITとIFTTTの設定。

IRKIT

IRKit - iPhone,iPadを使って外出先からエアコン等の家電を操作できる学習リモコン

IRkitは、オンラインで操作する学習リモコン。
普段はPCやiPhoneアプリなどから操作している。
今回はGoogleHomeの音声入力からIFTTTを経由し、IRKITからリモコン操作を行う。

ざっくりと、
f:id:paradisecircus69:20171010192158j:plain
1.GoogleHomeに音声入力
2.GoogleAssistant経由でIFTTTへ
3.WebHooksからIRKITに指定動作
4.IRKITから赤外線を送り家電を操作
のような順になる。

IRKit - Open Source WiFi Connected Infrared Remote Controller
IRKITの公式を参照に。
いろいろなところでまとめられているけれど改めて以下に手順を。


※以下、XXXXのところを置き換え
※IRKITはセッティング済とします


【IRKITから設定のための情報を取得】
まずMacのターミナルを立ち上げ、
dns-sd -B _irkit._tcp
と入力。InstanceNameが返るのでそれを使い、
dns-sd -G v4 irkitXXXX.local

と入力するとIRKITのIPアドレスが分かる*1

IPがわかったので次いで
curl -i "http://XXX.XXX.XXX.XXX/keys" -d '' -H "X-Requested-With: curl"
と入力。
するとclienttokenが表示される。

curl -i -d "clienttoken=XXXXXXXX" "https://api.getirkit.com/1/keys"
clienttokenを使いdeviceidとclientkeyをげとする。

これでIRKIT本体に関する情報は足りる。
次にリモコン信号の情報を取得。

IRKIT本体に向けてリモコンを一度押し
curl -i "https://api.getirkit.com/1/messages?clientkey=XXXXXXXXXXXXXXXX&clear=1"
上記コードを打ち込むと、IRKITに向けてリモコン操作した最新の信号の詳細を返してくる。
信号は{"format":"raw","freq"から始まる英数の文字列。

ちなみにこの際、リモコンのボタンは短めに一度だけ押すこと。
でないとコードが長くなったり正確な信号が取れない。
あと、IRKITのLEDにリモコンの送出部分を密着させてから押すといい。

これで
・IRKITのIP
・IRKITのclienttoken
・IRKITのdeviceid(B)
・IRKITのclientkey(A)
・リモコンの信号(C)

が手に入った。
このうち、IFTTTでは下3つを使う。


【IFTTTでの設定 IF THIS】
続いて、IFTTTにログイン。
f:id:paradisecircus69:20171010200307j:plain
・MyAppletsを選択し新規作成
・Appletsの「If This」にGoogle Assistantを選択(検索)。
・Choose triggerには"Say simple phrase"を選択。

f:id:paradisecircus69:20171010200322j:plain
・What do you sayに音声コマンドを選択。
※起動トリガーを「電気をつけて」「テレビをつけて」のような言葉にすると既存機能と操作がぶつかり、失敗することがあるので注意
・What do you want the assistant to say in response?に適宜入力(この時の返事を「イェッサー」みたいにしておくと動作が上手く行ったかどうか確認しやすい)
・LanguageはJapaneseを選択

ここまででトリガーは終わり。
NEXTを押して次へ。
ちなみにiPhoneのIFTTTアプリは、入力がバグっているのでPCでやるのが吉。

【IFTTTでの設定 THEN THAT】
続いてTHATの設定。
・WebHooksを選択。
・Choose ActionはMake a web request一つなのでそれを選択
・以下、
URL
https://api.getirkit.com/1/messages
Method
POST
ContentType
application/x-www-form-urlencode
そしてBodyには
clientkey=clientkey(A)&deviceid=deviceid(B)&message={"format以下の(C)~
先刻、取得したclientkeyやdeviceidを=以降に。
messge=の次にformから始まる信号のデータを貼り付ける。
IFTTTの画面でやるより何かしらメモで作業するほうがいいかもしれない。
ここまで出来たらSAVE。


音声で「OK、グーグル!hogehoge」と言って動作するか確認してみる。
もしくはGoogleAssistantにキー入力してみてもいい。

Assisutantアプリは、音声入力が正しく出来ているか?などGoogleHome側デバックに使える。
Webhookでコケている場合は、IFTTTのログで確認できるのでそちらを参照のこと。

qiita.com
上記は、こちらの投稿などを参考にしたが、ウチの環境ではURLに全文入れずに(TEXTではなくPOSTで)動いているのでそちらにしてみた。
もし上手く動かないひとはQiitaのやり方を試してみるといいかもしれない。

Google Home

nature.global

ちなみにIRKITの後継機NatureRemoでは、IFTTTにチャンネルが存在しているのでWebHooksを使わなければならないIRKITより簡単に設定できるとのこと。
ウチはmakuakeで買おうとしたら「センサーの不具合」とかでキャンセルされ、未だに手に入れていないですが……。
IFTTT設定 — Nature

www.dream-seed.com
NatureRemoの方が簡単っぽいですね、やはり。

とはいえAPIなども公開されてる分、まだIRKITの方がカスタム出来て色々面白い印象。
もしGoogleHomeしか持っていない方は、是非どうぞ。


SONYの電子タグMESHを繋いだりもできるらしい。
MESHは、IFTTT対応しているので拡張性が高い。


あと自分の声でなくても「OK Google」などとキーワードを言えば他人でも反応する。
音声を使いIFTTT経由でテレビを消したり、明かりをつけたりできる。
ただアカウントに結びついたサービス(Gmailなど)の操作ができるかどうかは今のところ確認していない。

今のところこんな感じです。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Google Home
価格:15120円(税込、送料無料) (2017/10/10時点)


*1:アプリで探る方法もあるとのこと