電気と電子と電波の日記

自分のための備忘メモです

google-home-notifier

10月中旬の発売開始直後に我が家にやってきたGooglehomeですが、家族にも浸透してきました。外部からしゃべらせる実験が気になっていて、先週末時間切れだったので今週続きをやってみました。手順はほぼこの通りです。 

GoogleHomeスピーカーに外部からプッシュして自発的に話してもらいます - Qiita


f:id:t1000zawa:20171111095703j:plain

f:id:t1000zawa:20171204003703j:image

googlehomeと通信するのはRaspberryPIです。今回は、我が家で常時稼働させているRaspberryPI2を利用するのですが、CentOS7なので、apt-getで簡単にnodejsやnpmが入れられません。まずはarmv7版があるEpelレポジトリを使えるようにしました。epel.repoというファイルを作成します。

 [root@rpi2 yum]# cat > /etc/yum.repos.d/epel.repo << EOF
> [epel]
> name=Epel rebuild for armhfp
> baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
> enabled=1
> gpgcheck=0
> EOF
これでyum installコマンドでnodejsが入ったのですが、途中でエラーが出て、このあたりを参考に対処しました。

 Can't find dns_sd.h on RPi running Node 12.0 & NPM 2.5.1 · Issue #9298 · npm/npm · GitHub

npm WARN enoent ENOENT: no such file or directory, open '<root>/node_modules/supertest/package.json' · Issue #261 · visionmedia/debug · GitHub

また、libnss-mdns と libavahi-compat-libdnsd-devはパッケージが見つからずインストールしていません。(あとで気づきました)

npm installし、example.jsを実行、curlで自身にコマンドを発行します。

ようやく声を聴くことができました。 最初にチャイムが鳴って、googlehomeの通常の音声よりも合成音っぽい女声で話をしてくれます。 

その後、ルーターに穴開けて、url後にurlエンコードせずに文字列を受け渡して外部から叩けることも確認。

Webhookから任意の日本語をしゃべらせるのはまだ未確認です。

Google HomeをIFTTTと組み合わせてTwitterやLineなどと連携しよう! | ゆきの野望

 一応、serviceにして常時稼働するようにしてます。

https://yuki-no-yabo.com/combined-googlehome-with-other-services/