ラズパイ3にgoogle-home-notifierを入れるメモ

Raspberry Pi 3 にgoogle-home-notifier入れようと思ったら微妙に手間取ったので、メモ。

$ npm init
$ npm install google-home-notifier

※「fatal error: dns_sd.h: そのようなファイルやディレクトリはありません」 ってエラーが出た場合は下記を実行してから、再度インストールする。
$ sudo apt-get install libavahi-compat-libdnssd-dev

Goome homeのアドレスをサクッと調べるために、「multicast-dns」も入れとく。
$ npm install multicast-dns
参考サイト:
Raspberry PiからGoogle Homeを喋らせる
Google Homeの名前とIPアドレスを検出する方法

DialogflowでGoogle Home用アプリを作ってみた結果報告

Google Home miniが事務所に来たので、色々な参考サイトを見ながら、Dialogflowで早速アプリを作ってみた。
が、実際の画面と参考サイトの説明にズレが出てたので、苦労した点をメモ。

●intents作成画面に、「User Says」って項目が無い!
「Training phrases」って項目に変更になった模様。
●Integrations画面に「Google Assistant」のon/offボタンがない
デフォルトでon状態になってて、切り替え不要になった模様。
●intents作成画面の「FulfilIntent」項目に、「Use webhook」ってチェックボックスが無い!
“Enable webhook call for this intent”って表記に変更になった模様。
●FulfilIntentのinline Editorにサンプルスクリプト入れても、エラーで動かない!
インスタンスの作成方法やパラメータの取得方法が、かなり変わってる模様。
とりあえず、シンプルなテンプレソースはこんな感じ。(オレンジの部分は、良くわからんのでそのまま使う。)

'use strict'; const functions = require('firebase-functions'); const {WebhookClient} = require('dialogflow-fulfillment'); const {Card, Suggestion} = require('dialogflow-fulfillment'); process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => { const agent = new WebhookClient({ request, response });
function yourFunctionHandler(agent) { //Actionで取得したパラメータを取得 let paramVal = agent.parameters['PARAMETER NAME']; //ログにトレースする console.log("PARAMETER NAME = " + paramVal); //結果を喋らせる agent.add(paramVal + 'です'); } let intentMap = new Map(); //ファンクションをintentに登録する intentMap.set('INTENT_NAME', yourFunctionHandler); agent.handleRequest(intentMap); });