3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

身の回りの困りごとを楽しく解決! by Works Human IntelligenceAdvent Calendar 2024

Day 18

Nature Remo E liteで自宅の電力使用量をスプレッドシートへ記録

Last updated at Posted at 2024-12-18

はじめに

格安電力会社に変更したら電力使用量を確認できる表示が無かったため、Nature Remo E lite とGoogleAppsScript (以降 GAS)で自作した記録です。

使用機材

・Nature Remo E lite https://amzn.to/3TNQi3n

1.電力メーター情報発信サービス(Bルートサービス)への申請

Bルート認証ID、パスワードを取得したい

2.Nature Remo E lite のセットアップ

Nature Remo E / E lite セットアップマニュアル(初期設定方法)

3.Nature Cloud APIへのアクセストークンを取得

Oauth2を通してアクセストークンを取得する

自分のアクセストークンは、http://home.nature.global より新規発行や失効することができます。

4.スプレッドシートを開き、電力データ収録するGASを作成

「拡張機能」「Apps Script」でGAS作成。

NatureRemoE.gs

function getMyHousePower() {

  //Nature Cloud APIへのアクセストークン
  let accessToken = '***************';

  //Nature Remo Cloud APIへリクエスト送り取得したJSONデータを変数に格納
  let params = {
    "method" : "get",
    "headers" : {"Authorization":"Bearer " + accessToken}
  };
  let requestUrl = 'https://api.nature.global/1/appliances';
  
  let response = UrlFetchApp.fetch(requestUrl, params);
  let json = JSON.parse(response.getContentText());

  //Google Sheetのシート名を取得(Google Sheetのシート名がデフォルトの"シート1"の場合)
  let book = SpreadsheetApp.getActiveSpreadsheet();
  let sheet1Data = book.getSheetByName("シート1");

  //Google Sheetの2行目に行を挿入する
  sheet1Data.insertRows(2,1);

  //現在の日時を取得し2行目1列目のセルに日時を入力する
  let date = new Date();
  let val_time = Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss');
  sheet1Data.getRange(2,1).setValue(val_time);

  //APIから取得したJSON形式のデータから積算電力と瞬間電力の値を探す
  let val_power1 = 0
  let val_power1_unit = 0
  let val_power2 = 0
  
  for(let i = 0 ; i < json[0]["smart_meter"]["echonetlite_properties"]["length"] ; i++ ){
  
    if(json[0]["smart_meter"]["echonetlite_properties"][i]["name"] == "normal_direction_cumulative_electric_energy" ){
      val_power1 = json[0]["smart_meter"]["echonetlite_properties"][i]["val"];
    }

    if(json[0]["smart_meter"]["echonetlite_properties"][i]["name"] == "cumulative_electric_energy_unit" ){
      val_power1_unit = json[0]["smart_meter"]["echonetlite_properties"][i]["val"];
    }

    if(json[0]["smart_meter"]["echonetlite_properties"][i]["name"] == "measured_instantaneous" ){
      val_power2 = json[0]["smart_meter"]["echonetlite_properties"][i]["val"];
    }
  }
  
  //積算電力の単位をkWhに統一して2行目2列目に入力
  sheet1Data.getRange(2, 2).setValue(val_power1 *( 0.1 ** val_power1_unit) );  
  
  //瞬間電力の単位はWなのでそのまま2行目3列目に入力  
  sheet1Data.getRange(2, 3).setValue(val_power2);  

}
 

5. GASを定期的に実行するため、トリガーを設定

「拡張機能」「AppsScript」「トリガー」で「トリガーを追加」し、イベントのソースを”時間主導型”、時間ベースのタイプを"分ベースのタイマー”、時間の間隔を”30分おき”に設定する。

追記

スプレッドシートのグラフで満足できなければ https://lookerstudio.google.com を使う。

参考

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?