Google Home에서 어린이 태블릿 학습 알림
11890 단어 iftttGoogleAppsScriptGoogleHome
하고 싶은 일
어린이(초등학교 저학년)가 태블릿 통신 교육을 수강하고 있습니다.
매일 할 수 있으면 좋기 때문에 Google Home을 이용하여 리마인드합니다.
전제
Google Home은 자발적으로 발성하는 것은 표준으로 할 수 없습니다.
"Google Home 말하기"등으로 검색하여 설정했습니다.
google-home-notifier를 Raspberry Pi에 설치하고 firebase 업데이트를 트리거로
발성시키는 구조로 하고 있습니다.
개요
1. 학습 이력의 로그 출력
태블릿 교재에 학습 결과를 메일 통지하는 기능이 있습니다.
메일 알림 기능(gmail 수신)을 바탕으로 IFTTT로 스프레드시트에 기록합니다.
2. 학습 이력 확인 및 미리 알림
Google Apps Script로 체크 처리를 일일 실행해,
스프레드시트에 당일 기록이 있는지 확인합니다.
확인 결과를 바탕으로 Google Home에서 집에 있는 어린이에게 알립니다.
상세
1. 학습 이력의 로그 출력
태블릿 자료에는 이메일로 학습 상태를 알리는 기능이 있습니다.
이를 활용하여 IFTTT에서 학습 기록을 스프레드 시트에 축적합니다.
※1:「왓 x @ 마이 l. 이. jp」는, 태블릿 교재로부터 메일 발신되었을 때의 송신원 주소입니다.
이 IFTTT 설정에서 태블릿 자료에서 연락 메일이 전송되면,
스프레드시트에 다음과 같이 송신일시, 송신자, 제목이 기록되어 갑니다.
2. 학습 이력 확인 및 미리 알림
Google Apps Script에서 스프레드 시트에 당일 학습 이력이 있는지 여부
체크합니다.
1) 학습 이력 체크 스크립트 작성
코드.gsfunction checkZemi() {
// -- 各種変数関連の宣言(固定値)---------------------------------------------------------
// タブレット学習のスプレッドシート
var spreadsheet = SpreadsheetApp.openById('123xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
var sheet = spreadsheet.getSheetByName('シート1');
// シートの日付列
var posDate = 1;
// シートのタイトル列
var posTitle = 3;
// シートの通知済みフラグの列
var posNotified = 4;
// チェック対象の件名(部分一致)
var chkTitle = "の学習結果のお知らせ"
// タブレット学習の未完了時のメッセージ
var message = "今日のタブレット学習が、まだ、終わっていません。タブレット学習を、はじめましょう";
// -- 各種変数関連の宣言(可変値)---------------------------------------------------------
// シートの最終行
var posLastColumn = sheet.getLastRow();
// 今日の日付を「December 30, 2017」の形式で取得
var formattedDate = Utilities.formatDate(new Date(), "GMT", "MMMMMMMMMMMM dd, yyyy");
// 現在の操作行
var currentRow = posLastColumn;
// 終了の判定フラグ
var endFlg = false;
// スプレッドシート上の日付
var sDate = "";
// スプレッドシート上のタイトル
var sTitle = "";
// スプレッドシート上の完了通知フラグ
var sNotified = "";
// -- 処理開始-----------------------------------------------------------------------
// 日付の列の最終行取得
sDate = sheet.getRange(currentRow,posDate).getValue();
// タイトルの列の最終行取得
sTitle = sheet.getRange(currentRow,posTitle).getValue();
// 完了通知フラグの最終行取得
sNotified = sheet.getRange(currentRow,posNotified).getValue();
// 最終行から上にセルを確認していき、今日のタブレット学習からの連絡メールの受信を確認する
while( currentRow > 1 && endFlg == false ) {
// 今日の日付 かつ タイトルが連絡メールの場合
// indexOf は 検索文字を見つけた開始位置が返却される(見つからない場合は「-1」が返る
if ( sDate.indexOf(formattedDate) == 0 && sTitle.indexOf(chkTitle) >= 0 ) {
endFlg = true;
message = "今日のタブレット学習は、おわっていることを確認しました。お疲れさまでした。明日も頑張りましょう"
sheet.getRange(currentRow,posNotified).setValue("済");
break;
}
// 1行上のセルに移動
currentRow --;
sDate = sheet.getRange(currentRow,posDate).getValue();
sTitle = sheet.getRange(currentRow,posTitle).getValue();
sNotified = sheet.getRange(currentRow,posNotified).getValue();
}
// 当日分のタブレット学習が未完了 または
// 当日分の完了通知がまだなら、
// メッセージの送信
if ( endFlg == false || (sDate.indexOf(formattedDate) == 0 && sNotified.equals('')) ) {
Logger.log(message);
sendGoogleHomeLiving(message);
} else {
Logger.log("通知済みなので、通知しません");
}
}
2) 체크 스크립트 시작 설정
툴바로부터 기동 트리거를 설정합니다.
매일, PM6~7시, PM7~8시, PM8~9시 사이에서, 체크하고,
아직 끝나지 않은 것 같으면 실시를 촉구합니다.
요약
첫 투고이므로, 내용의 선하고 나쁜 등, 개선의 여지도 있을까 생각합니다.
불명점등 있으면, 코멘트 주시면, 개선합니다.
Google Home을 사용하여 일상 생활의 다양한 개선을 위해 노력하고 싶습니다!
Reference
이 문제에 관하여(Google Home에서 어린이 태블릿 학습 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/super-flyers/items/dee080dfa3a14938cc37
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Google Home은 자발적으로 발성하는 것은 표준으로 할 수 없습니다.
"Google Home 말하기"등으로 검색하여 설정했습니다.
google-home-notifier를 Raspberry Pi에 설치하고 firebase 업데이트를 트리거로
발성시키는 구조로 하고 있습니다.
개요
1. 학습 이력의 로그 출력
태블릿 교재에 학습 결과를 메일 통지하는 기능이 있습니다.
메일 알림 기능(gmail 수신)을 바탕으로 IFTTT로 스프레드시트에 기록합니다.
2. 학습 이력 확인 및 미리 알림
Google Apps Script로 체크 처리를 일일 실행해,
스프레드시트에 당일 기록이 있는지 확인합니다.
확인 결과를 바탕으로 Google Home에서 집에 있는 어린이에게 알립니다.
상세
1. 학습 이력의 로그 출력
태블릿 자료에는 이메일로 학습 상태를 알리는 기능이 있습니다.
이를 활용하여 IFTTT에서 학습 기록을 스프레드 시트에 축적합니다.
※1:「왓 x @ 마이 l. 이. jp」는, 태블릿 교재로부터 메일 발신되었을 때의 송신원 주소입니다.
이 IFTTT 설정에서 태블릿 자료에서 연락 메일이 전송되면,
스프레드시트에 다음과 같이 송신일시, 송신자, 제목이 기록되어 갑니다.
2. 학습 이력 확인 및 미리 알림
Google Apps Script에서 스프레드 시트에 당일 학습 이력이 있는지 여부
체크합니다.
1) 학습 이력 체크 스크립트 작성
코드.gsfunction checkZemi() {
// -- 各種変数関連の宣言(固定値)---------------------------------------------------------
// タブレット学習のスプレッドシート
var spreadsheet = SpreadsheetApp.openById('123xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
var sheet = spreadsheet.getSheetByName('シート1');
// シートの日付列
var posDate = 1;
// シートのタイトル列
var posTitle = 3;
// シートの通知済みフラグの列
var posNotified = 4;
// チェック対象の件名(部分一致)
var chkTitle = "の学習結果のお知らせ"
// タブレット学習の未完了時のメッセージ
var message = "今日のタブレット学習が、まだ、終わっていません。タブレット学習を、はじめましょう";
// -- 各種変数関連の宣言(可変値)---------------------------------------------------------
// シートの最終行
var posLastColumn = sheet.getLastRow();
// 今日の日付を「December 30, 2017」の形式で取得
var formattedDate = Utilities.formatDate(new Date(), "GMT", "MMMMMMMMMMMM dd, yyyy");
// 現在の操作行
var currentRow = posLastColumn;
// 終了の判定フラグ
var endFlg = false;
// スプレッドシート上の日付
var sDate = "";
// スプレッドシート上のタイトル
var sTitle = "";
// スプレッドシート上の完了通知フラグ
var sNotified = "";
// -- 処理開始-----------------------------------------------------------------------
// 日付の列の最終行取得
sDate = sheet.getRange(currentRow,posDate).getValue();
// タイトルの列の最終行取得
sTitle = sheet.getRange(currentRow,posTitle).getValue();
// 完了通知フラグの最終行取得
sNotified = sheet.getRange(currentRow,posNotified).getValue();
// 最終行から上にセルを確認していき、今日のタブレット学習からの連絡メールの受信を確認する
while( currentRow > 1 && endFlg == false ) {
// 今日の日付 かつ タイトルが連絡メールの場合
// indexOf は 検索文字を見つけた開始位置が返却される(見つからない場合は「-1」が返る
if ( sDate.indexOf(formattedDate) == 0 && sTitle.indexOf(chkTitle) >= 0 ) {
endFlg = true;
message = "今日のタブレット学習は、おわっていることを確認しました。お疲れさまでした。明日も頑張りましょう"
sheet.getRange(currentRow,posNotified).setValue("済");
break;
}
// 1行上のセルに移動
currentRow --;
sDate = sheet.getRange(currentRow,posDate).getValue();
sTitle = sheet.getRange(currentRow,posTitle).getValue();
sNotified = sheet.getRange(currentRow,posNotified).getValue();
}
// 当日分のタブレット学習が未完了 または
// 当日分の完了通知がまだなら、
// メッセージの送信
if ( endFlg == false || (sDate.indexOf(formattedDate) == 0 && sNotified.equals('')) ) {
Logger.log(message);
sendGoogleHomeLiving(message);
} else {
Logger.log("通知済みなので、通知しません");
}
}
2) 체크 스크립트 시작 설정
툴바로부터 기동 트리거를 설정합니다.
매일, PM6~7시, PM7~8시, PM8~9시 사이에서, 체크하고,
아직 끝나지 않은 것 같으면 실시를 촉구합니다.
요약
첫 투고이므로, 내용의 선하고 나쁜 등, 개선의 여지도 있을까 생각합니다.
불명점등 있으면, 코멘트 주시면, 개선합니다.
Google Home을 사용하여 일상 생활의 다양한 개선을 위해 노력하고 싶습니다!
Reference
이 문제에 관하여(Google Home에서 어린이 태블릿 학습 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/super-flyers/items/dee080dfa3a14938cc37
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. 학습 이력의 로그 출력
태블릿 자료에는 이메일로 학습 상태를 알리는 기능이 있습니다.
이를 활용하여 IFTTT에서 학습 기록을 스프레드 시트에 축적합니다.
※1:「왓 x @ 마이 l. 이. jp」는, 태블릿 교재로부터 메일 발신되었을 때의 송신원 주소입니다.
이 IFTTT 설정에서 태블릿 자료에서 연락 메일이 전송되면,
스프레드시트에 다음과 같이 송신일시, 송신자, 제목이 기록되어 갑니다.
2. 학습 이력 확인 및 미리 알림
Google Apps Script에서 스프레드 시트에 당일 학습 이력이 있는지 여부
체크합니다.
1) 학습 이력 체크 스크립트 작성
코드.gs
function checkZemi() {
// -- 各種変数関連の宣言(固定値)---------------------------------------------------------
// タブレット学習のスプレッドシート
var spreadsheet = SpreadsheetApp.openById('123xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
var sheet = spreadsheet.getSheetByName('シート1');
// シートの日付列
var posDate = 1;
// シートのタイトル列
var posTitle = 3;
// シートの通知済みフラグの列
var posNotified = 4;
// チェック対象の件名(部分一致)
var chkTitle = "の学習結果のお知らせ"
// タブレット学習の未完了時のメッセージ
var message = "今日のタブレット学習が、まだ、終わっていません。タブレット学習を、はじめましょう";
// -- 各種変数関連の宣言(可変値)---------------------------------------------------------
// シートの最終行
var posLastColumn = sheet.getLastRow();
// 今日の日付を「December 30, 2017」の形式で取得
var formattedDate = Utilities.formatDate(new Date(), "GMT", "MMMMMMMMMMMM dd, yyyy");
// 現在の操作行
var currentRow = posLastColumn;
// 終了の判定フラグ
var endFlg = false;
// スプレッドシート上の日付
var sDate = "";
// スプレッドシート上のタイトル
var sTitle = "";
// スプレッドシート上の完了通知フラグ
var sNotified = "";
// -- 処理開始-----------------------------------------------------------------------
// 日付の列の最終行取得
sDate = sheet.getRange(currentRow,posDate).getValue();
// タイトルの列の最終行取得
sTitle = sheet.getRange(currentRow,posTitle).getValue();
// 完了通知フラグの最終行取得
sNotified = sheet.getRange(currentRow,posNotified).getValue();
// 最終行から上にセルを確認していき、今日のタブレット学習からの連絡メールの受信を確認する
while( currentRow > 1 && endFlg == false ) {
// 今日の日付 かつ タイトルが連絡メールの場合
// indexOf は 検索文字を見つけた開始位置が返却される(見つからない場合は「-1」が返る
if ( sDate.indexOf(formattedDate) == 0 && sTitle.indexOf(chkTitle) >= 0 ) {
endFlg = true;
message = "今日のタブレット学習は、おわっていることを確認しました。お疲れさまでした。明日も頑張りましょう"
sheet.getRange(currentRow,posNotified).setValue("済");
break;
}
// 1行上のセルに移動
currentRow --;
sDate = sheet.getRange(currentRow,posDate).getValue();
sTitle = sheet.getRange(currentRow,posTitle).getValue();
sNotified = sheet.getRange(currentRow,posNotified).getValue();
}
// 当日分のタブレット学習が未完了 または
// 当日分の完了通知がまだなら、
// メッセージの送信
if ( endFlg == false || (sDate.indexOf(formattedDate) == 0 && sNotified.equals('')) ) {
Logger.log(message);
sendGoogleHomeLiving(message);
} else {
Logger.log("通知済みなので、通知しません");
}
}
2) 체크 스크립트 시작 설정
툴바로부터 기동 트리거를 설정합니다.
매일, PM6~7시, PM7~8시, PM8~9시 사이에서, 체크하고,
아직 끝나지 않은 것 같으면 실시를 촉구합니다.
요약
첫 투고이므로, 내용의 선하고 나쁜 등, 개선의 여지도 있을까 생각합니다.
불명점등 있으면, 코멘트 주시면, 개선합니다.
Google Home을 사용하여 일상 생활의 다양한 개선을 위해 노력하고 싶습니다!
Reference
이 문제에 관하여(Google Home에서 어린이 태블릿 학습 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/super-flyers/items/dee080dfa3a14938cc37
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Google Home에서 어린이 태블릿 학습 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/super-flyers/items/dee080dfa3a14938cc37텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)