ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。プログラム&ロボット大好きなポンコツが日々の記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

Nature RemoのAPIを叩き続けて温度と湿度を集計してみた。

以前、Nature Remoを購入したので、APIを叩きまくってみようと思い、たくさん叩き続けてみました。

ドキュメント:https://developer.nature.global/

 

今回も毎度お馴染みのGoogle Apps Script(GAS)を使って、APIを叩き、スプレッドシートに記録していくスクリプトを書きました。

 

ソースコード

スクリプトは雑に書いちゃいましたのでちょっと恥ずかしい。。

var access_token = '***************'
var spreadsheetId = '*****************'

function test() {
  var data = getNatureRemoData();
  var lastData = getLastData();
  setLatestData(
  {
    te:data[0].newest_events.te.val,
    hu:data[0].newest_events.hu.val,
  },
  lastData.row + 1
  );
}

function getNatureRemoData() {
  var url = "https://api.nature.global/1/devices";
  var headers = {
    "Content-Type" : "application/json;",
    'Authorization': 'Bearer ' + access_token,
  };

  var postData = {

  };

  var options = {
    "method" : "get",
    "headers" : headers,
  };

  var data = JSON.parse(UrlFetchApp.fetch(url, options));
  Logger.log(data[0].newest_events)
  Logger.log(data[0].newest_events.te.val)
  Logger.log(data[0].newest_events.hu.val)

  return data;
}

function getLastData() {
  var datas = SpreadsheetApp.openById(spreadsheetId).getSheetByName('log').getDataRange().getValues()
  var data = datas[datas.length - 1]

  return {
    totalpoint:data[1],
    coupon:data[2],
    row:datas.length,
  }
}

function setLatestData(data, row) {
  SpreadsheetApp.openById(spreadsheetId).getSheetByName('log').getRange(row, 1).setValue(new Date())
  SpreadsheetApp.openById(spreadsheetId).getSheetByName('log').getRange(row, 2).setValue(data.te)
  SpreadsheetApp.openById(spreadsheetId).getSheetByName('log').getRange(row, 3).setValue(data.hu)
}

access_tokenにはNature Remoのアクセストークンを入力。

spreadsheetIdにはログを出力する先のスプレッドシートのIDを入力。

今回は15分毎に実行してみました。

 

集計結果

スプレッドシートに出力したログをグラフ化してみました。

f:id:ponkotsu0605:20190417232551p:plain

画像だとわかりにくいかもしれないですが、

  • 湿度が10%刻みの粒度で、40%,50%,60%のような計測結果になっている
  • 温度が15分毎には更新されているので、更新頻度は15分以内である(それよりも細かくは試してない)
  • 温度の細かさについては、22.39, 23, 23.6, 24.2, 24.79のようなログになっているので、約0.6℃刻みの粒度になっているっぽい

 

最後に

こういう計測を24時間×数日間やってみることで、生活がわかってくるかもしれないですね。