Raspberry Piを使ってGoogle Homeに時報サービスをしてもらいましょう

Google AIY Projects 「Voice Kit」が日本上陸! 早速、組み立ててみたよ!“、

ダイソンのPure Hot + CoolをGoogle AssistantとHomeKitでリモコン操作できるようにしてみました”、

Google Home Mini + Chromecast コーラルを使ってNetflixやYouTubeを音声で楽しんでみました“の続きです。

 

Google Home“って、喋らないと何もしてくれないなあ。たまには、自分で何か役に立ちそうなことを喋ってくれないかな?と思っていたら、”Raspberry Pi“を使うと、”Google Home”に喋らすことができそうなんので、試してみることにしました。

 

(1) google-home-notifierというライブラリをインストールします

“Raspberry Pi”に”google-home-notifier“というJava Scriptのライブラリをインストールします。インストール手順は、GitHubのページに掲載されていますので、その通りに実行すればOK。

 

互換性があるnodejsをインストールします。

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

sudo apt-get install nodejs

インストールが問題なく完了したことをバージョンを表示してチェックしておきます。

node -v

npm -v

必要なライブラリをインストールします。

sudo apt-get install git-core libnss-mdns libavahi-compat-libdnssd-dev

google-home-notifier“をインストールします。

npm install google-home-notifier

“node_modules/mdns/lib/browser.js”の中身を編集します。

nano node_modules/mdns/lib/browser.js

 

Browser.defaultResolverSequence = [

  rst.DNSServiceResolve(), 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo({families:[4]})

, rst.makeAddressesUnique()

];

 

“/home/pi/node_modules/google-home-notifier/example.js”の中身を編集します。

deviceNameの箇所を、ご自身がGoogle Homeに付けた名前に変更します。

 

“/home/pi/node_modules/google-home-notifier/google-home-notifier.js”の中身を編集します。

deviceAddressの箇所を、ご自身がGoogle Homeに割り当てられたIPアドレスに変更します。

langgooglettsaccentの箇所を、”ja“に変更します。

 

(2) Google Homeに時報を喋ってもらうようにします

先人の知恵を拝借すると、”googlehome-time-signal“を使えば、簡単に時報を喋ってくれるようになるそうなんですが、うまく動作してくれませんでした。

というわけで、自分で、時報を喋ってくれるJava Scriptのスクリプトを作ってみます。

nano googlehome-time-signal.js

 

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

var language = 'ja'; // if not set 'us' language will be used

googlehome.device('書斎', language); // Change to your Google Home name

// or if you know your Google Home IP

//googlehome.ip('192.168.1.2', language);

var now = new Date();

var hours = now.getHours();

googlehome.notify(hours.toString() + ’時をお知らせします ', function(res) {

  console.log(res);

});

 

さあ、スクリプトを実行してみましょう。

node googlehome-time-signal.js

 

(3) 時報スクリプトを定時に実行するようにします

crontabを活用して、毎時ジャストタイムでGoogle Homeが時報を喋ってくれるようにします。

crontab -e

 

0 * * * * node googlehome-time-signal.js

 

sudo /etc/init.d/cron start

 

これで、取り敢えずバージョンが完成しました。ただ、このままだと、真夜中や早朝でも、時報を喋ってくれちゃうので、自作の”googlehome-time-signal.js”に手を入れないとね。

 

p.s>

普通に使っている場合は良いのですが、POOHのように、外出時には、Homekitで、使わない電源コンセントをオフにしたりしていると、Google HomeのIPアドレスがDHCP的に変わってしまうことがあります。そうすると、今回、ご紹介した範囲では、うまく動作しなくなってしまいます。Google HomeのIPアドレスが変わってしまったら、”google-home-notifier.js”の”deviceAddress”も修正する必要があります。ちょっと調べた感じでは、Google HomeのIPアドレスを固定にはできないようなので、スクリプトの方で対応するしかなさそうなんですが…

 

p.s> 2018年9月29日追記。

2018年9月21日頃から、Google Homeが指定している通りに喋らないなってしまったので、ネットで調べてみたところ、Google側の仕様変更によるものらしいことが分かりました。暫定的な対処とのことですが、以下のページに記載の通り修正してみたところ、正常に動作するようになりました。

https://qiita.com/ezmscrap/items/24b3a9a8548da0ab9ff5

 

p.s> 2018年12月28日追記

あれ?そう言えば、最近、Google Homeの時報を聞いてないなあ?と思い、ネットで調べてみたところ、やはりGoogle側の仕様変更によるみたいなので、以下のページに記載の通り修正してみたところ、正常に動作するようになりました。

https://qiita.com/k_keisuke/items/2974ddaf2bf24a3ea32e

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Google Home Mini チョーク(グーグル ホーム ミニ チョーク)
価格:6480円(税込、送料無料) (2018/1/22時点)

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Google Home Mini チャコール(グーグル ホーム ミニ チャコール)
価格:6480円(税込、送料無料) (2018/1/22時点)

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Google Home(グーグル ホーム)
価格:15120円(税込、送料無料) (2018/1/22時点)

 

Adobe Stock“でベストショットな写真素材を販売中です。是非ご覧下さい。
ホームページ”THE POOH FILES”にも是非お立ち寄り下さい。

tomohiko

長年に渡りMacintosh向けの自作アプリを作り続けているPOOHです。最近はiPhone,iPad向けアプリ開発にも挑戦中。グルメ、旅行、露天風呂、写真、サイクリング、映画、STAR TREKが大好き。レトロでSFなおもちゃを大量にコレクション。プレーリードッグと同居中。

おすすめ

コメントを残す