Remoでスマートホーム化した我が家です。Home+IFTTTを使って、LINEをするという仕組みです。Homeに喋った内容が、パパとママのLINEに通知されます。外出中のパパやママは、子供達へ返事をすることができませんでした。Homeはデフォルトでは喋ってくれる機能が(2018/2/24現在は)無いのです。Homeを、外出先から、自分が指示した言葉を喋らせたい、というのが今回のテーマです。Homeに喋らせるようにするのです。これを実現するために、google-home-notifierというNode.jsモジュール(プログラム)を利用します。Piなどの省電力なサーバがあるとなお良いでしょう。Homeへ渡して喋らせる、という構成を採用しています。Bですが、それを買う大義名分がやっとできました。Macを立ち上げっぱなしだと結構電気代かかりですし。3を手に入れたら早速MicroSDにRaspbianをインストールします。思ったけど面倒だったのでNOOBS経由でインストールしました。Piと相性が悪いものが存在するようなので注意が必要です。TOSHIBAのは大抵問題ないようなので、自分は以下のカードを利用しています。NOOBSを利用するとGUIで簡単にインストールが出来るのですが、ラズパイを初期設定するのにHDMIで繋がるディスプレイやUSBキーボード、USBマウスが必要になります(上記写真)。逆に初期設定さえ一回済ましてしまえば、sshでアクセス出来るようになるので、ラズパイに必要なのは電源のみとなります(下記写真)。Homeを自由に喋らせることに成功しました。https://xxxxxxxx.ngrok.io/google-home-notifier?text=こんにちはみたいなURLを叩くのが1番簡単な起動方法です。Homeを喋らせるという方式にしました。Homeの喋り方(イントネーション)が少し変わっているのが想定外でしたが、なかなかいい感じ。子供達も驚いてくれました。コレで(LINEなど通信手段を持たない)子供達とも双方向のコミュニケーションが取れるようになりました。以上でスマートホーム的な話を終わります。ここから先は、自分が、今回の設定で躓いたところを紹介します。どなたかの参考になれば、と。ngrokngrokはe-mansionのような多段ルータ構成でも外部からアクセスできる便利なツールです。google-home-notifierをインストールした際にngrokも同梱されていて、その存在を知ったのですがとても便利ですね。Piへ)GETやPOSTを行います。Piとの接続(トンネル)を解除してしまい、https://xxxxxxxx.ngrok.io/google-home-notifierが無効になってしまうため外部から接続できなくなってしまいます。対策としてngrokで無料のアカウントを作成します。accoutというところにauthtokenが表示されます。これをgoogle-home-notifierを起動する前にngrokへ通知してやれば、時間がたってもトンネルが解除されることがありません。具体的には以下のようなコマンドをexample.jsを起動する前に叩けばOKです。xxxxxxxxxxxxxxxxxxxxx(自分のアカウント用トークン)有料アカウントを取得するとわかりやすいサブドメイン取得できて、かつオフラインになってもそのサブドメインが確保されるので便利なのですが、まあ無料でも充分でしょう。24時間example.jsを動かしっぱなし(永続化)にするために、forever(Nodeアプリをdaemon化)を利用しています。piでgoogle-home-notifierを動かすにあたって1番苦労したのが、タイムアウト問題です。example.jsを実行して、試しに「テスト」と喋らせようとすると、以下のエラーが出ます。(timers.js:259:5)実はコレ、解決していません。起動してから20分くらい経過する(もしくは5回くらいPOSTする)と、このエラーは出なくなります。Node.jsを起動した時はダメで、そのうち出来るようになるのかは謎のままです。解決策が定まってなくて気持ち悪いけど、とりあえず現状利用できているのでよしとしておきます。今度こそ以上になります。ラズパイ、面白いですね。