Yado_tech

旅館+ITとはなんぞ

GASでおんどとりのAPIを叩く②

yadotech.hateblo.jp

ここから次は異状があったときに特定のセルを更新するまで

//環境に応じて書き換えるものはapi_key , login_id , password , 温度のところ(danshi , joshiのところ)です。
//

//温度を配列で返す関数
function temps(){  
  // api_key login_id password は書き直して下さい。
  const url = "https://api.webstorage.jp/v1/devices/current"
  const api_key = ""
  const login_id =""
  const password = ""
  const furo_temp = () => {
    var paylord = {'api-key':api_key,"login-id":login_id,'login-pass':password}
    var headers = {
      "X-HTTP-Method-Override":'GET',
      "Content-Type" : "application/json",}
    var options = {
     "method" : "post",   
     "payload" : JSON.stringify(paylord),
     "headers" : headers,
     "muteHttpExceptions":true
    }
    
    return UrlFetchApp.fetch(url,options);
  
  }
  return JSON.parse(furo_temp())
  
}

//ここまで関数

//ここから本文

//温度のJSONを取得する
var tmprs = temps()

//デバッグ用 女子風呂の温度
//Logger.log("女子:" + tmprs["devices"][1]["channel"][0].value)

//男子風呂の温度 環境に応じて切り替えて下さい
var danshi = tmprs["devices"][2]["channel"][0].value

//女子風呂の温度 環境に応じて切り替えて下さい
var joshi = tmprs["devices"][1]["channel"][0].value

var nowtime = new Date()
var status 
var sht = SpreadsheetApp.getActiveSheet()

if (Math.max(danshi,joshi)>44) {
  Logger.log("熱い")
//デバッグ用  sht.getRange("B1").setValue(nowtime)
  status = "hot"
}

if (Math.min(danshi,joshi)<38){
  Logger.log("冷たい")
//デバッグ用  sht.getRange("B3").setValue(nowtime)
  status = "cold" 
}

if (Math.min(danshi,joshi)<38 && Math.max(danshi,joshi)>44){
  Logger.log("なんか変")
  status = "somethingwrong"
}

//最後のswitch文
switch(status){
  case "hot":
    sht.getRange("D5").setValue(nowtime)
    break
  case "cold":
    sht.getRange("F5").setValue(nowtime)
    break
  case "somethingwrong":  
    sht.getRange("E5").setValue(nowtime)
    break
  default:
    sht.getRange("G5").setValue(nowtime)
    break    
  
    
}