Raspberry Pi スマートホーム化計画 記事一覧
記事の内容を試す場合は自己責任でお願いいたします。
ゴミの日通知を行う
Alexaから朝起きたらゴミの日だよ!ってお知らせしてくれる装置を作ります。
シェルスクリプトで作る
シェルスクリプトでアプリを作っていきます。
本当はPythonなどを仕様すべきなんでしょうが、私がPythonに慣れていないの慣れているシェルスクリプトで作ります。
トリガーをどうするか
トリガーをどうするか考えます。
まず考えられるのは時間です。
指定した時間になると勝手にしゃべるようにすればいいです。
問題としては起きる時間が同じではない可能性があります。
本当は人感センサーで朝の場合は喋らせるというのが良さそうですが、まだ人感センサは未実装。
そこで毎朝行っている「アレクサ、行ってきます」という言葉をトリガーにします。
以前作ったときのようにNodeREDを使ってRaspberry Piに信号を送ります。
Raspberry PiとAlexaでオリジナルスキルを作る 「今日のご飯は?」
Raspberry PiとAlexaでオリジナルスキルを作るRaspberry PiとAlexaでオリジナルスキルを作ります。今日のご飯は?Alexaに「今日のご飯は?」と聞くと、メニューをランダムに提案してくれるスキルを作ってみます。構成...
今回は5番を使用します。
alexapi.sh
#!/bin/bash
if [ $# -eq 1 ]; then
if [ $1 = "0" ]; then
echo "">/dev/null
elif [ $1 = "1" ]; then
/opt/scripts/alexapi/alexa_bedroom_temp.sh
elif [ $1 = "2" ]; then
/opt/scripts/alexapi/alexa_livingroom_temp.sh
elif [ $1 = "3" ]; then
/opt/scripts/alexapi/alexa_temp.sh
elif [ $1 = "4" ]; then
#/opt/scripts/alexapi/alexa_meal.sh
/opt/scripts/meal_list.sh alexa
#/opt/test/meal.sh alexa
elif [ $1 = "5" ]; then
/opt/app/daily_announce/daily_announce.sh
fi
fi
5に追加します。
呼び出し先のシェルスクリプトを作ります。
何度も言われるのは面倒なので、時間指定と1日に1度だけ言うようにします。
daily_announce.sh
#!/bin/bash
cd `dirname $0`
# 曜日の取得
# 日:0 月:1 火:2 水:3 木:4 金:5 土:6
day_of_the_week=`date +%w`
flag=`cat daily.flag`
if [ $flag = `date +%Y%m%d` ]; then
exit
fi
if [ `date +%H%M` -gt 900 ]; then # 9:00以上なら実行しない
exit
fi
if [ `date +%H%M` -lt 600 ]; then # 6:00より前なら実行しない
exit
fi
if [ $day_of_the_week -eq 0 ]; then #日
echo "">/dev/null
elif [ $day_of_the_week -eq 1 ]; then #月
echo "今日はおそふりの稼働日です。" >/opt/nodered/alexa_speak.txt
elif [ $day_of_the_week -eq 2 ]; then #火
echo "今日は燃えるゴミの日です。ゴミは溜まっていませんか?" >/opt/nodered/alexa_speak.txt
elif [ $day_of_the_week -eq 3 ]; then #水
echo "今日はおそふりの稼働日です。" >/opt/nodered/alexa_speak.txt
elif [ $day_of_the_week -eq 4 ]; then #木
echo "">/dev/null
elif [ $day_of_the_week -eq 5 ]; then #金
echo "今日は燃えるゴミの日です。ゴミは溜まっていませんか?" >/opt/nodered/alexa_speak.txt
elif [ $day_of_the_week -eq 6 ]; then #土
echo "">/dev/null
else
echo "">/dev/null
fi
date +%Y%m%d >daily.flag
完成です!
これで行ってきます!とアレクサに言うたびにゴミの日をリマインダーしてもらえます。
コメント