Androidスマホ/タブレットにTermux/google-home-playerをインストールしてアラーム指定日時に各部屋のGoogle Home(Google Nest)を喋らせる
今回は各部屋に置いてある複数台のGoogle Home(Google Nest)を喋らせます
今回はAndroidスマホ・タブレットを直接喋らせるのではなく、「各部屋に置いてある複数台のGoogle Home(Google Nest)を喋らせる」方法について書きます
前回の記事の続きになります
前回の記事「Androidスマホ/タブレットにTermuxをインストールしてアラーム指定日時に自由に喋らせる」の続きになります
Androidスマホ/タブレットだけを使ってAndroid自体にアラーム指定日時に喋らせるだけであれば前回の記事だけで終了なのですが、今回はGoogle Home(Google Nest)のスマートスピーカーに喋らせる方法。更に1台ではなく各部屋にある複数台のGoogle Home(Google Nest)に喋らせる方法について書いてみます
(※)前回の記事の続きなので、前回の記事の設定が完了している事が前提になります
(前回の記事)
Google HomeのIPアドレスを取得する
1.Amazon FireタブレットにはGoogle Playが入っていませんので、他のスマホ・タブレットなどでGoogle Playから「Google Home」アプリをインストールして起動します
2.この例では「ファミリールーム」と「キッチン」の2台のGoogle Homeがありますが、1台ずつのIPアドレスを確認してメモしておきます
まずは「ファミリールーム」をタップします
3.画面右上の設定アイコンをタップします
4.「デバイス情報」をタップします
5.この例ではGoogle HomeのIPアドレスが192.168.1.175である事をメモしておきます
6.同様に他の部屋のGoogle HomeのIPアドレスもメモしておきます
「キッチン」のIPアドレスは同様の確認をした結果192.168.1.215でした
gitのインストール
(※)以下のインストール作業はtermux上で行います(もしくはSSH接続して行います)
1.下記のコマンドでgitをインストールします
pkg install git
node.jsとnpmのインストール
1.下記のコマンドでnode.jsとnpmをインストールします
pkg install nodejs
google-home-playerのインストール
1.下記のコマンドを実行します
(※)成功するとホームフォルダ(~) = (/data/data/com.termux/files/home)の下に
google-home-player
フォルダができます
lsコマンドで確認できます
cd ~/
git clone https://github.com/mihyaeru21/google-home-player.git
ls
2.続いて下記のコマンドを実行します
cd google-home-player
npm install
npm audit fix
3.下記のコマンドでexample.jsを編集します
ls
nano example.js
4.IPアドレスの部分を(メモしておいた)Google HomeのIPアドレス(どれか1台)に書き換えて
Ctrl + X
Y
Enter
キーで保存します
5.下記のコマンドを入力して、数秒待って
「ファーストテキスト、セカンドテキスト、ファイナルテキスト」とGoogle Homeが喋ったら設定完了です
node example.js
6.nano say1.jsと入力して空のnanoエディタを開きます
nano say1.js
7.下記のコードを(SSH接続なら)コピペするか、(スマホ直接操作なら)入力してください
(※)say1.jsならIPアドレスに1台目のGoogle HomeのIPアドレスを入力してください
(※)Google Homeが2台以上ある場合は、say2.js、say3.js、・・・
と同じ事を繰り返してIPアドレスの部分だけ対応するGoogle HomeのIPアドレスに書き換えてください
var GoogleHomePlayer = require('.');
var ip = '192.168.1.175'; // 1台目のGoogle HomeのIPアドレスを入力してください
var googleHome = new GoogleHomePlayer(ip, 'ja');
googleHome
.say(process.argv[2], 'ja', true)
.catch(function(err) {
console.error(err);
});
Ctrl +x
Y
Enterキー
で保存します
8.下記のコマンドを入力してGoogle Homeが喋るか?確認してください
node say1.js こんにちは
9.下記のコマンドを入力してホームフォルダに戻ってからcrontab -eを実行します
cd ~/
crontab -e
10.crontabの既存の設定があったら全ての行の先頭に#を付けてコメントアウトするか、もしくはCtrl+Kを何回も押して全ての行を削除してください
(※)Android自体からも喋っていいならコメントアウト(削除)しなくても構いません
11.Linuxのcrontabの書き方で指定日時を設定して喋らせます
■フォーマット
分 時 日 月 曜日 実行させたいコマンド
(例)毎日の10時20分に喋らせる例
20 10 * * * node ~/google-home-player/say1.js これはテストです
(例)月曜~金曜の9:00に喋らせる例
0 9 * * 1-5 node ~/google-home-player/say1.js 業務開始です
入力したら
Ctrl+x
Y
Enter
でnanoエディタを終了します
下記のコマンドで設定内容が登録されているか?確認できます
crontab -l
12、上記の設定時間にGoogle Homeが喋ったら設定完了です
各部屋のGoogle Homeに喋らせる
(※)Google Homeは1台でも2台でも4台でも構いません
上記の説明でGoogle Homeの数だけsay1.js、say2.js、・・・と作っていたはずです
crontabの設定で、該当するGoogle Homeのsay1.jsやsay2.jsを書き換えれば各部屋で喋ります
余談
3年前からだか?5年前からだか?よく覚えてないのですが、
数年前にgoogle-home-notifierを使って「Google Homeに喋らせる」のが流行った時期があり、私もそれらを参考にして下記の様な形でずーーーーっと使ってました
下記の構成でした
1.インターネット上のGoogleスプレッドシートで予約を設定
2.変更があるとネット上のFirebaseに変更点だけ反映する
3.自宅内のラズパイのnode.jsモジュールがFirebaseの変更点を即時受信し、
Google Homeの1台目か?2台目か?に振り分けて喋らせる
4.自宅内のラズパイのnode.jsモジュールがgoogle-home-notifierで
各部屋のGoogle Homeに喋らせる
今回の設定によって「ラズパイを使用せずに余ったスマホかタブレットで同じ事ができる」、「なんならGoogle Homeすらいらない」事になったのでラズパイが余ってしまうかもしれません
(ラズパイ使った上記の構成、凄くめんどくさくて設置した自分でも何やってるのか?既に覚えてないので・・・)
更に余談
これでGoogle Homeに喋らせる事は出来る様になったとして、AmazonのAlexaをコマンドラインなりnode.jsから喋らせる方法ってどうやるんだろう?・・・
blog版の記事はこちら
(前回の記事)
(今回の記事)
(記事一覧)