Patrick Schurig b2513a86a4 docs(openmeteo): guide d'installation en trois langues, à la place du « à venir »
La fiche openmeteo n'avait que son bloc de référence généré. Elle porte
maintenant la prose, en FR, DE et EN : ajout du site et des plans PV (avec
l'avertissement azimut 0 = nord), « une prévision, jamais une mesure » (la
conversion ignore ombrage, encrassement et écrêtage : la prévision est
optimiste), rafraîchissement et relance, comportement sans internet, ce qui
quitte la box, usage commercial et attribution CC-BY.

Chaque affirmation a été vérifiée dans le code de feature/beta-forecast
(etm16) : coordonnées arrondies à deux décimales, altitude envoyée seulement
si renseignée, puissance crête et rendement jamais transmis. La prose reste
juste aussi pour master, dont la CI génère le bloc de référence.

Accroche corrigée dans i18n/devices.yaml : le meta.json annonce « current
weather data », alors que le plugin publie surtout des prévisions.

Supprimé : la ligne commentée `openmeteo, channel: nightly` de
PORTING_STATUS.yaml, un vestige qui contredisait l'entrée active.

TODO : noté que la référence publiée retarde sur le paquet testing (master
d'etm-powersync-plugins a 39 commits de retard sur feature/beta-forecast).

Vérifié dans une copie, à partir des branches par défaut des 5 dépôts de
plugins comme en CI : génération, --check et mkdocs build --strict passent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:08:34 +02:00

11 KiB
Raw Blame History

OpenMeteo

TESTING ETM CONSUMER

Aktuelle Wetterdaten für Ihren Standort abrufen.

Das OpenMeteo-Plugin liefert der Box die Wetter- und Solarprognosen für Ihren Standort: das Wetter für heute und morgen sowie die erwartete PV-Erzeugung für jede Dachausrichtung. Die Daten stammen vom öffentlichen Dienst Open-Meteo, den die Box direkt abfragt – ohne Konto, ohne API-Schlüssel und ohne Umweg über einen ETM-Dienst.

Paket: powersync-plugin-openmeteo.

1. Was das Plugin bereitstellt

Das Plugin legt zwei Arten von Objekten an:

  • einen Standort (Open-Meteo site): Wetter am Standort (Temperatur, Bewölkung, Wind, Luftfeuchtigkeit …), prognostizierte Einstrahlung, Sonnenauf- und -untergang sowie eine Satellitenbeobachtung der vergangenen Stunde;
  • eine oder mehrere PV-Flächen (Open-Meteo PV plane), die dem Standort zugeordnet sind – eine pro Dachausrichtung. Jede Fläche liefert die prognostizierte Einstrahlung auf ihre Module und die daraus abgeleitete erwartete Erzeugung: für die laufende Stunde, die nächsten 3, 6 und 12 Stunden, den Rest des Tages und den Folgetag.

Die ETM-PowerSync-App zeigt diese Prognosen neben den Messwerten an (erwartete Erzeugung in den Diagrammen, Wetter Stunde für Stunde).

2. Standort hinzufügen

Fügen Sie im Installateurmodus ein Gerät Open-Meteo site hinzu (siehe Gerät hinzufügen) und tragen Sie ein:

Feld Inhalt
Latitude, Longitude Position des Standorts in Dezimalgrad
Elevation (m, optional) Höhe des Standorts in Metern. Optional: Bei 0 verwendet Open-Meteo die Höhe aus seinem eigenen Geländemodell. In den Bergen oder in engen Tälern eintragen, denn die prognostizierte Temperatur hängt davon ab.

Der Standort wird nicht automatisch gefunden: Er wird von Hand angelegt, einmal pro Standort.

3. PV-Flächen hinzufügen

Sobald der Standort angelegt ist, fügen Sie ein Gerät Open-Meteo PV plane hinzu: Die Suche schlägt für jeden vorhandenen Standort eine Fläche vor. Legen Sie eine Fläche pro Ausrichtung an – ein Ost-West-Dach ergibt zwei Flächen.

Feld Inhalt
Tilt (deg, 0=horizontal) Neigung der Module in Grad: 0 = flach, 90 = senkrecht
Azimuth (deg geographic, 180=South) Ausrichtung in geografischer Konvention: 180 = Süden, 90 = Osten, 270 = Westen
Peak power kWp Spitzenleistung der Module dieser Fläche
Performance ratio (declared, not learned) Gesamtwirkungsgrad der Anlage, vom Installateur angegeben (die Box lernt ihn nicht). Bleibt er auf 1.0, wird die erwartete Erzeugung überschätzt.

Je nach Plugin-Version ergänzen zwei Werte aus dem Moduldatenblatt die Fläche: Power temperature coefficient (%/K, declared, not learned) (Standard −0,37 %/K) und NOCT (°C, declared, not learned) (Standard 45 °C). Sie korrigieren die erwartete Erzeugung, wenn sich die Module erwärmen.

!!! warning "Achtung beim Azimut" Andere Werkzeuge zählen den Azimut ab Süden (0 = Süden). Hier ist 0 Norden: Ein Azimut von 0 für ein reines Süddach ergibt eine stark unterschätzte Erzeugungsprognose.

4. Eine Prognose, niemals eine Messung

Alles, was dieses Plugin bereitstellt, ist eine in Erzeugung umgerechnete Wetterprognose oder eine etwa eine Stunde alte Satellitenbeobachtung. Es ist nie eine Messung Ihrer Anlage: Die tatsächliche Erzeugung liefert der Wechselrichter oder der Zähler.

Deshalb heißen die Werte forecast… (Prognose) oder observed… (Satellitenbeobachtung): Es gibt in diesem Plugin kein pvPower, nur forecastPvPower.

Die erwartete Erzeugung wird einfach berechnet: prognostizierte Einstrahlung × Spitzenleistung × angegebener Wirkungsgrad. Sie berücksichtigt nicht Verschattung, Verschmutzung der Module oder die Leistungsbegrenzung des Wechselrichters. Die Abweichung geht daher immer in dieselbe Richtung: Die Prognose ist optimistisch. 4 kW Prognose sind nicht 4 kW Erzeugung.

Die für heute und morgen angegebene Wetterstreuung (in %) sagt, wie unsicher das Wetter selbst ist. Über die Genauigkeit der erwarteten Erzeugung sagt sie nichts: Bei stabilem Sonnenwetter ist sie gering, während die Überschätzung gerade dann am größten ist.

5. Aktualisierung und Internetausfall

Die Wettermodelle veröffentlichen nicht häufiger: Prognose und Satellitenbeobachtung werden stündlich abgerufen, die Streuung alle 3 Stunden. Die Aktion Refresh des Standorts erzwingt alle drei.

Antwortet Open-Meteo nicht, versucht es das Plugin nach 5 Minuten erneut, dann nach 10, 20, 40 … – nie seltener als im normalen Takt der Quelle – und kehrt mit der ersten Antwort zu seinem Takt zurück. Nach 3 Stunden ohne empfangene Prognose wechselt Forecast valid auf falsch.

Ein Internetausfall blockiert nichts: Die Box steuert mit ihren Messwerten weiter, die Sicherheit bleibt gewährleistet, und nur die Prognosen verschlechtern sich, bis die Verbindung zurück ist.

6. Was die Box verlässt

Für ihre Prognosen sendet die Box an Open-Meteo ausschließlich:

  • die Koordinaten des Standorts, auf zwei Nachkommastellen gerundet (etwa 1 km): genau genug für das Wetter, zu ungenau, um eine Adresse zu bezeichnen;
  • die Höhe des Standorts, sofern eingetragen;
  • Neigung und Azimut jeder PV-Fläche.

Es werden keine Messwerte, kein Verbrauch und keine Nutzungsdaten übertragen. Spitzenleistung und Wirkungsgrad bleiben auf der Box: Die Umrechnung in Erzeugung erfolgt lokal.

7. Gewerbliche Nutzung: eigene Open-Meteo-Instanz

Die öffentliche API von Open-Meteo ist der nicht gewerblichen Nutzung vorbehalten. Für einen gewerblichen Einsatz lassen sich in den Plugin-Einstellungen eine selbst betriebene Open-Meteo-Instanz eintragen (Base URL (forecast), Base URL (satellite radiation), Base URL (ensemble spread)) oder ein Schlüssel für das kommerzielle Angebot von Open-Meteo (API key (commercial endpoint, optional)). Ohne Änderung fragt das Plugin die öffentliche API ab.

8. Datenquellen

Wetterdaten von Météo-France, Satellitenstrahlung von EUMETSAT, bereitgestellt über Open-Meteo unter der Lizenz CC-BY 4.0.


Referenz

!!! info "Bezeichnungen der Anwendung" Die Schlüssel und Bezeichnungen unten sind die der Anwendung, auf Englisch. Sie bleiben unverändert, damit Sie sie auf dem Bildschirm wortgleich wiederfinden.

Hersteller: Open-Meteo
Plugin: OpenMeteo

Unterstützte Modelle

Modell Rolle Transport Einbindung Messwerte
Open-Meteo site weather, daylightsensor — Manual 29
Open-Meteo PV plane — — Auto-discovery 15

Detail je Modell

??? abstract "Open-Meteo site — openMeteoSite" Einstellungen:

| Schlüssel | Bezeichnung | Typ | Bereich | Standard | Nur lesen |
| --- | --- | --- | --- | --- | --- |
| `name` | Name | QString | — | — | nein |
| `latitude` | Latitude | double | — | `48.9` | nein |
| `longitude` | Longitude | double | — | `7.85` | nein |
| `elevation` | Elevation (m, optional) | double | — | `0` | nein |

_Gemessene Größen:_

| Schlüssel | Größe | Typ | Einheit |
| --- | --- | --- | --- |
| `weatherDescription` | Weather description | QString | — |
| `weatherCondition` | Weather condition | QString | — |
| `updateTime` | Last update | int | UnixTime |
| `temperature` | Temperature | double | DegreeCelsius |
| `temperatureMin` | Minimum temperature (today) | double | DegreeCelsius |
| `temperatureMax` | Maximum temperature (today) | double | DegreeCelsius |
| `humidity` | Humidity | int | Percentage |
| `pressure` | Pressure | double | HectoPascal |
| `windSpeed` | Wind speed | double | MeterPerSecond |
| `windDirection` | Wind direction | int | Degree |
| `cloudiness` | Cloudiness | int | Percentage |
| `snowfall` | Snowfall (preceding hour) | double | CentiMeter |
| `forecastGhi` | GHI forecast (W/m²) | double | — |
| `forecastDni` | DNI forecast (W/m²) | double | — |
| `forecastDhi` | DHI forecast (W/m²) | double | — |
| `terrestrialRadiation` | TOA radiation (W/m2) | double | — |
| `forecastGhiSumToday` | GHI sum forecast today (kWh/m²) | double | — |
| `observedGhi` | GHI observed, satellite (W/m²) | double | — |
| `observedClearSkyGhi` | Clear-sky GHI observed, satellite (W/m²) | double | — |
| `observedClearSkyIndex` | Clear-sky index kt (observed) | double | — |
| `sunriseTime` | Sunrise time | int | UnixTime |
| `sunsetTime` | Sunset time | int | UnixTime |
| `daylight` | Daylight | bool | — |
| `forecastModel` | Forecast model that answered | QString | — |
| `forecastValid` | Forecast valid | bool | — |
| `forecastTendencyToday` | Sky tendency forecast today | QString | — |
| `observedTime` | Satellite sample time | int | UnixTime |
| `forecastIssuedAt` | Model run initialisation — revision key | int | UnixTime |
| `forecastAvailableAt` | Model run publication — informational, never a revision key | int | UnixTime |

??? abstract "Open-Meteo PV plane — openMeteoPvPlane" Einstellungen:

| Schlüssel | Bezeichnung | Typ | Bereich | Standard | Nur lesen |
| --- | --- | --- | --- | --- | --- |
| `name` | Name | QString | — | — | nein |
| `tilt` | Tilt (deg, 0=horizontal) | double | 0–90 | `30` | nein |
| `azimuth` | Azimuth (deg geographic, 180=South) | double | 0–360 | `180` | nein |
| `kwp` | Peak power kWp | double | — | `0` | nein |
| `performanceRatio` | Performance ratio (declared, not learned) | double | 0.1–1.0 | `1.0` | nein |

_Gemessene Größen:_

| Schlüssel | Größe | Typ | Einheit |
| --- | --- | --- | --- |
| `forecastGtiSource` | GTI forecast, source quantity (W/m²) | double | — |
| `updateTime` | Last update | int | UnixTime |
| `forecastPvPower` | PV power forecast | double | Watt |
| `forecastEnergyNext3h` | PV energy forecast, next 3 h (rolling, may cross midnight) | double | KiloWattHour |
| `forecastEnergyNext6h` | PV energy forecast, next 6 h (rolling, may cross midnight) | double | KiloWattHour |
| `forecastEnergyNext12h` | PV energy forecast, next 12 h (rolling, may cross midnight) | double | KiloWattHour |
| `forecastEnergyRestOfDay` | PV energy forecast, now until sunset | double | KiloWattHour |
| `forecastEnergyTomorrow` | PV energy forecast, tomorrow | double | KiloWattHour |
| `forecastPeakTime` | Forecast peak irradiance time today | int | UnixTime |
| `observedGti` | GTI observed, satellite (W/m²) | double | — |
| `observedGtiTime` | Satellite sample time | int | UnixTime |
| `forecastWeatherSpreadTodayPercent` | GTI weather spread today — qualifies weather only, not PV accuracy | double | Percentage |
| `forecastWeatherSpreadTomorrowPercent` | GTI weather spread tomorrow — qualifies weather only, not PV accuracy | double | Percentage |
| `forecastSpreadModel` | Ensemble model used for spread | QString | — |
| `forecastCurveTransport` | Forecast curve — transport channel, not a value | QVariantMap | — |