google-home-notifierのセットアップ

昔は、AIスピーカーともいわれてきたGoogle Homeはラジオ代わりにいいです。このGoofle Homeを動かすアプリとしてスマホにはGoogle Home アプリがありますが、これを自作のアプリでできないかと勉強がてら作成しました。意外と、難しかったです。

環境

●Google Home 192.168.11.2
●Raspberry Pi 3 Model B Rev 1.2
●npm: v6.4.1
●node:v15.14.0
●ngrok:v2.3.39
参考URL



1.  Google Home/Nestを喋らせるgoogle-home-notifierの導入マニュアル [2020年12月版] 

2.    P.S. ngrokの代替手段
3.    イチからGoogleHome+RaspberryPi3+IFTTTを連携させて喋らせるまで  
4.   LINEのMessagingAPIとgoogle-home-notifierを使ってGoogleHomeを喋らせてみた
5.  Raspberry Pi にGoogle Assistant SDKを搭載して「OK Google」してみる。
6.  LINEのメッセージをGoogle Homeで読み上げる(機能強化版)
7.  LINEに送信したメッセージを、Google Homeで読み上げ、家族に通知
8.  Google Homeに「時報」と「天気の変わり目」を自動で通知させてみよう!


Google-home-notifierインストール

1.Google-home-notifier のひな型
shino@raspberrypi:~ $ cd ghome
shino@raspberrypi:~/ghome $ ls -l
合計 0

次に、https://github.com/noelportugal/google-home-notifier から
ターミナル画面から

$ git clone https://github.com/noelportugal/google-home-notifier
を入力すると下記のようにGoogle-home-notifier のひな型ができます。
shino@raspberrypi:~/ghome 

$ git clone https://github.com/noelportugal/google-home-notifier 
  
                                                
Cloning into 'google-home-notifier'...
remote: Enumerating objects: 155, done.
remote: Total 155 (delta 0), reused 0 (delta 0), pack-reused 155
Receiving objects: 100% (155/155), 26.28 KiB | 0 bytes/s, done.
Resolving deltas: 100% (84/84), done.
shino@raspberrypi:~/ghome $ ls -l
合計 4

drwxr-xr-x 3 shino shino 4096  5月 20 07:14 google-home-notifier
shino@raspberrypi:~/ghome $ cd *
shino@raspberrypi:~/ghome/google-home-notifier $ ls -l
合計 20
-rw-r--r-- 1 shino shino 1069  5月 20 07:14 LICENSE
-rw-r--r-- 1 shino shino 2404  5月 20 07:14 README.md
-rw-r--r-- 1 shino shino 2845  5月 20 07:14 example.js
-rw-r--r-- 1 shino shino 2827  5月 20 07:14 google-home-notifier.js
-rw-r--r-- 1 shino shino  507  5月 20 07:14 package.json



2.npmでインストール
$ npm install
 

npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated request@2.88.2: request has been deprecated, 
see https://git                                                                                      hub.com/request/request/issues/3142
[                  ] / reify:lodash: timing reifyNode:node_modules/ngrok Comple
[                  ] / reify:lodash: timing reifyNode:node_modules/ngrok Completed in 6195ms

3.Nodeで起動

$ node example.js 
 
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see 
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see 
Endpoints:
    http://192.168.11.2:8091/google-home-notifier
    https://7005c9e66038.ngrok.io/google-home-notifier
GET example:
curl -X GET https://7005c9e66038.ngrok.io/google-home-notifier?text=Hello+Google+Home
POST example:
curl -X POST -d "text=Hello Google Home" https://7005c9e66038.ngrok.io/google-home-notifier

******

example.jsに書かれているIPアドレスをGoogle Homeのものに変更する必要があります。

var ip = '192.168.11.2'; // default IP (Google Home)

package.jsonを開きます。

vi package.json
中を覗いていくと以下のような記述が見つかると思います。

"ngrok": "^2.2.4"
"google-tts-api": "0.0.2"
この記述を……

"ngrok": "3.2.7"
"google-tts-api": "0.0.4"

このように変更し下のコマンドでアップデートします。

npm update ngrok google-tts-api

これに合わせて、example.jsも微修正します(下記の表記は差分を示していて、「-」が削除、「+」が追加になっています)。

@@ -95,8 +95,8 @@ app.get('/google-home-notifier', function (req, res) {
   }
 })
 
-app.listen(serverPort, function () {
-  ngrok.connect(serverPort, function (err, url) {
+app.listen(serverPort, async function () {
+  const url = await ngrok.connect(serverPort);
     console.log('Endpoints:');
     console.log('    http://' + ip + ':' + serverPort + '/google-home-notifier');
     console.log('    ' + url + '/google-home-notifier');
@@ -104,5 +104,4 @@ app.listen(serverPort, function () {
     console.log('curl -X GET ' + url + '/google-home-notifier?text=Hello+Google+Home');
        console.log('POST example:');
        console.log('curl -X POST -d "text=Hello Google Home" ' + url + '/google-home-notifier');
-  });
 })




4.Google Homeに喋らせるテスト
ブラウザから
http://f-itstar.mydns.jp:8091/google-home-notifier?text=Hello World
と入力します。

ここののPDF参照下さい。
5.Nodeサーバーの自動起動方法
node example.js のようにして、google-home-notifier はサーバーとして動きますが、下記のように foeverコマンドにより
自動起動するように改良します。

$ forever start /home/shino/ghome/google-home-notifier/raspghome.js 開始 $ forever stop /home/shino/ghome/google-home-notifier/raspghome.js 停止

Google-home-notifierの応用

1.スマホから伝言 Google Home Miniの同じネットワーク環境にWebサーバー(Apache)を入れ、PHPプラグラムから 4.Google Homeに喋らせるテストの http://f-itstar.mydns.jp:8091/google-home-notifier?text=Hello Wordを起動するようにします。

2.LINE Botから伝言



作成日:18 September 2021
Mail: kamanshino@gmail.com