고통 스러움을 너무 많이 마시는 것을 GoogleHome에 확인하십시오.
소개
 Google Home, IFTTT, Google 스프레드시트를 사용하여 자체 음성 명령을 사용하여 로그를 기록합니다.
를 읽고 있고, 통증과 같은 통복적인 약(하루 n회까지, 전회부터 n시간 이상 경과 후 복용 가능)의 체크에 사용할 수 없는 것이라고 작성해 보았다.
 Google 스프레드시트에 행 추가 IFTTT 레시피
「this」도 「that」도 평소의 순서
 Google 스프레드시트 콘텐츠
 
항상 날짜 정보는 마지막 행에 일단 기록됩니다.
 복용 체크
addDate.jsfunction addDate() {
  setDate(1, "yyyy/M/d");
  setDate(2, "H:m:s");
  checkDate();
}
날짜와 시간을 셀에 설정한 후 checkDate()를 호출하도록 추가했습니다.
checkDate.jsfunction checkDate() {
// 宣言
  var lineUrl = "https://maker.ifttt.com/trigger/drug_log/with/key/xxxxxxxx?value1=";
  var googleurl = "https://xxxxxxxx.ngrok.io/google-home-notifier";
  var ansText;
  searchDate(dateRows);//当日と同一日セルの取得
  switch (dateRows.length) {
    case(1):
      ansText = "服用可能です(本日一回目)"
      break
    case(2):
      var dates2 = sheet.getRange(1, 2, lastrow).getValues()
      var m1 = Moment.moment(dates2[dates2.length - 2][0])
      var m2 = Moment.moment(dates2[dates2.length - 1][0])
      var m3 = m2.diff(m1, 'h', false)
      var m4 = 4 - m3
      if (m3 < 4) {
        // 一定時間以上経過していない場合はrowを削除
        sheet.deleteRow(lastrow)
        ansText ="四時間以上間を開けて服用しましょう。あと" + m4 + "時間経過後服用できます"
      } else {
        ansText ="服用可能です(本日二回目)"
      }
      break
    case(3):
      ansText = "服用は一日二回までです。"
      break
    default:
      sheet.deleteRow(lastrow)
      ansText = "服用は一日二回までです。"
      break
  }
  // LINE 
  UrlFetchApp.fetch(lineUrl + ansText);
\
  // GoogleHome
  var payload =
    {
       "text" : ansText
     };
  var options =
    {
      "method" : "post",
      "payload" : payload
    };
  var response = UrlFetchApp.fetch(googleurl, options);
}
function addDate() {
  setDate(1, "yyyy/M/d");
  setDate(2, "H:m:s");
  checkDate();
}
function checkDate() {
// 宣言
  var lineUrl = "https://maker.ifttt.com/trigger/drug_log/with/key/xxxxxxxx?value1=";
  var googleurl = "https://xxxxxxxx.ngrok.io/google-home-notifier";
  var ansText;
  searchDate(dateRows);//当日と同一日セルの取得
  switch (dateRows.length) {
    case(1):
      ansText = "服用可能です(本日一回目)"
      break
    case(2):
      var dates2 = sheet.getRange(1, 2, lastrow).getValues()
      var m1 = Moment.moment(dates2[dates2.length - 2][0])
      var m2 = Moment.moment(dates2[dates2.length - 1][0])
      var m3 = m2.diff(m1, 'h', false)
      var m4 = 4 - m3
      if (m3 < 4) {
        // 一定時間以上経過していない場合はrowを削除
        sheet.deleteRow(lastrow)
        ansText ="四時間以上間を開けて服用しましょう。あと" + m4 + "時間経過後服用できます"
      } else {
        ansText ="服用可能です(本日二回目)"
      }
      break
    case(3):
      ansText = "服用は一日二回までです。"
      break
    default:
      sheet.deleteRow(lastrow)
      ansText = "服用は一日二回までです。"
      break
  }
  // LINE 
  UrlFetchApp.fetch(lineUrl + ansText);
\
  // GoogleHome
  var payload =
    {
       "text" : ansText
     };
  var options =
    {
      "method" : "post",
      "payload" : payload
    };
  var response = UrlFetchApp.fetch(googleurl, options);
}
판정 및 행 조작을 수행 한 후 LINE Notifify 및 google-home-notifier로 보냅니다.
searchDate.js
function searchDate(dateRows) {
  var tDate = formatDate(new Date(), "yyyy/M/d");
  lastrow = sheet.getLastRow();
  var dates = sheet.getRange(1, 1, lastrow).getDisplayValues(); 
  for(var lr = lastrow; lr >= 1; lr--){
   if(dates[lr - 1] == tDate){
      dateRows.push(lr);
    }
 }
  return dateRows;
}
오늘 날짜를 검색하고 날짜 행과 일치하는 행 번호를 배열에 추가합니다.
셀에 표시하고 있는 내용을 취득하기 위해서 getValues() 대신 getDisplayValues()
이번에 빠진 곳
미래를 향해
결론
최근 IFTTT에서 Google 스프레드 시트 행을 추가하는 대신 셀 값을 덮어 쓰고 업데이트 할 수있는 기능이 추가되었습니다. 셀 값으로 검색하고 결과를 반환하여 셀 값을 지울 수 있습니다.
Reference
이 문제에 관하여(고통 스러움을 너무 많이 마시는 것을 GoogleHome에 확인하십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/natu_n/items/019d16e73af17e2d8dea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)