Pro Weather.
Weather features

Solar forecast

An hour-by-hour power forecast for your own solar panels, built from weather models scored against your station's solar sensor, with an API for evcc, EMHASS and Home Assistant.

If you have solar panels, a battery or an electric car, the useful question about tomorrow is how many kilowatt-hours your roof will make and when. The solar forecast answers it for your own panels, hour by hour for the next two days, and hands the numbers to the software that schedules your charging.

It is part of the Pro plan. Set it up under Setup > Solar forecast in your site's dashboard.

How it works

  1. Every hour, Pro Weather fetches the sunshine forecast (solar radiation on a flat surface) from several weather models for your station's location.
  2. It checks each model's earlier forecasts against what your station's solar sensor actually measured, and gives the models that got your sky right more say. That is the part a generic solar forecast cannot do: it has no sensor on your roof.
  3. It turns the result into power for each of your panel arrays: the sun's position, the angle your panels face, the air temperature (hot panels make less), your system losses and your inverter's limit.

The forecast says corrected once your solar sensor has scored the models for a couple of days. Until then, and for a station without a solar sensor, every model counts the same. It still works; it just has not learned your sky yet.

What it does not know: shade from trees or chimneys, snow on the panels, and panels that need a wash. Your solar sensor sees the sky, not your roof.

Setting up your panels

Add one row per roof face, up to four:

  • kWp: the peak power of that array, from your installer's paperwork or the panel count times the panel rating.
  • Tilt: 0 for flat panels, 90 for panels on a wall. A typical pitched roof is 30 to 45.
  • Azimuth: where the panels face. 0 is south, -90 east, 90 west, 180 north. South-east is -45.
  • Losses: wiring, dirt and the inverter. 14 % suits most systems; lower it if the forecast keeps coming in under what your inverter reports.
  • Inverter kW: the most the inverter can put out. Leave it empty if you do not know.

An east-west roof is two rows, one facing -90 and one facing 90.

Connect evcc

evcc uses a solar forecast to decide when to charge your car. Create a token under Setup > Solar forecast, then add this to evcc.yaml with your token in place of <your token>:

tariffs:
  solar:
    - type: custom
      tariff: solar
      forecast:
        source: http
        uri: https://pro-weather.com/api/solar
        headers:
          - Authorization: Bearer <your token>
        jq: .slots | tostring
      interval: 1h

Connect EMHASS or a script

EMHASS and most battery schedulers accept a list of watts per time step. With a 60-minute optimization time step, pass the value of each slot:

curl -s -H "Authorization: Bearer <your token>" https://pro-weather.com/api/solar \
  | jq '{pv_power_forecast: [.slots[].value]}'

and post that to EMHASS's dayahead-optim action. Node-RED, Home Assistant automations and your own scripts can read the same URL.

Home Assistant

The Pro Weather Solar Forecast integration puts the forecast in Home Assistant's Energy dashboard and gives you sensors for automations. Install it through HACS as a custom repository:

  1. In HACS, open the three-dot menu, choose Custom repositories, add https://github.com/LNNRT-STN/ha-pro-weather as an Integration, then download Pro Weather Solar Forecast and restart Home Assistant.
  2. Under Settings > Devices & services > Add integration, pick Pro Weather Solar Forecast and paste your token.
  3. Under Settings > Dashboards > Energy, edit your solar production and tick the Pro Weather entry as its Solar production forecast.

The integration adds power now, energy this hour and next, energy today, remaining today and tomorrow, and today's peak. "Today" follows your Home Assistant time zone. A Corrected by station sensor shows whether your solar sensor has scored the models yet. If you regenerate the token, Home Assistant asks for the new one.

For Predbat, the energy today and tomorrow sensors carry a half-hourly detailedForecast attribute in the same shape as the Solcast integration's. Point pv_forecast_today and pv_forecast_tomorrow in Predbat's apps.yaml at those two sensors.

Without the integration

A REST sensor gives you the rest of today's forecast for automations, with nothing to install. In secrets.yaml, store the whole header value: proweather_solar: "Bearer <your token>", then:

rest:
  - resource: https://pro-weather.com/api/solar
    headers:
      Authorization: !secret proweather_solar
    scan_interval: 1800
    sensor:
      - name: Solar forecast rest of today
        unit_of_measurement: kWh
        value_template: "{{ ((value_json.daily.values() | list)[0] / 1000) | round(1) }}"

A REST sensor cannot feed the Energy dashboard's forecast line; only an integration can.

The API

GET https://pro-weather.com/api/solar with the header Authorization: Bearer <your token> returns the next 48 hours:

{
  "generatedAt": "2026-09-24T09:12:03.120Z",
  "issuedAt": "2026-09-24T09:00:00.000Z",
  "corrected": true,
  "station": { "name": "Ardooie", "timezone": "Europe/Brussels" },
  "arrays": [{ "name": "Roof south", "kwp": 5.2 }],
  "slots": [
    { "start": "2026-09-24T09:00:00Z", "end": "2026-09-24T10:00:00Z", "value": 2140, "wh": 2140, "ghi": 512 }
  ],
  "wh_hours": { "2026-09-24T09:00:00Z": 2140 },
  "daily": { "2026-09-24": 14800, "2026-09-25": 21300 }
}
  • slots: one per hour, value the average power in watts, wh the energy in watt-hours, ghi the sunshine forecast behind it in W/m². Times are UTC.
  • wh_hours: the same energy keyed by the start of each hour.
  • daily: watt-hours per day in your station's timezone, starting with the rest of today.
  • A new forecast is ready once an hour; polling every 15 to 60 minutes is plenty. More than 60 requests an hour from one address get a 429.

Errors: 401 for a missing or unknown token, 403 when the site's plan does not include the solar forecast, 409 when no panels are set up or the station has no location. Creating a new token stops the old one immediately.

On this page