Google Homeを使って規則正しい生活をしたい

公開:2020/10/26
更新:2020/10/26
5 min読了の目安(約4700字TECH技術記事

はじめに

このご時世ですのでみなさんも家族全員で引きこもり生活をされているのではないかと思います。
在宅ワークやってて思うこと。学校が無いのでどんどん生活リズムが崩れてしまう。
そんな事はありませんか?親も子も「規則正しい生活」をしないと心身にダメージがきます。
朝は定時に起きる。
勉強、仕事をする。
夜は早めに。
規則正しい生活をして、気持ちも安定して過ごしたいですよね。
多分、こんなGASでスクリプトを作らなくてもIFTTTだけでもできそうですが、
Spreadsheetで一覧で管理したいこともあり、
そんなとき、我が家で実践しているGoogle HomeとGoogle Apps Scriptを使った、
チャイムといいますか、アラームシステムを構築しましたので、ご紹介させていただきます。
ちなみに、私の自宅の環境はこのような感じになっています。

Google Homeに喋らせてみた.png
また、それぞれの時間でpush callしたい、文言を下記にならべます。

Alerm Push Message
6:00:00 AM HH時MM分です。朝になりました!起きましょう。
6:30:00 AM HH時MM分です。そろそろ起きましょう。私はすっかり起きましたよ
7:00:00 AM HH時MM分です。さすがにそろそろ起きましょう。運動や語学の勉強なんかどうですか?
8:00:00 AM HH時MM分です。朝ごはんを食べましょう
10:00:00 AM HH時MM分です。そろそろ休憩でもいかがでしょうか
12:00:00 PM HH時MM分です。お昼ごはんの準備を始めましょう
1:00:00 PM HH時MM分です。お昼ごはんを食べましょう
3:00:00 PM HH時MM分です。そろそろおやつの時間かな?
5:30:00 PM HH時MM分です。晩ごはんの準備を始めましょう
6:30:00 PM HH時MM分です。晩ごはんを食べましょう
8:30:00 PM HH時MM分です。お風呂に入りましょう
10:00:00 PM HH時MM分です。そろそろ寝ましょう。私は寝ます。おやすみなさい

image.png

1)IFTTT側の準備

1-1)My Servicesに行きます

image.png

1-2)Webhookを設定

image.png

Webhooks>settingに行きます
image.png

下記の赤枠のURLをコピペしてブラウザのアドレスに貼り付けて行きます
image.png

遷移したら Triggerの右横の{{event}}って書いてある箇所を"alarm"に変更し,
curl -X POSTの右側のURLをコピーして起きます
image.png

2)Google側の準備

2-1)Spreadsheetを作成

SpreadシートにはトリガーにしたいGMailを下記のように作成しましょう

  • A列 アラームをセットしたい時間
  • B列は =ENCODEURL(CONCATENATE(HOUR(A12),"時",MINUTE(A12),"分です。何かメッセージ"))

image.png

##2-2)GASを作成
先程のSpreadsheetからTools>Scripteditoを選択します
image.png

##2-3)GASを実装
下記の赤枠の部分に
image.png

IFTTTのURLの部分を1-2)でコピーしたものに変更して保存してください

function myFunction() {
	// !!please set your ifttt webhook url!!
	var IFTTT = 'https://maker.ifttt.com/trigger/さっき保存じたURL';
	// get data from spread sheet
	var labels = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
	// for all labes;
	for (var v = 0; v < labels.length; v++) {
		if (labels[v].length < 2) {
			return;
		}

		// calculate the time difference between now and target
		var now = new Date();
		var target = new Date(labels[v][0]);
		// adjust target's YYYY/MM/DD to current YYYY/MM/DD
		target.setFullYear(now.getFullYear());
		target.setMonth(now.getMonth());
		target.setDate(now.getDate());

		// trigger "alarm" if the difference is within 50 secs
		if (Math.abs(now - target) < 50 * 1000) {
			//  POST IFTTT if you've got "alarm"
			Logger.log(IFTTT);
			var res = UrlFetchApp.fetch(IFTTT, {
				'muteHttpExceptions': true,
				'method': 'post',
				'contentType': 'application/json',
				'payload': JSON.stringify({
					"value1": labels[v][1]
				})
			});
			Logger.log("Response:" + res);
		}
	}
}

2-4)GASをテスト実行

三角の矢印を押下してください
初回は色々GoogleSpreadsheetやGmailとの連携をするためにポップアップがでますが
すべて許可してつないでください

image.png

2-5)GAS Triggerを設定

最後にここを押して
image.png

"+Add Trigger"を押して新しいトリガーを下記の様に設定しましょう
image.png

デモ

IMAGE ALT TEXT HERE

最後に

皆さま、最後までご覧いただき、ありがとうございました。
いかがでしたか?
少しでも規則正しい生活の助けになったら幸いです。
いいな、と思ったらLGTMお願いします!