我が家のエコキュートは、Home Assistantで夜の沸き上げを止めて、昼の太陽光の余りで沸かすようにしています。

ただ、夜を止めていいかは、翌日の昼に晴れるかどうかで変わります。曇りなのに夜を止めると、昼に沸かせずデイタイムの高い電気を買うことになります。
そこで、無料の発電予測サービス「Forecast.Solar」で翌日の発電を予測して、夜に沸かすか昼に回すかを自動で決めるようにしました。追加の費用は0円です。予測の精度の確かめ方から、全部自動で動くまでを紹介します。
もくじ
翌日の発電予測はForecast.Solarの無料枠
Forecast.Solarは、パネルの向き・傾き・容量を入れると、天気予報から発電量を予測してくれるサービスです。Home Assistantに連携があり、APIキーなしの無料枠で使えます。
無料枠はIPアドレスごとに1時間12回まで。Home Assistantは1時間に1回取りにいくので、余裕があります。
うちのパネルは南東向き・傾斜20度・6.9kWで、パワコンは5.5kWです。
いきなりエコキュートを制御するのは怖かったので、まずは予測が当たるかを確かめる仕組みから作ってもらいました。
- 毎晩22:50に、翌日の予測を記録する
- 日付が変わったら、それを「今日の予測」として引き継ぐ
- 前の晩の予測と、実際の発電量を日ごとのグラフに並べる
10月10日の15時半ごろの画面です。この日の予測27.7kWhに対して、実際の発電は28.90kWhでした。前の晩の記録は、この日に仕組みを作ったばかりなのでまだ「不明」です。

比べる相手は、売電ではなくパワコンの発電量にしました。売電は昼のEV充電やエコキュートで減るので、予測が当たったかどうかがわからなくなります。
予測を確かめる途中でわかったこと
発電のデータが数か月おかしかった
予測と並べるために発電と売電のグラフを見ていたら、1日の売電が1万kWhを超えている日がありました。屋根の太陽光でそんなに売れるわけがありません。
Claude Codeに調べてもらうと、スマートメーターの積算値が一瞬だけ化けていたそうです。26,257kWhだった値が、30秒だけ14,640kWhになってまた戻る。
Home Assistantは、積算値が下がると「メーターがリセットされた」と受け取ります。戻ったときに丸ごと足し直されて、1日に1万〜2万kWh売ったことになっていました。数か月で9回あったそうです。
下がった値と急に跳ねた値を捨てるセンサーを挟んでもらい、過去のグラフも34か所直してもらいました。
発電量のほうにも、センサーが一瞬途切れるたびに1日分が足し直されて、数百倍になる不具合がありました。こちらも設定を直してもらっています。
自分ではたぶん気づけなかったところです。。。
1日の発電量で判断していいか
エコキュートを沸かすのは昼の数時間なので、1日の発電量より、その時間帯の発電のほうが大事な気がします。
4月26日〜10月9日の167日分で確かめてもらうと、1日の発電量と沸き上げの時間帯の発電量は、ほぼ同じ動きでした(相関係数0.985)。南東向きなので、9〜15時に1日の約7割を発電しています。
なので、ざっくり1日の量で見ても困らなさそうです。ただ実際の判断には、もう少し細かい数字を使っています。
翌日の予報から今日の目標を決める
何時間まとまって2kW出るかで沸かせる量を出す
エコキュートは約1kWで数時間続けて動くので、合計の発電量より「2kW以上が何時間続くか」が効きます。
そこで、翌日の1時間ごとの予測から、月ごとの時間枠の中で2kW以上が何時間続くかを出して、昼に沸かせる湯量に直しています。
月ごとの時間枠は、晴れた日に2kW以上の発電が見込める時間帯から、30分の余裕を取って決めました。

10月11日の分の計算です。予報の気温24℃で基準は1,060W、8:30〜14:00の5.5時間続く見込みでした。沸かせる量は200L。タンクの空きが200Lしかないので、そこで頭打ちになっています。

秋の実測だと、エコキュートは1kWhで約116L(残湯表示の42℃換算)沸かせます。この係数は沸き上げのたびに自動で学習し直すようにしてもらいました。冬は水が冷たくなって沸く量がかなり下がりそうだからです。

冬は暖房も電気を食うので、天気予報の気温で基準も変えています。25℃以上なら1kW、0℃なら2.5kWの発電を基準にしました。気温はHome Assistantに最初から入っている天気予報(met.no、無料)から取っています。
明日が曇りなら今日のうちに満タンにする
無料の予報で見られるのは今日と明日の2日分です。満タン700Lで約4日分のお湯があるので、明日まで見れば足りると考えました。
- 明日も昼に沸かせそう → 今日は400Lまで沸かす
- 明日は曇りで沸かせなさそう → 今日のうちに満タン700Lまで沸かす
400Lは、過去28日のお湯の使い方に当てはめて決めた数字です。28夜のうち26夜は夜の沸き上げを止められて、下限の100Lを切る日はありませんでした。
EVの充電よりお湯を優先する
昼の太陽光の余りは、EVの充電にも使っています。

お湯はEVより優先にしました。エコキュートを始めるかどうかは、EVの充電に使っている電力も「余り」に含めて判断します。EVが余りを使っていても、エコキュートが割り込みます。
EVの充電は、余りに合わせて電流を3分おきに決め直しているので、エコキュートが動き出すと自動で残りの余りに下がります。電気を買う状態になったら、先に止まるのはEVのほうです。
全自動になったエコキュートの1日
| 時刻 | 動き |
|---|---|
| 7:00 | 今日と明日の予報・気温から、今日の目標(400Lか満タン)と開始・終了時刻を決める |
| 開始時刻 | 余りが十分ならManualで沸き増し |
| 沸き増し中 | 目標に届く/終了時刻/買電が続く、のどれかでStop |
| 22:50 | 翌日の昼までお湯が足りるかを判定 |
| 22:55 | 足りるなら1日だけ休止、足りないならふだんどおり夜に沸かす |
| いつでも | 残湯が100Lを切ったら休止を解除 |
10月10日の夜の判定はskip(休止)でした。翌朝の残湯の見込みが490L、タンクの空きを考えずに時間だけで見た翌日の昼に沸かせる量が664Lで、翌日の昼まで足りるという判断です。

開始時刻は、2kW以上が続く時間の終わりから、必要な時間を逆算して決めています。なので、午前の余りはEVの充電に回せます。
ManualとStopの切り替えは、Home Assistantからエコキュートを操作できるようにしたときの仕組みをそのまま使っています。

まとめ
Forecast.Solarの無料枠で翌日の発電を予測して、エコキュートを夜に沸かすか昼に回すかまで自動で決めるようにしました。使ったのは無料のサービスと手元の機器だけで、追加の費用は0円です。
Home Assistantを動かしているのは、Raspberry Pi 4B(4GB)のスターターセットです。
まだ確かめられていないことも残っています。
- 冬の消費電力と、1kWhで沸く量
- 12月の3.5時間の枠で足りるか
- 前の晩の予測と実際の発電のずれ
しばらくはこのまま使ってみます。直したところや良くなったところが出てきたら、また記事にしようと思います。
