Solar forecast

Tomorrow’s production, where the number comes from, and how it is kept honest against what your roof actually did.

What this is for

  • I want tomorrow's solar production in the plan, so the battery is not charged from the grid the night before a bright day.
  • I want the forecast corrected against what my roof actually produced.
  • I have an outdoor appliance that needs to know how cold it will get.

Three settings groups: pv_forecast_source.* is who supplies the forecast, pv_forecast.* describes each array so a provider can compute one, and pv_autoscaling.* corrects it from measurement.

Who supplies the forecast

Akkudoktor and Forecast.Solar compute a curve from the roof geometry you enter below; Solcast and Victron use a site configured at their end and need a key; EVCC and timeseries take a curve someone else already produced. Which of them you pick decides whether the installations section below is used at all.

Your installations

One entry per roof surface: where it is, which way it faces, how steep it is and how much it can produce. A location-based provider needs these to compute anything; the coordinates of the first entry are also what the outside-temperature forecast is fetched for.

PV forecast via EVCC

EVCC can pass on a forecast it already holds. See EVCC for what it takes at that end.

Auto-scaling from measurement

Every forecast provider is systematically out for a particular roof — shading, soiling, a module string that underperforms. Auto-scaling compares the forecast with what a yield meter actually recorded and applies the ratio. See Forecast auto-scaling in the User Guide for what to expect from it.

Outside temperature

One temperature curve is fetched and shared by the optimizer and by every outdoor managed load, so this is a single choice for both rather than one each. How a managed load combines it with your own thermometer is described under Outdoor loads need an outdoor temperature.

eos.temperature_forecast_enabled (on by default) is what fetches it at all. The EOS Server backend feeds it into its house model; EVopt ignores temperature, and with the forecast off a static 15 °C curve is sent instead. An outdoor managed load asks for the curve on its own account whichever optimizer you run, so turning this off takes it away from them too.