GoogleHome の有効活用方法。
ゴミの日お知らせ。大したことではないですが、意外に便利です。
ラズパイとGoogleHome が連携して、GoogleHomeが喋れる状態になっている前提です。
Google Home を しゃべらせる方法 | IT-DIY
やり方
cron で発声時刻を設定して、実行させる。
以下の python のファイルを実行させると、csvファイルに登録された種類のゴミであることをGoogleHome から音声が流れる。
朝と前日の夜にお知らせしてくれるように cron を登録する。
以下のpythonのコードとcsvを配置。
csvファイル と 固定曜日のゴミをソースコード を ご自身のゴミ収集日に合わせて設定してください。
<gomi.py>
#!/usr/bin/env python
# -*- coding: utf-8 -*-¥
import datetime
from datetime import date,timedelta
import csv
import sys, subprocess
############################
### GoogleHome トーク ###
############################
# GoogleHome-Notifer にまわす
def talk( talkstr ):
subprocess.run( ["node", "/path to/google-home-notifier/talk.js", talkstr] )
def gominohi( d_date, dd_str ):
n_str = "non"
# 火曜、金曜 は普通ごみ
if (d_date.weekday() == 1) or (d_date.weekday() == 4):
n_str = dd_str + "普通ごみの日です"
# 土曜日は廃品回収
elif d_date.weekday() == 5:
n_str = dd_str + "廃品回収の日です"
elif d_date.weekday() == 6:
n_str = "non"
else:
# 単純な曜日固定でないものはファイルから読込み
csv_file = open("gomi.csv", "r", encoding="utf8", errors="", newline="" )
f = csv.reader(csv_file, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True)
cnt = 0
maxc = 0
for row in f:
if str( d_date ) == row[0]:
n_str = dd_str + row[1] + "ごみの日です。"
cnt = maxc
maxc += 1
if ( (cnt + 5) > maxc ):
n_str += "そろそろ、ごみデータを更新してください。"
if n_str != "non":
talk( n_str )
############################
t_day = datetime.date.today()
dd_str = ""
if sys.argv[1] == "0":
dd_str = "今日は、"
elif sys.argv[1] == "1":
dd_str = "明日は、"
gominohi( t_day + timedelta( days = int(sys.argv[1]) ), dd_str )
<gomi.csv>
2022-09-12,プラスチック
2022-09-15,陶器、ガラス
2022-09-21,缶
2022-09-,破砕
2022-09-,プラスチック
cron を登録する。
一旦、cron.conf ファイルに、お知らせしてほしい時刻を設定する。
以下のファイルでは、7時 0分、10分、20分、25分、30分、40分 に今日のゴミの内容を
20時 0分、15分、50分 に明日のゴミの内容をお知らせするように設定しています。
<cron.conf crontab -l >
0,10,20,25,30,40 7 * * * python /path to/gomi.py 0
0,15,50 20 * * * python /path to/gomi.py 1
以下のコマンドでcron に登録。
あとは、自動でお知らせしてくれます。
crontab cron.conf
コメント