はじめに
自宅にいても変化に気づかないことが結構あります。たまたま二階に居たので気づかなかった、寝ていたから気づかなかった、とかよくある話です。
そんな気づき漏れをGoogle Homeでなくそう、というのが今回の目的です。
年老いた母のために考えてみました。
実現方法
-
自宅の要所要所にGoogle Homeを設置します。その後Google Homeアプリでグループ設定します。
-
母艦にラズパイを利用します。それにPython版google-home-notifierをインストールすると、Google Homeのグループに対して一斉放送することができます。Python版google-home-notifierはWebhookを実装しているので、httpで喋らせたい文章を引き渡せば、Text-to-Speech機能を介して、Google Homeに一斉放送することができます。
-
Google Homeに一斉放送させたいIoTデバイス側では、httpで喋らせたい文章を引き渡します。
-
特に外部サービスを利用しないで仕組みは簡単です。
参考:
お知らせ例
- ドア・チャイムがなったらお知らせする(来客、宅急便など)。
- ポストに投函されたらお知らせする(郵便、回覧板など)。
- 電話が鳴ったら相手の名前をお知らせする。
- 洗濯が終わったらお知らせする。
- お風呂が沸いたらお知らせする。
- 電子レンジの温めが終わったらお知らせする。
デバイス側の実行例
インストール方法(スマホ)
####スマホでGoogle Homeアプリを起動し、グループ設定します
詳しい設定方法は省略しますが、google-home-notifier-pythonは個々のデバイスもしくはグループに対して、喋らせたりmp3再生できます。
下記例ではデバイス「ベッドルーム」と「リビング」が登録されていて、その2台を「ホームグループ」としてグループ登録しています。
今回は「ホームグループ」に対して通知します。
インストール方法(ラズパイ)
####動作環境を確認します
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.6 (stretch)
Release: 9.6
Codename: stretch
$ python3 -V
Python 3.5.3
####gitをインストールします
$ cd
$ sudo apt-get update
$ sudo apt-get install git
####google-home-notifier-pythonをインストールします
ここにあります。
$ git clone https://github.com/harperreed/google-home-notifier-python.git
$ cd google-home-notifier-python
$ pip3 install -r requirements.txt
####google-home-notifier-pythonの設定をします
通知先を「ホームグループ」に設定します。
$ cp -p main.py main.py.org
$ vi main.py
(変更)
#chromecast_name = "Home group" #edit me to be your google home group
chromecast_name = "ホームグループ"
google-home-notifier-pythonを絶対パスで起動するとエラーになるので、相対パスで実行するようスクリプトgoogle-home-notifier.shを作成します。
$ vi google-home-notifier.sh
#!/bin/sh
cd /home/pi/google-home-notifier-python
/usr/bin/python3 ./main.py
$ chmod a+x google-home-notifier.sh
####SupervisorでOS起動時にgoogle-home-notifier-pythonを自動実行するようにします
Python3でSupervisorを動かしてみた、ラズパイでねを参考にSupervisorをインストールします。
その後SupervisorでOS起動時にgoogle-home-notifier-pythonを自動実行するようにします。
$ sudo vi /etc/supervisor/conf.d/google-home-notifier.conf
[program:google-home-notifier]
command=/bin/bash /home/pi/google-home-notifier-python/google-home-notifier.sh
numprocs=1
autostart=true
user=pi
OSを再起動します。
$ sudo reboot
動作確認します
インストールしたラズパイのIPアドレスが192.168.3.230の場合です。ブラウザからURL指定します。
OS起動後、google-home-notifier-pythonが立ち上がるまで少し時間がかかります。一度使えるようになると即座に処理されます。
ディレクトリgoogle-home-notifier-python/staticにあるmp3ファイルを再生します。
指定した文章を喋ります。ディレクトリgoogle-home-notifier-python/static/cacheにmp3ファイルがキャッシュされます。
ディレクトリ構造は下記のとおりです。
$ cd
$ cd google-home-notifier-python/static
$ ls
JR.mp3 cache doorbell1.mp3
$ cd cache
$ ls
こんにちは-ja-false.mp3 今日は良い天気ですね-ja-false.mp3
こんばんは-ja-false.mp3
おわりに
スマートスピーカは便利ですね(=^・^=)