Google Home Notifier導入準備
Google Home Notifier導入に向けてNode.jsとnpmをインストールします。
1 2 3 4 5 6 7 | root@jetson:~# apt update root@jetson:~# apt upgrade -y root@jetson:~# apt install nodejs npm -y root@jetson:~# npm cache clean root@jetson:~# npm install npm n -g root@jetson:~# npm -v 3.5.2 |
google-home-notifierインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @raspberrypi $ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - @raspberrypi$ sudo apt-get install nodejs @raspberrypi $ sudo apt-get install git-core libnss-mdns libavahi-compat-libdnssd-dev apt install libavahi-compat-libdnssd-dev root@jetson:~# 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 | 48.00 KiB/s, done. Resolving deltas: 100% (84/84), done. root@jetson:~# cd google-home-notifier/ root@jetson:~/google-home-notifier# npm install |
GoogleTTSの仕様変更対応
GoogleTTSの新バージョンがリリースされており、このままでは、うまく動作しません。この手順を実施していないと、以下のエラーメッセージが表示されます。
Error: get key failed from google
at /root/google-home-notifier/node_modules/google-tts-api/lib/key.js:27:13
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
GitHubでクローンしたレポジトリのとオプフォルダーにある、package.jsonのバージョン情報を変更。(0.0.2から0.0.4に変更)
1 | root@jetson:~/google-home-notifier# vi package.json |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <span class="p">"keywords": [ "google home", "notifications", "notifier" ], "license": "MIT", "dependencies": { "body-parser": "^1.15.2", "castv2-client": "^1.1.2", "express": "^4.14.0", "google-tts-api": </span><span style="color: #ff0000;">"0.0.4",// ここを0.0.4に書き換える</span><span class="p"> "mdns": "^2.3.3", "ngrok": "^2.2.4" }, </span> |
pakage.jason変更後に、google-tts-apiのアップデートを実施。
1 2 3 | root@jetson:~/google-home-notifier# npm update google-tts-api google-home-notifier@1.2.0 /root/google-home-notifier └── google-tts-api@0.0.4 |
Webhook(WEBリクエスト)形式での運用準備
google-home-notifierフォルダにあるexample.jsを流用して、以下の形式でのリクエストによりGoogleホームより音声出力を実現します。以下のコマンドで、WEBアクセスの待ち状態となります。
1 | root@jetson:~/google-home-notifier# nodejs example.js |
起動時に以下のWARNINGが出るのですが、ほかの方もWARNINGが出たまま運用しているようです。(WARNINGを消す情報は見つけられませんでした)
1 2 3 4 5 6 | *** 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 <http://0pointer.de/blog/projects/avahi-compat.html> *** 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 <http://0pointer.de/blog/projects/avahi-compat.html>Endpoints: |
google-home-notifierフォルダにあるexample.jsをコピーして、実際に利用するスクリプトを準備します。
- serverPort:NVIDIA Jetson Nanoの受付ポート番号
- deviceName:Google Homeのニックネーム
- ip:Google HomeのIPアドレス
- 言語設定を2か所 'ja' に変更します。
1 2 3 4 5 6 7 | const serverPort = @PORT_NUM@; // default port var deviceName = 'Google-Home-2F'; var ip = '192.168.xxx.xxx'; // Google-Home-IP var language = 'ja'; // default language code |
今回は3台分のGoogle Home Miniを運用したいので、example.jsを3個コピーして、3個のスクリプトを起動する方式にしました。
- Google-Home-1:192.168.xxx.81:ポート番号9081
http://192.168.xxx.xxx:9081/google-home-notifier?text= Hello+Google+Home - Google-Home-2:192.168.xxx.82:ポート番号9082
http://192.168.xxx.xxx:9082/google-home-notifier?text=Hello+Google+Home
- Google-Home3:192.168.xxx.83:ポート番号9083
http://192.168.xxx.xxx:9083/google-home-notifier?text=Hello+Google+Home
forever導入による常時起動化とサーバー再起動時の自動起動
foreverモジュールの導入方法
1 | root@jetson:~/google-home-notifier# npm install -g forever |
起動時のコマンドは、以下となります。
1 | /usr/local/bin/forever start /home/user/google-home-notifier/google-home-1.js |
再起動時にスクリプトが自動起動するようにクーロン登録します。
1 | root@jetson:~/google-home-notifier# crontab -e |
以下を登録します。
1 2 3 | @reboot /usr/local/bin/forever start /home/user/google-home-notifier/google-home-1.js @reboot /usr/local/bin/forever start /home/user/google-home-notifier/google-home-2.js @reboot /usr/local/bin/forever start /home/user/google-home-notifier/google-home-3.js |
foreverコマンドは、「stop」「restart」がそれぞれ停止と再起動となります。
「list」では、foreverで実行しているNode.jsアプリのパスや実行時間、ログファイルの保存場所などの詳細情報を出力します。