2018年7月4日水曜日

Google Homeでプッシュ通知が可能になる「GHKit」を試す(初期設定編)

 現行のスマートスピーカーの弱点の一つに、プッシュ通知ができない、あるいはできても機能が貧弱なことが挙げられる。例えば「Amazon Echo」は、最近になってスキル側で通知機能の実装を始めたが、メールの受信通知などスマートフォンでは当たり前のプッシュ通知がまだできない。

 一方の「Google Home」は、今のところプッシュ通知能自体が搭載されていないが、「google-home-notifier」など外部モジュールを使ってあの手この手でプッシュ通知を実現することは可能で、2017年末にGoogle Homeが発売されて以来、多くのユーザーがその構築にチャレンジしている。ネットでざっと検索しても、さまざまな記事が見つかる。

 とはいえ、これらの設定にあたっては多少なりともプログラミングの知識が必要になるため、初心者にとってハードルが高いわけだが、こうした場合に試してみたいのが、てとてとて合同会社が販売している「GHKit」なるキットだ。

 これは「Raspberry Pi」をベースに上記の基本設定をあらかじめ済ませたキットで、Google Homeを設置しているネットワーク環境に参加させれば、Google Homeにプッシュ通知が可能になる。具体的には、メールを受信すると件名を読み上げてくれたり、雨が降りそうなときにそれを知らせてくれたりする。

 これらは「myThings」や「IFTTT」との連携によって実現していることから、工夫次第でさまざまな通知が行える。スキルごとの通知機能しか用意されないAmazon Echoよりも、自由度は格段に高い。今回はこのキットについて、概要および初期設定の手順を紹介する。

Raspberry Piをベースに設定済みのキット(単体でも提供)

 本キットは最小構成がmicroSDのみ(税込1800円)、標準構成がRaspberry PiRaspberry Pi 3Bをケースに入れたもの)とmicroSDのセット(税込19440円)という2つのラインアップになっている。

 要するにGHKitの本体に相当するのはmicroSDに書き込まれたプログラムで、それを動かすためのハードウェアにあたるラズパイことRaspberry Piは自前で用意してもいいし、なければセットで購入すればいいというわけだ。

 設置方法としては、Google Homeに物理的につなげるのではなく(つなげようもない)、Google Homeが参加しているネットワークに本キットを参加させ、連携させるという手順になる。といってもGoogle Home側で行うことは何もなく、本キット側で設定を行うだけで、Google Homeがプッシュ通知を受け取れるようになるというのが面白い。

 なお接続方法だが、Raspberry Pi 3Bは有線LANポートを搭載する他、無線LANWi-Fi)にも対応するので、接続方法はどちらでも問題ない。ただし初期設定は必ず有線LANで行う必要があり、その際のLANケーブルは自前で用意する必要がある。

ネットワークに参加させるだけでGoogle Homeがしゃべり出す

 設定は専用のスマホアプリ「GHKit」を用いて行う。まずはスマホアプリをダウンロードして使えるようにした上で、本製品にACアダプターを接続し、さらにLANケーブルを使って本製品をルーターもしくはハブに接続する。

 続いてスマホアプリを起動し、製品購入時に同社からメールで受領した「GHKit ID」をスマホアプリに入力して「送信」を行う。ボタンのラベルは「送信」となっているが実質的にはこれはログインに相当する。

 正常にGHKit IDが入力されていれば、メッセージの送信やネットワーク内のGoogle Homeの指定、Raspberry PiWi-Fi設定が行える画面が開く。開かなければGHKit IDが間違っているか、LANケーブルがつながっていないなどの理由でネットワークに接続できていないことが考えられる。

 実はネットワーク構成によっては、もうこの段階でGoogle Homeからジングル音とともに「GHKitです」という男性声のメッセージが読み上げられる場合もあるのだが(筆者宅の環境では読み上げられなかった。理由は後述)、ひとまずWi-Fiでの接続作業を終えてしまうことにする。

 スマホアプリの最下段から画面を「Raspberry Pi」に切り替え、ネットワーク名(SSID)とパスワードを入力し「送信&再起動」をタップした後、Raspberry PiからLANケーブルを取り外す。ちなみにSSIDは自動取得してくれないので、手動で入力する必要がある。併せてACアダプターを抜き差しして再起動を行う。

 再起動が完了すると、GHKitWi-Fiに接続されているはずなので、再度スマホアプリを起動して「GHKit ID」を使ってログインできるかを確かめる。問題なければ、「メッセージ送信」に任意のテキストを記入して「送信」ボタンを押してみよう。Google Homeがその音声を読み上げてくれれば、まずは初期設定が完了というわけだ。

「うまく読み上げられなければIPアドレス指定」で解決

 ここまでが初期設定で、myThingsIFTTTを使った通知の設定手順については次回あらためて紹介するが、筆者宅はネットワーク環境が特殊なせいで、ここまでの初期設定すら試行錯誤したので、その過程をメモとして残しておく。かなりレアな事例だとは思うが、トラブってうまくいかない人は何らかの参考になれば幸いだ。必要でない方は読み飛ばしてほしい。

 筆者宅は、メインとなるWi-Fiルーターに別のモバイルWi-Fiルーターをつなぎ、5GHz帯の機器は前者に、2.4GHz帯の機器は後者に接続して使用している。これは前者のWi-Fiルーターが2.4GHz帯のデバイスとの相性が悪いためで、IPアドレスは前者が「192.168.0.***」、後者が「192.168.111.***」となっている。

 また筆者はGoogle Homeと「Google Home Mini」を各1台所有しており、いずれも前者の「192.168.0.***」のネットワークに参加させている。今回、GHKitを参加させたネットワークは「192.168.111.***」なので、最初の時点では、別のグループに参加していたことになる。

 この状態では、接続完了後に「GHKitです」というメッセージは読み上げられず、Google HomeMiniのどちらも全く無反応のままだ。スマホアプリ側でGoogle HomeMiniIPアドレスを指定しても(試した時点では)やはり反応がなかった。

 この時点で、恐らく参加先ネットワークが異なっているのが原因だろうと予想し、Google Home Miniを取り外し、GHKitと同じ「192.168.111.***」のネットワークに参加させてみたのだが、やはり無反応なままだった。その後、GHKitをいったん有線接続に戻したり、スマホの接続先を2.4GHzWi-Fiに変更してみたりと試行錯誤したのだが、状況は変わらない。

 最終的には、GHKitGoogle Home Miniが同じネットワークに参加している状態で、スマホアプリ側でGoogle Home MiniIPアドレスを指定することで無事にメッセージが読み上げられたのだが、いったん読み上げが成功した後は、別のネットワークにつながっているGoogle HomeIPアドレス指定で読み上げられるようになり、どうも挙動が謎のままだ。

 また、いったん読み上げが成功した後は、同じネットワーク内のGoogle Home MiniIPアドレスを指定しなくとも自動認識するようになったが(これも謎である)、さすがに別ネットワークに属しているGoogle Homeに読み上げさせるには、IPアドレスの指定が必須のようだ。そこまで自動的に探しに行くことは考えられないので、これはまあ当然だろう。

 いずれにせよ、うまく読み上げられない場合、Google HomeMiniIPアドレスを指定してやるというのが、どのケースにおいても手っ取り早く、かつ確実性の高い解決策だといえそうだ。ちなみにスマホについては、GHKitのスマホアプリにログインさえできれば、どのネットワークに接続されていても設定は可能なようなので、参考にしていただきたい。

0 件のコメント:

コメントを投稿