EnOceanのトイレセンサー「スイッチストライクエアー」を使ってGoogle Homeに通知してもらうようにしました。
コチラの記事で信号を受信するところは確認してください。
2019-02-07 更新
google-tts-apiのバージョン変更
完成イメージ
EnOceanのスイッチストライクエアーを使ってリアルタイムにトイレの状況をGoogle Homeが通知してくれるデモ#GoogleHome #EnOcean #スイッチストライクエアー pic.twitter.com/YT2acVfdKQ
— がおまる@スマートスピーカーアプリ開発入門発売中! (@gaomar) 2018年10月30日
1. Node-REDにgoogle-home-notifyをインストールする
Node-REDから同じwi-fiに接続されているGoogle Homeにしゃべらせるためのモジュールをインストールします。
1-1. Manage paletteをクリック
右上のハンバーガーメニューからManage paletteをクリックします。
1-2. google-homeで検索する
Installタブをクリックして、検索窓からgoogle-homeを入力して検索します。
node-red-google-home-notifyがあるので、右下にあるinstallボタンをクリックします。
1-3. google-home-notifyノードを設置する
インストールが完了するとoutputカテゴリにgoogle-home-notifyノードが表示されているかと思います。
フローエディタにドラッグアンドドロップしてください。ドラッグアンドドロップしたノードをダブルクリックして設定を行います。
1-4. Google HomeのIPアドレスを設定する
Google Homeアプリからしゃべらせたい端末のIPアドレスを確認します。
IPアドレスをそのまま入力します。言語は接続が完了しないとEnglishしか選べません。
1-5. 一旦デプロイして、日本語に設定する
一旦デプロイして、google-home-notifyノードがReadyになることを確認します。
ノードをダブルクリックすると今度は言語のプルダウンリストが更新されてJapaneseが選択できるようになります。
1-6. templateノードでGoogle Homeにしゃべらせる言葉を設定する
templateノードをドラッグアンドドロップして、Google Homeにしゃべってもらう言葉を指定します。
payload.wordに前回の記事で指定した言葉が格納されています。
1-7. ノードをつないでデプロイする
各ノードを下記のようにつないでデプロイしてください。これでスイッチストライクエアーを押下する毎にGoogle Homeがしゃべりだします。
注意点
google-home-notifyノードがget key failed from google
と表示されることがあります。
これはgoogle-home-notifyで使っているgoogle-tts-apiのバージョンが古いからです。
google-tts-apiをアップデートする
Node-REDのインストールしているフォルダへ移動してpackage.jsonファイルを直接編集する必要があります。
$ cd ~/.node-red/node_modules/google-home-notify
$ vi package.json
// before
"dependencies": {
"bluebird": "3.5.1",
"castv2-client": "^1.2.0",
"google-tts-api": "0.0.2-alpha.1" // ←ここのバージョンが古い
},
// after
"dependencies": {
"bluebird": "3.5.1",
"castv2-client": "^1.2.0",
"google-tts-api": "0.0.4" // 0.0.4に変更する
},
npm updateする
編集が終われば、npm updateコマンドでgoogle-tts-apiを更新します。
$ npm update
まとめ
Google Homeのnotifyが最近更新されたので、このような手動アップデートが必要でしたが、
そのうち更新が反映されるかと思います。
Node-REDを使えば簡単にGoogle Homeと連携することができます。
システム化のご検討やご相談は弊社までお問い合わせください。
https://i-enter.co.jp/contact/