Nouvelle page fonctionnalites/prevision-pv (FR/DE/EN, dans la nav) : courbe horaire jusqu'à la fin du lendemain par plan, correction de température et plafond onduleur (modèles déterministes publics, aucun apprentissage), « plafond optimiste », « une heure sans donnée est un trou, jamais un zéro », fourchette météo (qualifie la météo seulement), météo horaire, mise en service, règle centrale de la Community (affiché et enregistré localement, jamais utilisé pour décider), consommation de base « à venir », données qui sortent, optimiseur seulement comme interface prévue. Tarifs (3 langues) : section BETA « tarif saisi », exposé et non utilisé pour décider ; les tarifs dynamiques restent en roadmap. FAQ (3 langues) : réponse « données » réécrite avec la liste de ce qui sort ; « Predict AI », `optimizer-plugin` et « socket Unix » retirés ; la prévision physique passe dans Community, Pro garde les prévisions apprises. Accueil : « sans dépendance au cloud ». Tableau des fonctionnalités : trois lignes. Fiche OpenMeteo : lien vers la page, plafond appliqué par le moteur. Sources : INTERFACE.md et DESIGN_PREVISION_PV.md (feature/forecast-protocol-1.1), CONTRACT_A v4, CONSIGNE-app-etm66-prevision.md. Aucune donnée du banc. Vérifié comme en CI : génération, --check et mkdocs build --strict passent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
104 lines
4.7 KiB
Markdown
104 lines
4.7 KiB
Markdown
# PV production forecast
|
||
|
||
<span class="badge testing">BETA</span> <span class="badge community">COMMUNITY</span>
|
||
|
||
The box forecasts the production of your panels, hour by hour, until the end of the
|
||
next day, and shows it in the app next to the measured production. It is a feature of
|
||
the **Community** edition (GPL-3.0): it relies on the energy engine and the
|
||
[OpenMeteo](../appareils/tarifs/openmeteo.md) plugin, with no ETM service involved.
|
||
|
||
!!! info "Beta"
|
||
Delivered and running on our test installation, it is not yet published in a
|
||
channel of the APT repository.
|
||
|
||
## What you see in the app
|
||
|
||
- **The expected production curve**, hour by hour until the end of the next day,
|
||
overlaid on the measured production.
|
||
- **A weather range** around this curve (see below).
|
||
- **Hour-by-hour weather** on the "Journée" card: an icon (sun, clouds, rain…), day or
|
||
night, and the temperature.
|
||
|
||
## How the forecast is computed
|
||
|
||
For each declared PV plane — tilt, orientation, peak power (kWp) and system efficiency
|
||
—, the box converts the irradiance forecast by Open-Meteo into power. It then adds up
|
||
all the planes of the site.
|
||
|
||
Two corrections apply, both **deterministic**: public physical models, parameterised
|
||
from datasheets, with no learning at all.
|
||
|
||
- **Temperature correction**: a hot module produces less. The box estimates this from
|
||
the forecast temperature, the NOCT and the temperature coefficient of the modules.
|
||
- **Inverter ceiling**: the sum of the planes never exceeds the inverter's maximum AC
|
||
power, if it has been entered.
|
||
|
||
The forecast is recomputed whenever the weather models publish a new run — at most once
|
||
an hour.
|
||
|
||
### A forecast, and an optimistic ceiling
|
||
|
||
What the box shows is a **forecast**, not a measurement. It is also an **optimistic
|
||
ceiling**: shading (trees, chimney, neighbouring buildings) and soiled panels are not
|
||
modelled. Actual production below the curve is therefore normal and does not indicate a
|
||
fault.
|
||
|
||
### An hour without data is a gap, never a zero
|
||
|
||
If an hour is missing (internet down, weather service unavailable), the curve breaks.
|
||
The box never writes "0" instead: a zero would read as "no sun expected".
|
||
|
||
## The weather range
|
||
|
||
Around the curve, the app draws a band:
|
||
**forecast × (1 ± spread of the day's models)**. The spread measures how far several
|
||
weather models disagree about the day.
|
||
|
||
This band qualifies **the weather**, and only the weather. It says nothing about the
|
||
accuracy of the production forecast: shading and soiling are not in it. On a clear,
|
||
stable day it is narrow, precisely when the error from those factors is largest. It is
|
||
therefore neither an "expected error" nor a "confidence interval".
|
||
|
||
## Commissioning
|
||
|
||
1. Install the OpenMeteo plugin and create the **site** and its **PV planes** — see
|
||
[OpenMeteo](../appareils/tarifs/openmeteo.md).
|
||
2. **Designate the forecast site** in the app. Until one is designated, the forecast
|
||
card shows a notice and offers the available sites. All planes of the designated
|
||
site are added up.
|
||
3. Optional: enter the **inverter ceiling** (maximum AC power, in W). Without it, no
|
||
ceiling is applied.
|
||
|
||
## What the forecast does not do
|
||
|
||
This is the central rule of the Community edition: **without an optimiser, control is
|
||
rule-based** (solar surplus, load shedding, priorities). The PV forecast, the
|
||
[entered tariff](../tarifs.md) and the baseload are **displayed** and **recorded
|
||
locally**, but never used to decide. An automated test checks this: the engine makes
|
||
the same decisions with and without forecast, tariff and consumption profile.
|
||
|
||
The local record is used to measure forecast accuracy over time. Validation on a real
|
||
installation is under way; no accuracy figure is published before it is complete.
|
||
|
||
## Baseload forecast <span class="badge nightly">COMING</span>
|
||
|
||
The box will compute a household consumption profile, excluding controlled loads, from
|
||
its own measurements: a median for each hour of the day, separately for working days
|
||
and weekends. A profile needs at least **7 days** of measurements. Until then nothing
|
||
is shown: an absence, never a zero.
|
||
|
||
## Your data
|
||
|
||
Only the OpenMeteo plugin connects to the internet. It sends only the **site's
|
||
coordinates** (rounded to about 1 km), its **altitude** if entered, and the
|
||
**orientation of the panels** (tilt, azimuth). Measurements, recorded forecasts, the
|
||
tariff and consumption stay on the box. Remote access is disabled by default: it opens
|
||
only if you enable it yourself in the app.
|
||
|
||
## What about an optimiser?
|
||
|
||
The architecture provides an **open, documented interface** to an external optimiser,
|
||
which could use these forecasts to plan. Optimisation would run at your place, on the
|
||
box or on a machine in your local network. This connection is under development; the
|
||
Community edition works entirely without it.
|