概要

google-home-notifierというjavascriptプログラムをPC上で走らせ、同じLAN内にあるGoogle Homeにしゃべらせることができた。


背景と目的

以前、IFTTTでGoogle Homeと家電を連携させてみたのだが、今度はしゃべらせたくなった。そこで、しゃべらせてみる。


詳細

0.方法の調査

Web上で調べたところ、こちらこちらなどにあるように、google-home-notifierというjavascriptプログラムを使ってしゃべらせることができることがわかった。そこで、私の環境でもgoogle-home-notifierを使って試してみる。


1.セットアップ

1.0 方法
  • Windows10 PCを使用
  • PCにnode.js(v8.9.1)は入っている
  • PCと同じLAN内にGoogle Homeが接続されている


1.1 VCBuild.exeのインストール

まず、こちらを参考に、

npm install -g windows-build-tools

でインストール。このとき、コマンドプロンプトを管理者権限で起動することを忘れないこと。


1.2 node-gypのインストール(必要に応じて)

私の環境の場合、binding.gypがない旨のエラーが出たので、インストールした。

npm install -g node-gyp


1.3 bonjour SDKのインストール(必要に応じて)

私の環境の場合、AppleのBonjour SDKのdns_sd.hというファイルがない旨のエラーが出たので、こちらを参考に、インストールした。

具体的には、

  • Apple DeveloperサイトにApple IDでサインインし、Bonjour SDKをダウンロード。
  • インストーラを起動してインストール。
  • コントロールパネルから環境変数の編集を開き、ユーザー環境変数にBONJOUR_SDK_HOMEを追加。値は、C:\Program Files\Bonjour SDKとする。

という手順。なお、コマンドプロンプトを再起動してから1.4に進むこと。


1.4 google-home-notifierのインストール

次に、以下のコマンドでgoogle-home-notifierインストール。

npm install google-home-notifier


2.google-home-notifierを使ったプログラムを作成

こちらを参考に、こんにちはを言わせるプログラムを作成。GoogleHomeのIPアドレスは、Wi-Fiルータの管理画面等で調べておくこと。

var googlehome = require('google-home-notifier');
var language = 'ja';

// IPアドレスの設定
googlehome.device('Google Home', language).accent(language).ip('xxx.xxx.xxx.xxx');

// しゃべらせる
googlehome.notify('こんにちは', function(res) {
  console.log(res);
});

3.動作確認

上記をnodeで実行したところ、

ディロン!...こんにちは。

としゃべった。というわけで、成功だ。ただし、ディロンからは1秒くらい間が開く。

外部からのリクエストでしゃべらせるためには、こちらなどにあるとおり、ローカルHTTPサーバーを外部に公開することになるが、MQTTクライアント(AWSのAWS IoTなど)を動作させるという手もある気がする。

まとめ

Google Homeをしゃべらせることができた。