#食べてくれたものは即ストックし、リピートしたい
子供は皆そうかもしれないが、1歳の娘は食事の好き嫌いがはっきりしている。食べてくれた献立は忘れずにストックしておき、いつかまた作ってあげたいもの。Amazon Alexaに娘が食べてくれた料理を吹き込み、献立リストから妻に定期的にレコメンドしてくれるLINE通知サービスを作ってみました。
1.娘が良く食べてくれた献立に気づいたら、その場でAlexaに献立を吹き込む
2.IFTTTが献立リストへの追加を検知しGoogleスプレッドシートに書き込む
3.Googleスプレッドシートに連動したGoogle Apps Scriptが献立リストからランダムに3品をWebhookURLにpostする
4.Integromatが提案された献立を妻へLINE通知する
#構成
1.IFTTT
実はAmazon AlexaをIFTTTでカスタマイズできる内容は限定的である。Google Homeなら可能らしいが、好きなキーワードを発した後の操作を埋め込むことができない。好きなフレーズを使って操作できるのは「Say a specific phrase」というアプレットのみであり、Google Spread Sheetへは「Triggered At」というトリガーを埋め込むことしかできないため、本来は、「〇〇ちゃんの好物リスト」に「ハンバーグを追加」といった制御を効かせたかったが、それはIFTTT+Alexaではできないようだ。
よって、今回は既存の「Todoリストへの追加をトリガーに設定できるアプレット」を採用し、「アレクサ、Todoリストに、ハンバーグを追加して」と言えば、Google Spread Sheetに、献立が追加される仕組みとした。この点どうにかできないか考えたが、解決案を導き出せなかった。
2.Google Spread Sheet
1列目にIFTTTで定義したAddedItem、2列目にCreateTimeを記録するフォーマットを作成した。
3.Google Apps Script
「1~何らかの文字列が入力されているA列の最大行」を範囲にランダムで3つ献立を選択し、textでHTTPリクエスト送信する。
function myOutgoingFunction(){
// Webhook URL
const URL='https://xxxxxxxxxxxxxxxxxxxxxxxxxxxx';
//シートは一つしかないのでID指定の必要なし
const sheet = SpreadsheetApp.getActiveSheet();
//都度乱数を生成
//1〜何らかの文字列が入力されているA列の最大行数の範囲
const rNum1 = Math.floor(Math.random()* sheet.getLastRow())+1;
const rNum2 = Math.floor(Math.random()* sheet.getLastRow())+1;
const rNum3 = Math.floor(Math.random()* sheet.getLastRow())+1;
//スプレッドシートのA列x番目の料理を代入
const food1 = sheet.getRange(rNum1,1).getValue();
const food2 = sheet.getRange(rNum2,1).getValue();
const food3 = sheet.getRange(rNum3,1).getValue();
// POSTする中身
const Payload = {
'text': food1 +"、" + food2 +"、" + food3
};
//パラメータを定義する
const params = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(Payload),
}
// HTTPリクエスト送信
const res = UrlFetchApp.fetch(URL,params);
}
また、毎日妻が献立を考える際に、このLINE通知を参考にしてもらいたいと思ったので、Google Apps Scriptのトリガー設定にて、毎朝定期的にレコメンドしてくれるようにした。
4.Integromat
Google Apps ScriptからHTTPリクエストを受けるWebhookURLを取得し、LINE Notificationと連携し妻のLINEへ通知する。
#子育ては、基本的に手がふさがっている
子育ては基本的に手がふさがっているので、「簡単に使えること」が子育てを支援するツールには欠かせない要素だと考えている。その点、Amazon Alexaなどのスマートスピーカーとの相性は抜群であるはずなので、今後も時間を見つけて、家庭内課題を解決できる何か面白いツールを作ってみたいと思います。
#おまけ
子供は好きな食べ物もなぜか急に食べなくなることがあります。1週間前はあんなに食べたのに‥みたいなことも良くあります。ただ、うちの娘は「納豆」だけは、毎朝2パック食べ続けています。お肉をあまり食べたがらないので、本当に重要なたんぱく源です。納豆に感謝です。