Help us understand the problem. What is going on with this article?

Nature RemoのセンサーデータをGoogle Spread Sheetにまとめてみる

TL;DR

Nature RemoのセンサーデータをSpread Sheetに貼り付けるだけのGASです。
これのremo_to_spreadsheet.gsをGoogle Spread SheetのGASにコピーして使ってください。
https://github.com/tobi50/nature-remo-to-spreadsheet

Nature Remo

昔からあるエアコンやライトのリモコンの代わりに、スマホアプリなどインターネットからの指令で赤外線を飛ばす素敵ツール。

https://nature.global/

昔からアプリ上では温度とか湿度とか見れていたのですが、ログとして溜まっていなかったので、イマイチ活用出来ませんでした。
しかし!実はAPIが公開されているとのことだったので、早速使ってみました。

Nature Remo API

良い記事があったので詳細はこちらにお任せ
https://qiita.com/sohsatoh/items/b710ab3fa05e77ab2b0a

公式サイトは下記となります。
https://developer.nature.global/

取得できるセンサーデータは4種類(気温、湿度、照度、動き)

APIの内、今回使用するのは/1/devicesというNature Remoデバイスの情報を取得します。
中にはデバイスが配列として複数格納されていて、その中にnewest_eventsとしてセンサーデータが格納されています。
teが気温、huが湿度、ilが照度、moが動きセンサーの値です。

"newest_events": {
      "te": {
        "val": 0,
        "created_at": "2020-01-12T12:14:57.423Z"
      },
      "hu": {
        "val": 0,
        "created_at": "2020-01-12T12:14:57.423Z"
      },
      "il": {
        "val": 0,
        "created_at": "2020-01-12T12:14:57.423Z"
      },
      "mo": {
        "val": 0,
        "created_at": "2020-01-12T12:14:57.423Z"
      }
    }

センサーデータの取得タイミングは変えられないので注意

実際にデータを定期的に取得してみると分かるのですが、センサーデータはなっかなか更新されない時があります。
これはNature Remoの仕様のようで、センサー内部で計測をする際に前回データと変わらなければcreated_atが更新されないようです。
ただ、どれくらいの値の変化なら変わらないと判定されるかまでは情報見つかりませんでした・・・。

GASを作って定期的にAPIをKickする

最初はLambdaとかバッチ実行できるものを想定していたのですが、なんとGASで定期実行出来るようなので試してみました。

GASをコピペする

GASの編集画面を開くために、新しく作成したSpreadSheetの下記からスクリプトエディタを開きます。

スクリプトエディタ

今回作成したScriptを下記URLからコピーしてきて、スクリプトエディタの右下コード部分に貼り付けて使います。

https://github.com/tobi50/nature-remo-to-spreadsheet/blob/master/remo_to_spreadsheet.gs

コードコピペ

コードの初期設定

コードの上の方にある下記の部分に従って設定していきます。

// Please get your access token from https://home.nature.global/
var REMO_ACCESS_TOKEN = 'YourAccessToken';

// Please set your spreadsheet url.
var SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/d/hogehoge/edit#gid=0'

// First, Exec this script to create new device sheet. Check new device sheet, and Set your device id.
var REMO_TARGET_DEVICE_ID = 'YourDeviceId'

// Second, Exec this script. Check data sheet (default is "remo_logs"). if you can check your device data, Congratuation!
// Finaly, Set Triger on your project to exec every XXX minutes or hours.

最初にNature Remoのアクセストークンを下記のサイトから取得し、REMO_ACCESS_TOKENに代入してAPIを叩けるようにしてください。

https://home.nature.global/

次に先ほど作成したSpreadSheetのURLをSPREADSHEET_URLに代入します。

このタイミングで一度スクリプトを保存して実行しましょう。

認可設定

適当に保存して実行すると、Authorization requiredが表示され、このコピペしたスクリプトに対しての認可が求められます。
このスクリプト自体はGoogleに確認してもらってる訳ではないので、警告が出ます。詳細を表示>〇〇(安全でないページ)に移動を順にクリックして自己責任で使ってください。

Nature Remoのdevice idを確認して設定

上手く実行出来れば、Nature Remoのデバイス情報のシートが作成されます。試してないのですが複数デバイスがあれば複数のシートが作成されるハズです。
情報を取得したいデバイスのシートからidの値を取ってきてREMO_TARGET_DEVICE_IDに代入します。

(なんか今思えば全部のデバイスのデータ出すようにすりゃよかったですね…。プルリクウェルカムです。)

ここまで出来たら実行すれば新しいシートが作られてデータが実行するたびに溜まっていくハズです。

GASにトリガーを設定する

トリガー

ここをクリックして

トリガーを追加

トリガーを追加をクリックして

トリガーの設定

こんな感じで設定すると5分おきに実行されるようになります。

出来上がり

こんな感じでデータがどんどこ溜まってきたらOKです。
適当にグラフなんかも追加しちゃうと行動パターンが分かって面白いです。

データイメージ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした