ECHONETLiteを使ってブレーカーが落ちないようにHomeAssistantでエコキュートを制御する

@neo0717.com

背景と課題

我が家のブレーカーは60Aで、エコキュートのほかにプリウスPHV(2017)の充電器があり、特にエアコンを使用する冬季は1:00~6:00の深夜時間帯の電力使用量が増加します。これが原因で頻繁にブレーカーが落ちるため、対策を講じることにしました。

電力使用状況の整理

まず、プリウスPHVの充電電力は「MAX」と「8A」から選ぶことができます。200Vのコンセントなので、契約ブレーカー換算でそれぞれ30Aと16Aとなります。夏季であればエコキュートは昼間に太陽光電力を使用し、エアコンの消費電力も大したことないのでMAXで十分なのですが、冬季は厳しくなります。そこでまずはこの設定を8Aにしました。

エコキュートは外気温によって消費電力が1500W~2200Wくらいで変動します。冬季は消費電力が増え、稼働時間も伸びます。夏季は2~3時間ほどで沸き上げが完了しますが、冬季は4時間くらいかかります。6時までに沸き上げようと自動制御されるので、夏季は3時~5時くらいに稼働します。

時間が短ければ1時から充電するプリウスの充電器とうまいこと時間がずれて電気を使うので問題ないのですが、エコキュートと同時稼働すると非常にまずい状況になります。2200W + 3000W で 800W 使っただけでブレーカーが落ちる計算です。

解決策の選定

ELSEEV mode3のような、使用電力量に応じてEV充電器の出力を抑制できればいいのですが、あいにく予算がないのでエコキュートを止めたり動かしたりする方法でブレーカーが落ちないようにする方法にしました。

自宅には以下の機器がありました:

  • 分電盤の電力を測定する機器(ECHONETLite対応計測ユニット)
  • ECHONETLiteに対応したエコキュート(コロナ製)
  • ECHONETLiteに対応した蓄電池(Panasonic製)
  • AISEG2(ただし自動化には向かない)

AISEG2はあまり自動化には向かない(電力量とかを抜き出せない)ので、直接ECHONETLiteの値を読むべく、HomeAssistantとECHONETLite2MQTTを使用することにしました。

実装方法

分電盤の電力測定設定

分電盤はMQTTデバイスのセンサーとして登録し、状態トピックを下記に設定すれば、瞬時電力値を取得できます。

echonetlite2mqtt/elapi/v2/devices/(デバイスのID)/properties/instantaneousElectricPower

注意: デバイスクラスにPowerとEnergyがありますが、これはそれぞれ電力値(W)と電力量(Wh)を示すので、間違えないようにしましょう。

エコキュートの制御設定

エコキュートの稼働・停止はMQTTデバイスの「select」として登録すれば状態を読んだり設定したりできます。

Command topic:

echonetlite2mqtt/elapi/v2/devices/(デバイスのID)/properties/automaticWaterHeating/set

設定内容:

  • Payloadのoffはfalse、onをtrueと設定
  • Set optionsはauto, manualHeating, manualNoHeatingと設定
    • auto: 自動
    • manualHeating: 手動沸き上げ
    • manualNoHeating: 休止

蓄電池がある場合の追加設定

家には蓄電池(Panasonic製、AI制御モードで使用)があり、これが深夜電力で充電する挙動をするときがあります。

蓄電池自体は充電電力でブレーカーが落ちないように自動制御される(500Wくらい余裕を残す)のですが、分電盤では電力がひっ迫しているように見えてエコキュートがずっと休止状態になることがあります。これを回避するにはヘルパーで「実際の消費電力」エンティティを作成するとよいでしょう。

実際の消費電力エンティティの作成方法

Templateのヘルパーを作成し、Sensorとして、Stateを下記のように設定します。

{% set grid = states('(分電盤の消費電力のエンティティID)') | float(0) %}
{% set battery = states('(蓄電池の充電電力のエンティティID)') | float(0) %}
{{ grid - battery }}

重要: 単位を「W」、クラスを「パワー」と設定するのを忘れずに。

蓄電池の充放電電力の取得

蓄電池の充放電電力はECHONETLiteに対応していればMQTTデバイスとして下記で設定できます。

echonetlite2mqtt/elapi/v2/devices/(デバイスのID)/properties/instantaneousChargingAndDischargingElectricPower

このエンティティを使用することで、蓄電池充電中でも正確な家全体の消費電力を把握でき、エコキュートの制御が適切に行えるようになります。

オートメーションの設定

これで準備は済んだので、あとはオートメーションを設定します。

注意: 蓄電池がある場合は、分電盤の値ではなく上記で作成した「実際の消費電力」エンティティを使用してください。

オートメーション1: 電力使用量が多い場合にエコキュートを停止

分電盤の値(または実際の消費電力)が6000Wを超えたらエコキュートをmanualNoHeatingにする

オートメーション2: 電力に余裕がある場合にエコキュートを再開

  • 分電盤の値(または実際の消費電力)が3800W未満(2200W余剰があれば)
  • かつエコキュートがmanualNoHeatingの場合
  • エコキュートをautoに戻す

この2つのオートメーションを作成すれば、エコキュートのせいで電力を使いすぎることはなくなります。追加でスマホに通知を送ったりすると分かりやすくなります。

使用感

当初はエコキュートが休止の指令を受けてから停止まで時間が掛かってブレーカーが落ちてしまうのでは?と思っていましたが、比較的速やかに電力が止まる(10秒未満くらい?)ので、これでブレーカーが落ちることはありませんでした。

一方で、一夜の間に数回停止と稼働を繰り返すので、効率とか寿命に悪影響があるのでは?とも感じました。ブレーカー落ちを繰り返すよりはましなので、しばらく様子見しようと思います。


まとめ: ECHONETLiteとHomeAssistantを組み合わせることで、予算をかけずにブレーカー落ちの問題を解決できました。蓄電池がある環境では、充電電力を考慮した「実際の消費電力」を計算することで、より適切な制御が可能になります。同様の課題を抱えている方の参考になれば幸いです。

neo0717.com
ネオ

@neo0717.com

機械いじりすき

Post reaction in Bluesky

*To be shown as a reaction, include article link in the post or add link card

Reactions from everyone (0)

ECHONETLiteを使ってブレーカーが落ちないようにHomeAssistantでエコキュートを制御する | ネオ | WhiteWind blog