半額だったのでGoogle Home Mini買ったけど、何ができるかちゃんと調べてなかったので自分用メモ。
Google HomeからSNSに投稿する
IFTTT(イフト)を使うと、プログラミングなしでできるようだ。
ちなみに、アイエフティーティーティーだと思ってました。
Node.jsでGoogle Homeに通知を送る
google-home-notifierを使って、Google Homeにpush通知する使い方。
### 適当なディレクトリを作成して移動 $ mkdir googole-home $ cd googole-home ### npmでインストール $ npm init $ npm install google-home-notifier ### vimでテスト用のスクリプト作成 $ vim index.js
index.jsはこんな感じです。メッセージと言語を変えた以外は、ほぼサンプルそのまま。
const googlehome = require('google-home-notifier') const language = 'ja'; googlehome.device('Google-Home', language); googlehome.notify('テストだよ', function(res) { console.log(res); });
nodeコマンドで実行してみた。
$ node index.js Device "Google-Home-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" at 192.168.0.5:8009 Device notified
実行して数秒後、Google Homeで通知音が鳴って、"テストだよ"と発話されました。
同一ネットワーク上のデバイスが自動で検出されて、名前に"Google-Home"を含む場合にpush通知が行われるようです。数秒のタイムラグはデバイスの検出にかかる時間も大きいと思われる。
利用シーンとしては、README.mdのListenerに書いてある手順でMacかラズパイにローカルサーバ立てといて、屋内のセンサデバイスからサーバにメッセージをPOST、Google Homeに発話させる形がよさそう。
Actions on Googleでチャットbotを作る
Dialogflowとやらを使うと、Google Homeが認識したメッセージに任意の応答を返せるようです。
つい最近までapi.aiという名称だったようで、以下の記事の手順で設定できました。 https://qiita.com/syarihu/items/53ea1a65f481f8121109qiita.com
定型文に定型文を返すだけのbotは簡単にできます。
— jyuko (@jyuko49) 2017年12月11日
Fulfillmentを使えば、DialogflowからのWebhookで結果を返すこともできるらしい。
Fulfillment | Dialogflow ES | Google Cloud
Dialogflowだけでもメッセージを複数パターン用意できるけど、WebhookすればDBやAIを使えるのでより柔軟な応答ができるはず。
Webサービスはpublicに公開されていてHTTPSで応答できないとダメなので、クラウドで立てるのが楽そうです。GoogleのドキュメントにはFirebaseやHerokuにデプロイする方法が書いてあります。たぶんAWSでやるけど。