帰るコールをGoogle Homeでやりたい!
帰るコールしてますか?!私はLineで
今○○駅、○○発で帰るよ。
と会社帰りにやっている。マメでしょ(^^;
で、これをGoogle Home的にやりたい!と思いました。
それにはまず、Google Homeに喋ってもらわないとね!!
と言っても何をすれば良いのか???な状態なので
Google先生に聞いてみると
「GoogleHomeスピーカーに外部からプッシュして自発的に話してもらいます」
と教えてくれました。ありがとうございます。
「google-home-notifier」を使って喋らせるようです。
早速、参考にしてやってみます。
手元に役割を終えた初代RaspberryPiが眠っていたので
それを使うことにしました。
1.Raspbianをインストール
2017-09-07-raspbian-stretch-lite.img
をダウンロードしてインストールする。
その後
- IPアドレスの固定
- アップデートとアップグレード
- ロケール、タイムゾーンの変更
- SDカードのエリア拡張
2.google-home-notifierに必要なソフトをインストール
1)Gitをインストール
インストールに必要となるGitをインストールする。
pi@raspberrypi:~ $ sudo apt-get install git
・・・
pi@raspberrypi:~ $ git --version
git version 2.11.0
2)Node.jsをインストール
実行に必要となるNode.jsをインストールする。
これが意外に難しかった。
Google先生に聞きながら何回もやり直して
「Raspberry Pi に Node.js をインストールする(nvm利用)」
を参照しながら行ってやっと成功しました。
①古いnodeをアンインストールする。
pi@raspberrypi:~ $ sudo at pt-get autoremove node.js
②nvmをインストールするディレクトリを作成し属性変更する。
pi@raspberrypi:~ $ sudo mkdir /usr/local/nvm
pi@raspberrypi:~ $ sudo chmod 777 /usr/local/nvm
③nvm.gitリポジトリのクローンを作成する。
pi@raspberrypi:~ $ git clone https://github.com/creationix/nvm.git /usr/local/nvm
④nvmを使えるようにする。
pi@raspberrypi:~ $ source /usr/local/nvm/nvm.sh
⑤nvmでインストールできるnodeのバージョン一覧を表示する。
pi@raspberrypi:~ $ nvm ls-remote
v6.12.2 (Latest LTS: Boron)
v8.9.3 (Latest LTS: Carbon)
v9.2.1
など表示される。
⑥nodeをインストールする。
v9.2.1,v8.9.3はエラーがいっぱいでインストールできなかったよ。。。(T_T)
なのでv6.12.2をインストールした。
pi@raspberrypi:~ $ nvm install nvm install v6.12.2
⑦node, npm のバージョンを確認する。
pi@raspberrypi:~ $ node -v
v6.12.2
pi@raspberrypi:~ $ npm -v
3.10.10
⑧ログイン時にnvm,nodeの起動するように設定する。
pi@raspberrypi:~ $ sudo vi /etc/profile.d/nvm.sh
修正箇所をcatしました。
pi@raspberrypi:~ $ cat /etc/profile.d/nvm.sh
source /usr/local/nvm/nvm.sh
3.google-home-notifierをインストール
1)インストール前処理
RaspberryPiの準備があります。
pi@raspberrypi:~ $ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
pi@raspberrypi:~ $ sudo apt-get install nodejs
pi@raspberrypi:~ $ sudo apt-get install git-core libnss-mdns libavahi-compat-libddnssd-dev
2)本体のインストール
本体部分はListenerのところに記載されています。
pi@raspberrypi:~ $ git clone https://github.com/noelportugal/google-home-notifier
pi@raspberrypi:~ $ cd google-home-notifier
pi@raspberrypi:~ $ npm install
3)インストール後処理
browser.jsの修正が必要です。
pi@raspberrypi:~/google-home-notifier $ vi node_modules/mdns/lib/browser.js
修正箇所をdiffしました。
pi@raspberrypi:~/google-home-notifier/node_modules/mdns/lib $ cat browser.js.diff119c119
< , 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo()
---
> , 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo({families:[4]})
4.google-home-notifierを設定する。
1)Google Homeのデバイス名とIPアドレスを調べる。
デバイスの設定画面を表示するとデバイス名は中程に、
私のはlivingroomです。
IPアドレスは一番下に表示されています。
私のは192.168.3.28です。
2)example.jsにデバイス名とIPアドレスを指定する。
pi@raspberrypi:~ $ cd google-home-notifier
pi@raspberrypi:~/google-home-notifier $ vi example.js
修正箇所をdiffしました。
pi@raspberrypi:~/google-home-notifier $ cat example.js.diff
8,9c8,9
< var deviceName = 'Google Home';
< var ip = '192.168.1.20'; // default IP
---
> var deviceName = 'livingroom';
> var ip = '192.168.3.28'; // default IP
以上で設定完了です。喋らせてみます。
1)サーバを実行します。
「&」を付けてバックグラウンドで実行させると便利です。
pi@raspberrypi:~/google-home-notifier $ node example.js &
[1] 10362
pi@raspberrypi:~/google-home-notifier $ *** 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/avahi-compat?s=libdns_sd&e=node>
*** 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/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
Endpoints:
http://192.168.3.28:8091/google-home-notifier
https://23f67145.ngrok.io/google-home-notifier
GET example:
curl -X GET https://23f67145.ngrok.io/google-home-notifier?text=Hello+Google+Home
POST example:
curl -X POST -d "text=Hello Google Home" https://23f67145.ngrok.io/google-home-notifier
こんな感じで実行されます。
いっぱいワーニングが出てますが気にしないで良いみたいです^^;
使い方としてGET exampleとPOST exampleの2種類が表示されています。
POSTを使った方が指定しやすいですね。
2)クライアントからサーバにPOSTする。
サンプルをそのままコピペです^^;
pi@raspberrypi:~/google-home-notifier $ curl -X POST -d "text=Hello Google Home" https://23f67145.ngrok.io/google-home-notifier
上手く処理されると
{ text: 'Hello Google Home' }
Device notified
livingroom will say: Hello Google Home
と表示されて喋りました!
やった~。ついに喋りました!!先人の皆さんありがとうございます。
録画してみました。
次は日本語だ。今日はここまで。
0 件のコメント:
コメントを投稿