はじめに
@hideo-works さんの記事に影響されてGoogle-Homeを即買いした2児の父です。
https://qiita.com/hideo-works/items/db25a748889d47d5eff2
我が家でも毎朝、「はやくごはんたーべーてー」「トイレ行ったーのー」「はーやーく靴下はーいーてー」と言った悲哀に満ちた声が響いているので、少しでも違った展開をと思い導入に至った次第です。
ただ、GoogleスプレッドシートとFirebaseは使わなくてもよいかなと思いました。
よりシンプルに ラズパイ → (1) → Google Homeだけにまとめました。
時間、曜日に応じて実行してもらう仕組みがあればよい。
Node.jsでスケジューラ作るのはめんどくさそう。。。
そうだ、僕らにはcronがある。
Raspberry Pi
まずは、Node.jsを実行するシェルスクリプト。cronで実行するのでnode実行するのもフルパスにするかシェルの中でPATHに追加する必要があります。
index.sh
#! /bin/sh
cd `dirname $0`
/usr/local/bin/node index.js $*
あとはこれをcronから呼び出します。
$ crontab -l
# +------------ 分 (0 - 59)
# | +---------- 時 (0 - 23)
# | | +-------- 日 (1 - 31)
# | | | +------ 月 (1 - 12)
# | | | | +---- 曜日 (0 - 6) (日曜日=0)
# | | | | |
# * * * * * 実行されるコマンド
40 7 * * 2,5 /home/pi/google-home/index.sh "今日は燃えるゴミの日です"
20 7 * * 3 /home/pi/google-home/index.sh "今日はビニールゴミの日です"
20 7 * * 2,5 /home/pi/google-home/index.sh "今日は缶、ペットボトル、ビンのゴミの日か燃えないゴミの日です"
30 6 * * 1-5 /home/pi/google-home/index.sh "○○さん、起きていますか?ラジオ体操の時間です"
15 7 * * 1-5 /home/pi/google-home/index.sh "○○さん、おいしい朝ご飯は食べ終わりましたか?"
45 7 * * 1-5 /home/pi/google-home/index.sh "○○さん、トイレにはもう行きましたか?"
落とし穴
- cronのデフォルトのタイムゾーンが世界標準時になっているので東京にする必要がありました。7時に鳴らしたいのに22時に鳴っちゃってた。
https://qiita.com/munaita_/items/7bf0e786a1a431230691
/etc/crontab
CRON_TZ=Asia/Tokyo
- Raspberry Piでcronを使用する際にはpostfix入れないと動いてくれないみたい。
sudo apt-get install -y postfix
おわりに
我が家の3歳は好感触。「おーけーぐるぐる」とのこと。
我が家の6歳は嫌らしい。「お父さんお母さんに加わって、うるさいこと言ってくるのが増えた」とのこと。
Google-Homeにしゃべらせる言葉選びがむずかしい。