はじめに
格安電力会社に変更したら電力使用量を確認できる表示が無かったため、Nature Remo E lite とGoogleAppsScript (以降 GAS)で自作した記録です。
使用機材
・Nature Remo E lite https://amzn.to/3TNQi3n
1.電力メーター情報発信サービス(Bルートサービス)への申請
2.Nature Remo E lite のセットアップ
Nature Remo E / E lite セットアップマニュアル(初期設定方法)
3.Nature Cloud APIへのアクセストークンを取得
自分のアクセストークンは、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 を使う。
参考