Sympapaのスマートホーム日記

スマートなんとかはスマートじゃない方法でつくられている

新居のスマート化: 太陽光システムをHome Assistantに接続して電気代を自動計算する(2)

Sympapaです。

前回に引き続き、「太陽光システムをHome Assistantに接続して電気代を自動計算する」シリーズです。
sympapa.hatenablog.com


新居には4.8kWのソーラーパネルを載せました。
パワーコンディショナーはOmron製でEchonet Liteに対応しているので、これを使ってHome Assistantと接続しています。
発電量、売電量、買電量、瞬間発電電力、瞬間使用電力などが取得できます。
これを活用したスマートホーム化のゴールは「電気代の見える化」と「太陽光パネルを導入したことが本当にお得だったのかを自動的に判るようにすること」、そして「発電状況によってエコキュートやエアコンを自動制御する」ことです。


このシリーズでは「電気代の見える化」と「太陽光パネルの導入したことが本当にお得だったのかを自動的に判るようにすること」について書いています。
前回はHome Assistantを使って「夜間(20時~8時)」「週末昼間」「夏季の平日昼間」「夏季以外の平日昼間」の単価別に「買電量」と「消費量」をカウントするところまでを書きました。
今回は「電気料金」と「太陽光パネルがなかった場合の電気料金」の自動計算について書いていきます。

■おさらい:当月の電気の消費量や発電量をカウントする

我が家で契約している電気料金プランの場合、「夜間(20時~8時)」「週末昼間」「夏季の平日昼間」「夏季以外の平日昼間」で単価が異なります。
なので「電気代」と「太陽光パネルがなかった場合の電気料金」が無かった場合の電気代」を計算するには、当月の「消費量」と当月の「買電量」を単価別にカウントしなくてはいけません。
Home Assistantのユーティリティメーターを使って、単価別に「消費量」と「買電量」をカウントできるようにしたのが前回のお話です。


以下のユーティリティメーターを作成しました。


今月の単価別買電量をカウントするユーティリティメーター

select.cumulative_amount_of_electric_energy_normal_direction_this_month_separeted_by_tariff
sensor.cumulative_amount_of_electric_energy_normal_direction_this_month_separeted_by_tariff_night
sensor.cumulative_amount_of_electric_energy_normal_direction_this_month_separeted_by_tariff_weekend
sensor.cumulative_amount_of_electric_energy_normal_direction_this_month_separeted_by_tariff_summer
sensor.cumulative_amount_of_electric_energy_normal_direction_this_month_separeted_by_tariff_other_seasons


今月の単価別消費量をカウントするユーティリティメーター

select.cumulative_electricity_consumption_this_month_separeted_by_tariff
sensor.cumulative_electricity_consumption_this_month_separeted_by_tariff_night
sensor.cumulative_electricity_consumption_this_month_separeted_by_tariff_weekend
sensor.cumulative_electricity_consumption_this_month_separeted_by_tariff_summer
sensor.cumulative_electricity_consumption_this_month_separeted_by_tariff_other_seasons


その他、以下のユーティリティメーターも作成しました。

今月の買電量: sensor.electric_energy_bought_this_month
今月の売電量: sensor.electric_energy_sold_this_month
今月の発電量: sensor.solar_power_amount_of_energy_generated_this_month

■単価を入力する数値入力エンティティを作る

単価を入力するinput.numberエンティティを作成します。
用意するのは、「夜間(20時~8時)」「週末昼間」「夏季の平日昼間」「夏季以外の平日昼間」の他、「売電単価」「燃料費調整額」「再エネ賦課金」「基本料金」の計8個です。
数値入力エンティティは以下のように作成できます。
1) [設定]>[デバイスとサービス]>[ヘルパー]と進みます。
2) [ヘルパーを作成]を押し「数]を選択します。
3) 名前を付けます。
4) その他必要に応じて設定します。
ここで作成したエンティティをダッシュボードに並べ、長押しすると単価を入力できるように設定してやりました。その月の単価を入力してやれば計算に反映されるようにしています。

作成した数値入力エンティティ

input_number.electricity_unit_price_for_night
input_number.electricity_unit_price_for_weekend
input_number.electricity_unit_price_for_daytime_in_other_seasons
input_number.electricity_unit_price_for_daytime_in_summer
input_number.current_electric_sell_unit_price
input_number.current_fuel_cost_adjustment_amount
input_number.current_renewable_energy_charge_unit_price
input_number.current_electricity_bills_basic_monthly_fee

■電気代を計算するテンプレートセンサーを作る

ここまで来れば、あとはテンプレートセンサーで計算式を作って計算させるだけです。
一気に全てを計算しても良いのですがテンプレートエディターが1行しか見えず、長くなると全体を見るのにかなりスクロールさせなければいけないので間違いやすくなるため、第1ステップで[Cost1=夜間買電量×夜間単価+週末昼間買電量*週末昼間単価+夏季昼間買電量*夏季昼間単価+夏季以外昼間買電量*夏季以外昼間単価]を計算し、第2ステップで[Cost2=Cost1+買電量*(燃料費調整額+再エネ賦課金)+基本料金]の計算をしています。
同様に、消費量に対しても同じ計算をしてやれば、それが「太陽光パネルがなかった場合の電気代」ということになります。
あと、「売電金額」のテンプレートセンサーも作成してやります。
テンプレートセンサーの作り方は前回の記事に書いています。

・第1ステップ:
entity id: energy_cost_caliculated_this_month

{{ states( "sensor.electric_energy_bought_this_month_night") | float * states("input_number.electricity_unit_price_for_night") |float + states("sensor.electric_energy_bought_this_month_weekend") | float * states("input_number.electricity_unit_price_for_weekend") | float + states("sensor.electric_energy_bought_this_month_other_seasons") | float * states("input_number.electricity_unit_price_for_daytime_in_other_seasons") | float + states("sensor.electric_energy_bought_this_month_summer") | float * states("input_number.electricity_unit_price_for_daytime_in_summer") | float}}


・第2ステップ:
entity id: energy_cost_various_costs_calculated_this_month

{{ states("sensor.energy_cost_caliculated_this_month") |float + states("sensor.electric_energy_bought_this_month") | float * (states("input_number.current_fuel_cost_adjustment_amount") | float + states("input_number.current_renewable_energy_charge_unit_price") | float ) + states("input_number.current_electricity_bills_basic_monthly_fee") | float }}

太陽光パネルでどれだけお得になっているかを計算する

単純に[消費量に対する電気代 - 買電量に対する電気代 + 売電金額]を計算するテンプレートセンサーを作成しました。

■電気関係のダッシュボード

こんな感じのダッシュボードを作ってリモコンニッチに設置してあるタブレットに表示できるようにしています。

■まとめ

これで、「電気代」と「太陽光パネルがなかった場合の電気代」、「太陽光パネルでお得になった金額」が判るようになりました。
送電会社の情報はあくまでも買電と売電に関するものだけのため太陽光パネルが無かった場合の電気代を知ることが出来ないので、これで太陽光パネルのコスト効果を実績として知ることが出来ます。
来月くらいからは「毎月の太陽光お得金額」の記事を書いていこうと思います。
最終目標はスプレッドシートに月単位で自動保存していくことですが、まぁ月が変わってからでも履歴を見れば確認出来るので、手動で拾ってエクセルやブログに記録していけば目的は果たせるかなと。


次は「エコキュートの自動制御(疑似おひさまエコキュート)シリーズ」を書こうと思います。


それでは。