Androidのメモとか

ポキオの日記です。今日も遅延してない。

google-home-notifierをRaspberry PiにインストールしてGoogle Home Miniを喋らせる(追記)

今更ですが。

google home mini with google-home-notifier on Raspberry Pi

Google Homeをつかってみます

ちょっと前に買ったものの、通電したまま部屋に放置していました。そろそろ触ってあげないとかわいそうなので、触ってあげます。

[asin:B01N10FAFU:detail]

Google Homeの制御には、皆さんおなじみのgoogle-home-notifierを使っていきます。

github.com

これをGoogle Homeと同一ネットワーク上にいるRaspberry Pi上で動かしてみます。

準備

jsとかnodeとかnpmとかでゴニョゴニョするということなので、とりあえずnodeを最新にしていきます。面倒なので、update-nodejs-and-noderedというコマンドでそれなりに新し目の環境にします。

$ update-nodejs-and-nodered 

Node-REDも新しくなって、一石二鳥ですね。

Fetching Node-RED update.

(省略)

This can take 20-30 minutes on the slower Pi versions - please wait.

  Stop Node-RED                       ✔
  Remove old version of Node-RED      ✔
  Remove old version of Node.js       ✔
  Install Node.js for Armv6           ✔   Node v8.11.2   Npm 5.6.0
  Clean npm cache                     ✔
  Install Node-RED core               ✔   0.18.5 
  Move global nodes to local          -
  Install extra Pi nodes              -
  Npm rebuild existing nodes          ✔
  Add menu shortcut                   ✔
  Update systemd script               ✔
  Update update script                ✔

(省略)

はい、よしなに新しくなりました。

$ npm install google-home-notifier

で、google-home-notifierをインストールします。これで完了。

お喋りするよ!

ここを参考に、ざっくりJSでプログラムを書いてみます。

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

googlehome.device('Google Home Mini', language);
googlehome.ip('192.168.xxx.xxx');

googlehome.notify('こんにちは!ポキオです!', function(res) {
  console.log(res);
});

後述しますが、Bonjourが上手くワークしてないようで、機器名からアドレスを解決出来てなかったようなので、アドレスを直打ちしています。

$ node pokio.js

で、こんな感じでJSを実行します。

*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
Device notified

Bonjour関係で怒られますが、Device notifiedと表示された後に、Google Homeから効果音が鳴り、「こんにちは!ポキオです!」と喋ります。若干ポキオのイントネーションがアレですが、とりあえず喋りました!


msdnが効かなかったのは、この手順を踏んでいなかったためでした

その他、気をつける点をまとめました。

relativelayout.hatenablog.com

「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。