うちは新築のときに太陽光発電6.9kWを載せていて、EVはモデルYLとATTO3の2台。給湯器はパナソニックのエコキュートを使用しています。
EVの充電は、ラズパイのHome Assistantで太陽光の余りだけを使う仕組みを前から動かしています。そこに最近エコキュートも加えて、翌日の発電予報を見ながら昼に沸かす仕組みがかなりうまく回るようになりました。

前回の記事のあとも、Claude Codeと少しずつ直してきました。完璧とまではいきませんが、太陽光の自家消費を最大限に高めるために工夫したところをまとめて紹介します。

もくじ
エコキュートの昼沸き上げ機能を使わず自作した理由
エコキュートにも、昼に太陽光で沸かす機能はあります。ただ、ベースの部分は必ず夜に沸かしてしまうので、夜の沸き上げは残り、太陽光の自家消費量を最大化できません。
エコキュートの時計をずらして、夜の沸き上げを昼に動かす方法も実践していましたが、時計がずれたままになるし、雨の日などは手動で止めない限り高い電気料金の時間帯で沸かしてしまうという問題もありました。
自作なら、時計はそのままで夜の沸き上げを完全に止められます。しかも、昼は発電が余っていることを確かめてから沸かし始めて、電気を買う状態が続いたら止める。ここまで自動にできてしまいました。

電気代の面でも、自家消費を増やす意味が大きくなりました。補助金が終わって、夜間の実質単価は23円台。うちのFIT売電の19円より高いので、太陽光は売るより自分で使ったほうが得です。

翌日の発電予報は3つの気象モデルを混ぜた自前の予報に
最初は無料のForecast.Solarで翌日の発電を予報して湯沸かし量を予定しようとはじめました。ところが、晴れる日でも予想発電量がかなり控えめに出ます。
そこでClaude Codeに、天気予報のデータから自前で発電を予報してもらいました。
使っているのは無料のOpen-Meteoで、気象庁・ヨーロッパ・ドイツの3つの気象モデルの予報を、過去の実績で重みを付けて混ぜています。
直近30日の1日あたりの発電量予測と実績の誤差は、Forecast.Solarが11.17kWh、自前の予報が2.09kWhでした。たとえば10月18日の発電予測はForecast.Solarが16.8kWh、自前が28.6kWhで、実際の発電は29.4kWhです。

予報もなかなかの精度です。それでも曇りの予報の日は発電予測量が多めに出がちなので、明日の昼に沸かせる量は見込みの8割で見ています。
昼に沸かしていい時間帯(発電が十分ある時間帯)も、月ごとの表から、その日の太陽の位置で毎回計算する形に変えてもらいました。
また、気温が低い日は暖房も電気を食うので、発電の基準を余力1〜3kWの間で上げています。

翌日の予報でお湯の量を自動で変える
翌日の発電が少なければ今日多めに沸かす
ふだんの昼の目標湯量は500Lにしています。明日の昼にあまり沸かせそうにないときは、足りない分を今日の目標に足して、最大800Lまで沸かします。
晴れが続く日は500Lで止めて、余りはEVの充電に回します。逆に雨の前の日は多めに沸かしてくれるので、次の日に夜間の電気で沸かさずに済みます。
500Lとしたのは、毎日使う量は200L〜250Lほどですが、沸かしてからの自然減を突発的なことに余力を持たせての量にしています。
おそらく、エコキュートの自動にまかせて湯沸かししていたときも同じくらいの量を日々沸かしていたと思います。
夜は足りない分だけ沸かす
前回の記事のときは、夜に沸かすか止めるかの二択でした。今は「明日の昼までに足りない分」だけを夜に沸かします。
夜に沸かす量は、目標の500Lから今の残湯と明日の昼に沸かせる見込みを引いたものです。足りていれば0Lで、夜は休止します。これを夜間料金の始まる23時頃に判定します。
いまのところ、夜沸かす必要があったことはまだありません。
朝5時と夕方17時にもう一度確かめる
夜の判定のあとで予報が変わることもあるので、朝5時5分にもう一度確かめます。そのときの残湯が400Lを切っていて、今日の昼にも発電不足で足りなさそうなときだけ、7時までの夜間料金のうちに沸かします。
また、夕方17時にも、残湯が350Lを切っていたら沸かす設定をいれました。昼の予報が外れて沸かせなかった日の保険です。

余りを確かめてから沸かし、買電が続いたら止める
昼の沸き上げは、実際の売電を見て余りが十分あるときだけ始めます。目標湯量に届いたら止め、電気を買う状態が続いたときも止めます。
10月17日のグラフです。青がエコキュートで、9時前から約1kWで沸かしています。その上の緑がEVの充電で、残った余りを使っています。(このグラフもClaudeCodeに頼んで作成してもらいました)

10月21日は、昼に240Lから560Lまで沸かして、10時48分に自動で止まりました。


1kWhで何L沸くかは、沸き上げのたびに自動で学習させています。今のところ、昼の沸き増しのほうが1kWhで多く沸いています。
EV充電との分け方と安全ガード
お湯はEVの充電より優先にしています。エコキュートが動き出すと、EVの充電電流は残りの余りまで自動で下がります。
EVの電流は、スマートメーターの値を家の中で直接読んで、約30秒ごとに余りに合わせ出力アンペアを直すようにしました。以前は3分おきに電力チェックだったので、雲が出たときの追従がかなり早くなっています。

安全ガードも入れました。契約容量は10kVAなので、夜の充電は家全体で9,000Wまで、9,500Wを超えたらすぐ充電を絞ります。

エコキュートの休止は毎晩1日分だけかけ直す方式なので、ラズパイが止まっても翌日には通常運転に戻ります。全体のスイッチを切れば、すぐに元の動きに戻せるのも安心です。
まとめ
EVの充電に加えてエコキュートも昼の太陽光で沸かせるようになって、電気料金の値上げもそれほど怖くなくなりました。
どれも、ラズパイ1台とClaude Codeでできています。自分はプログラミングの知識は全くありませんが、気になったところを伝えて少しずつ調整してもらい、ここまで来ました。
Home Assistantを動かしているのは、Raspberry Pi 4B(4GB)のスターターセットです。

これから冬は日が短くなり、12月は昼に沸かせる時間が4時間半ほどしかありません。暖房で家の消費も増えるので、直したところが出てきたら、また記事にしようと思います。
