Generation Timeline
Hourly solar nowcast with DSM deviation tracking · live Open-Meteo data
Open-Meteo· live hourly weatherpvlib· GHI→DNI/DHI + POA + PVWattsDSM Engine· interval-normalized deviation
Formulas used
POA irradiance (transposition)OFFICIAL_SOURCE · pvlib
POA = get_total_irradiance(
tilt, surface_azimuth,
zenith, azimuth_sun,
dni, ghi, dhi)
# isotropic sky diffuse modelCell temperature (Faiman)OFFICIAL_SOURCE · pvlib
t_cell = poa * f1 + temp_air f1 = 9.5 / (5.7 + 3.8 * wind_speed) # Faiman 2008
poa — Plane-of-array irradiance (W/m²)
wind_speed — Wind speed (m/s)
DC & AC power (PVWatts)OFFICIAL_SOURCE · pvlib
DC = pvwatts_dc(poa, t_cell, pdc0, γ)
pdc0 = capacity_mw × 1e6
γ = −0.0035 /°C (c-Si)
AC = pvwatts_inverter(DC, pdc0, η=0.96)
MW = min(AC / 1e6, capacity_mw)DSM deviation (per interval)USER_CONFIGURABLE
dev_pct = (|pred − sched| / Δt_h)
× block_h / denom × 100
energy_mwh = MW × Δt_h
status = dev_pct > band ? PENALTY_RISK : OKΔt_h — Interval hours (1 for hourly, 0.25 for 15-min)
block_h — DSM time block (time_block_minutes / 60)
denom — available_capacity or scheduled (MW)
Provenance: REAL_COORDINATE_BASED — Hourly irradiance from Open-Meteo at real coordinates; generation derived via pvlib physics with a clear-sky schedule proxy.
No Timeline Data
Select a site and generate a live forecast