Skip to content

スマートメーターから電力使用量のデータを取得して、M5Stackの画面にいろいろ表示します。きっと節電したくなります。

License

Notifications You must be signed in to change notification settings

yonmas/SMM3-SmartMeterMonitor_v3

Repository files navigation

SMM3 : Smart Meter Monitor v.3

お知らせ(2024/05/11)

  • 電気料金計算モジュール内の関数が増えると、メモリーを圧迫して不具合が出るために、電力会社別にモジュールを分割しました。 calc_charge フォルダー内のモジュールを、calc_charge.py にリネームしてお使いください。また、中部電力スマートライフプランの 電気料金計算関数 に誤りがあったため修正しました。

  • スマートメーターの機種によっては使用電力量の履歴データ保持期間が短く、検針日からの電気料金等の計算ができません。そのようなスマートメーターに対応した、liteバージョン を追加しました。親機、子機とも、lite フォルダー内のメインプログラムをお使いください。ファイル名のリネームは不要です。

    • smm3-lite_main.py(親機)
    • smm3-lite_sub.py(子機 ※Basic用)
    • smm3-lite_sub_core2.py(子機 ※Core2用)
  • liteバージョン の仕様は以下の通りです。

    • 積算電力量と電気料金の集計期間は、13日前から前日までの13日間で、当日は含みません。更新は1日1回です。
    • 電気料金は検針日を無視した上記期間の参考値です。料金計算用の 基本料金燃料費調整額再エネ賦課金 は0にしておくとよいでしょう。
    • 確認ができた、履歴保持期間が当日含んで14日間のスマートメーターに対応させました。リクエストをいただければ、他の仕様についても対応いたします。

(2024/05/11)


  • 電気料金の計算関数に、電気料金プランを追加しました。設定用Googleスプレッドシート(設定用GSS)の 電気料金計算関数名 に、関数名を入力して設定用GSSの再読込み、もしくは再起動をしてください。設定用GSSの料金単価設定方法は、[calc_charge.py] を参照してください。(ご希望の料金プラン関数があれば、リクエストいただければ対応します。)
東京電力:
  tepco : 従量電灯B
  tepco_smartlife_s : スマートライフS

中部電力: ※祝祭日料金には対応していません。
  chubu_smartlife : スマートライフプラン(スタンダード)
  chubu_smartlife_asa : スマートライフプラン(朝とく)
  chubu_smartlife_yoru : スマートライフプラン(夜とく)
  • 仕様変更により、起動後に電気料金が表示されるまで、数分間の時間がかかるようになりました。
  • 履歴データ読込み時のインジケーター(赤点滅)がうまく表示されなかったのを修正しました。
  • 設定用GSSの、燃料費調整額再エネ賦課金 の項目位置(上下)を入れ替えました。
  • タイマーリソース不足により挙動が不安定なため、子機の checkWiFi() の定期実行を中止しました。

(2024/05/07)


M5Stackで電力使用量を「見える化」して電気代を節約しよう!

title

0. 最低限の手順

細かいこと はいいから、とりあえず使ってみたいという場合は、以下の手順で。

  1. M5Stack Basic/Core2 と M5StickC Plus を準備して、M5StickC Plus に BP35A1 を組み込んでください。[2.使用機器] 参照。
  2. [4.ファイル構成] に従って、必要なファイルを 親機:M5StickC、子機:M5Stack にインストールしてください。
  3. [5.初期設定] に従って、機器の初期設定を行ってください。

1. 概要

親機:M5StickC Plus + Wi-SUNモジュール BP35A1 で、家庭のスマートメーターから電力使用量のデータを取得して、子機:M5Stackの画面ににいろいろ表示します。前日、直近7日間、直近30日間の電力使用量との比較をグラフ化。眺めていると、ついつい節電したくなるはずです。

以前のバージョンからの変更点:

  • ページのオートローテーション機能を追加
  • 直近30日間のデータ表示を追加
  • 直近7日間のグラフに日付を追加
  • Bルートアカウント他、主要な設定のGoogleスプレッドシートからの読込みに対応
  • 表示の見直し、内部処理の効率化、その他

ページ構成(手動およびオートローテーション):

  1. 瞬時電力 (W)/瞬時電流 (A)/検針日からの積算電力量 (kWh)/検針日からの電気料金 (円)
  2. 30分ごとの使用電力量グラフ(当日/前日)
  3. 1時間毎の使用電力量内訳表(当日/前日)
  4. 現時点まで/終日の電力使用量グラフ(当日/直近7日間)
  5. 1時間毎の使用電力量内訳表(当日/直近7日間)
  6. 現時点まで/終日の電力使用量グラフ(当日/直近30日間)
  7. 1時間毎の使用電力量内訳表(当日/直近30日間)

システム全体は、 @rin-ofumi さんの記事をベースにしています。Wi-SUN HAT の作者さんです。
https://kitto-yakudatsu.com/archives/7206
子機のシステムは、 @rin-ofumi さんのコードをベースにしています。
https://github.com/rin-ofumi/m5stickc_wisun_hat
親機のシステムと全体の表示形式は、 @miyaichi さんのコードをベースにしています。
https://github.com/miyaichi/SmartMeter

(子機:M5Stack Basic/Core2 のファームは、V1.10.2 以降としてください。)

2. 使用機器

※ M5Stick および M5Stack を電源に繋いで長期運用する場合は、バッテリーを撤去した方が安心かもしれません。
※ 親機だけでも動きますが、子機を追加することで、より多様なデータ表示が実現できます。
※ 複数子機の運用に対応しています。

3. 事前準備

電力会社にBルートサービスの利用開始を申し込み、認証IDとパスワードを取得する。
--> 東京電力申込みサイト

Ambient でアカウントを作成し、チャネルを作成。チャネルIDとライトキーを取得する。
(オプション:取得した電力や使用量をクラウド上に記録、グラフ化するサービス(無料)です。)
--> Ambient

4. ファイル構成

スマートメーターの履歴保持期間によって通常バージョンか、liteバージョンをお選びください。まずは通常バージョンを試して、30日間グラフが途中までしか描かれない場合は履歴保持期間が短いメーターなので、liteバージョンを使ってください。

■■ 親機(main):M5StickC Plus + Wi-SUN HAT(with BP35A1 module) ■■

/apps/
  +- smm3_main.py (親機メインプログラム)
  or
  +- smm3-lite_main.py (親機メインプログラム liteバージョン)

/(ルート)
  +- bp35a1.py (BP35A1クラス)
  +- func_main.py (外部モジュール)
  +- calc_charge.py (電気料金計算モジュール ※必要な計算モジュールをリネーム)
  +- logging.py (別途準備)
  +- ambient.py (オプション:別途準備)
  ===== 以下のファイルはGSSによる設定を行わない場合のみ使用 =====
  +- api_config.json (オプション:設定用GoogleスプレッドシートのAPI情報)
  +- config_main.json (オプション:親機設定ファイル)
■■ 子機(sub):M5Stack Basic/Core2 ■■ 
※ Basic用とCore2用、それぞれ専用のプログラムを使用してください。
※ M5Stack Basic のファームは、V1.10.2 以降としてください。

/apps/
  +- smm3_sub.py (子機メインプログラム ※Basic用)
  +- smm3_sub_core2.py (子機メインプログラム ※Core2用)
  or
  +- smm3-lite_sub.py (子機メインプログラム liteバージョン ※Basic用)
  +- smm3-lite_sub_core2.py (子機メインプログラム liteバージョン ※Core2用)

/(ルート)
  +- func_sub.py (外部モジュール ※Basic用)
  +- func_sub_core2.py (外部モジュール ※Core2用)
  +- logging.py (別途準備)
  ===== 以下のファイルはGSSによる設定を行わない場合のみ使用 =====
  +- api_config.json (オプション:設定用GoogleスプレッドシートのAPI情報)
  +- config_sub.json (オプション:子機設定ファイル)

同梱の _config_main.json, _api_config.json は、必要最低限の設定値(それぞれ、Bルートのアカウント、設定用Googleスプレッドシート(設定用GSS)のAPI情報)のみを記載したものです。アンダーバーを削除してお使いください。記載のない設定値はプログラム内の初期値が使用されます。(添付の設定用ファイルの各項目の値とプログラム内の初期値は同じです。)

モジュールのダウンロードはこちらから

ambient.py
logging.py

5. 初期設定

Step-1. 設定用Googleスプレッドシート(設定用GSS)の準備とGoogle Sheets APIの取得(SMM_config)
Step-2. 設定用GSSのAPI設定読み込み(SMM_API_config)
 ※ それぞれリンク先の説明を参照してください。

6. ボタンの説明

親機

  • Aボタン   :上下反転
  • Aボタン長押し:設定用GSSから設定読込み
  • Bボタン長押し:履歴データ再取得 (new!)

子機

  • Aボタン   :ページ進む
  • Bボタン   :ページ戻る
  • Cボタン   :アンペア警告音 on/off
  • Aボタン長押し:設定用GSSから設定読込み
  • Bボタン長押し:オートローテーション on/off
  • Cボタン長押し:履歴データ再取得

その他

GoogleスプレッドシートのReademe に、もう少し細かい情報を書き記しているので、参考にしてください。

お知らせ履歴

M5Stack Core2 に対応する子機用プログラムを追加しました。Basic用とCore2用、それぞれ使用機器に合わせてインストールしてください。

Wi-Fi接続確認のルーチンが作動していなかったのを修正しました。他、細かいバグを修正しました。

設定用Googleスプレッドシート(設定用GSS)の構成を変更しました。最新版のプログラムと設定用GSSの組み合わせで利用してください。BasicとCore2で、画面の明るさ設定項目が異なるので注意してください。 (2024/04/10)


子機のグラフ表示に使う履歴データをスマートメータから取得するロジックを根本的に見直しました。また、内部処理に挿入していたウェイトを、動作に影響がないと思われる範囲で削減。結果として、初期化時にかかる時間を大幅に短縮しました。

【見直し前】子機からのリクエストに応じて、その都度、親機がスマートメーターから履歴データを取得・転送していました。
【見直し後】親機の起動時にスマートメーターから履歴データを取得して、親機内に保存、随時更新。子機からのリクエスには、親機内に保存している履歴データを送信するようにしました。

親機の履歴データを再取得するため、[Bボタン長押し] を追加しました。その際には、自動的に子機の履歴データも更新されます。 (2023/10/21)


一部の設定用変数名を変更しました。最新のコードと設定用GSSをご利用ください!!(2023/10/10)

About

スマートメーターから電力使用量のデータを取得して、M5Stackの画面にいろいろ表示します。きっと節電したくなります。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages