はじめに
2017年 Node-RED Advent Calendarの14日目の記事です。
タイトルからして不穏な感じで申し訳ありません。初投稿かつNode-RED初心者なのですが、検証中のところで時間切れとなり、途中結果のご報告となります。
実施したいこと
Google home に話しかける
→ IFTTT(Google Assistant + Webhooks)
→ **IBM Cloud(Node-red) **
→ **google-home-notifier(PC) **
→ Google Homeがしゃべる
可能ならば、その後でWatsonのAPI等を用いて、機能を拡張して行きたい。
#実施できたこと
Node-REDでデータを受け取るところまで。(後述)
現時点での知見として、そもそもGoogle HomeとIFTTTを連携させる部分が難しい。
特定のワード(”Twitter”や”Line”等)はそれなりに音声認識して連携できるが、それ以外の単語はほぼ不可能だった。
また、Twitter等のワードに続けて話をしても、タイミングの問題なのか、
「OK, Google Twitterでテストを実行して」
という会話(IFTTT連携ワード:Twitterで)も、Google Home上でうまく認識できないことが多い。
さらに、IFTTT(Webhooks)→ Node-REDについても、文字の欠落が発生する場合がある。
#1. IFTTTでの手順(簡略版)
Google Assistant 部分は省略
Webhooksについては
Using Google Home, IFTTT and Watson IoT Platform
を参考にして、Webhooks(Make a web request)の、
Content Type (optional) はapplication/x-www-form-urlencoded を選択
Body (optional) は、{{TextField}} と入力後、Applet作成
#2. Node-RED(IBM Cloud)の手順
2−1 IBM Cloud(無償)のアカウント作成 すでに利用中の場合は2-2へ
https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/
2-2 ダッシュボード画面の左上隅のボタンから、メニューを開いてIoTを選択し、IoT サービスの作成 を行う
2-3 左側メニューから、ボイラーテンプレートを選択後、Node-RED Starter をクリック
2-4 Cloud Foundry アプリの作成 画面にて必要な情報を入力し、アプリ作成
注記1) 上記2-1 のサイトで、無償利用の場合は地域に「米国南部」を選択する必要があると記載されています(2017/12/13時点)
注記2) アプリ名は、URLの一部として使用されるため、英大文字等の利用は注意
また、アプリ名は全ユーザで共有されるようで、メジャーなワードは使用不可
2-5 Node-REDの編集
作成したアプリが実行中(緑色)になったら アプリURLをクリック (実行中になるまで5分程度必要)
プラウザ上でSecure your Node-RED editorが起動するので
アカウントを入力、 node-red-dashboard を選択して Finish
Node-RED on IBM Bluemix が表示される
Go to your Node-RED flow editer ボタン押下
#3 検証手順(途中)
Google Homeに、「OK,Google Twitter テスト」 と話しかけると、Node-RED上では以下のように表示される
さいごに
PCとGoogle Homeの連携は事前に確認していたので、もう少しのような気もしますが、まだハマりどころがありそうです。
中途半端な内容で大変恐縮ですが、ここまで読んでいただき、ありがとうございました。