diff --git a/PORTING_STATUS.yaml b/PORTING_STATUS.yaml index 8f4415f..444191d 100644 --- a/PORTING_STATUS.yaml +++ b/PORTING_STATUS.yaml @@ -429,5 +429,4 @@ # - {repo: nymea-plugins-genericthings, plugin: genericthing, channel: stable} # -- etm-powersync-plugins : hors périmètre direct -- -# - {repo: etm-powersync-plugins, plugin: openmeteo, channel: nightly} # (keba : fork ETM disponible mais doublon de nymea-plugins/keba ci-dessus) diff --git a/docs/appareils/tarifs/openmeteo.de.md b/docs/appareils/tarifs/openmeteo.de.md index 1479ad9..8624b2a 100644 --- a/docs/appareils/tarifs/openmeteo.de.md +++ b/docs/appareils/tarifs/openmeteo.de.md @@ -7,7 +7,131 @@ Aktuelle Wetterdaten für Ihren Standort abrufen. -_Installationsanleitung folgt._ +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](https://open-meteo.com), 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](../../installation/application.md)) 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](https://open-meteo.com) unter der Lizenz CC-BY 4.0. + +--- ## Referenz diff --git a/docs/appareils/tarifs/openmeteo.en.md b/docs/appareils/tarifs/openmeteo.en.md index 53384ae..30aa486 100644 --- a/docs/appareils/tarifs/openmeteo.en.md +++ b/docs/appareils/tarifs/openmeteo.en.md @@ -7,7 +7,121 @@ Get current weather data for your location. -_Installation guide coming soon._ +The OpenMeteo plugin gives the box the **weather and solar forecasts** for your site: +today's and tomorrow's weather, and the expected PV production for each roof +orientation. The data come from the public [Open-Meteo](https://open-meteo.com) +service, queried directly by the box — **no account, no API key**, and no detour +through an ETM service. + +Package: `powersync-plugin-openmeteo`. + +## 1. What the plugin publishes + +The plugin creates two kinds of objects: + +- a **site** (`Open-Meteo site`): weather at the location (temperature, clouds, wind, + humidity…), forecast solar irradiance, sunrise and sunset, and a satellite + observation of the past hour; +- one or more **PV planes** (`Open-Meteo PV plane`), attached to the site — one per + roof orientation. Each plane publishes the forecast irradiance on its modules and + the expected production derived from it: for the current hour, the next 3, 6 and 12 + hours, the rest of the day and tomorrow. + +The ETM-PowerSync app shows these forecasts next to the measurements (expected +production on the charts, hour-by-hour weather). + +## 2. Adding the site + +In installer mode, add an **Open-Meteo site** device (see +[Adding a device](../../installation/application.md)) and enter: + +| Field | Content | +| --- | --- | +| `Latitude`, `Longitude` | Position of the site, in decimal degrees | +| `Elevation (m, optional)` | Altitude of the site in metres. Optional: left at `0`, Open-Meteo uses the altitude of its own terrain model. Enter it in mountains or narrow valleys, where the forecast temperature depends on it. | + +The site is not discovered automatically: it is created by hand, once per location. + +## 3. Adding the PV planes + +Once the site exists, add an **Open-Meteo PV plane** device: discovery offers one +plane for each existing site. Create **one plane per orientation** — an east-west roof +gives two planes. + +| Field | Content | +| --- | --- | +| `Tilt (deg, 0=horizontal)` | Tilt of the modules in degrees: `0` = flat, `90` = vertical | +| `Azimuth (deg geographic, 180=South)` | Orientation, in **geographic convention**: `180` = south, `90` = east, `270` = west | +| `Peak power kWp` | Peak power of the modules on this plane | +| `Performance ratio (declared, not learned)` | Overall system efficiency, **declared** by the installer (the box does not learn it). Left at `1.0`, the expected production is overestimated. | + +Depending on the plugin version, two values from the module datasheet complete the +plane: `Power temperature coefficient (%/K, declared, not learned)` (default +−0.37 %/K) and `NOCT (°C, declared, not learned)` (default 45 °C). They correct the +expected production when the modules heat up. + +!!! warning "Mind the azimuth" + Other tools count the azimuth from south (`0` = south). Here, `0` is **north**: + an azimuth of `0` entered for a due-south roof gives a heavily underestimated + production forecast. + +## 4. A forecast, never a measurement + +Everything this plugin publishes is a **weather forecast** converted into production, +or a **satellite observation** about an hour old. It is never a measurement of your +installation: the actual production is read from the inverter or the meter. + +This is why the values are named `forecast…` or `observed…` (satellite observation): +there is no `pvPower` in this plugin, only `forecastPvPower`. + +The expected production is a simple calculation: forecast irradiance × peak power × +declared efficiency. It **does not account for** shading, soiled modules or inverter +clipping. The error therefore always goes the same way: **the forecast is +optimistic**. 4 kW forecast is not 4 kW produced. + +The **weather spread** published for today and tomorrow (in %) says how uncertain the +weather itself is. It says nothing about the accuracy of the expected production: on a +clear, stable day it is low, precisely when the overestimate is at its highest. + +## 5. Refresh and internet outage + +Weather models do not publish more often than this: the forecast and the satellite +observation are fetched **every hour**, the spread **every 3 hours**. The site's +`Refresh` action forces all three. + +If Open-Meteo does not answer, the plugin retries after 5 minutes, then 10, 20, 40… — +never less often than the source's normal rate — and returns to its normal rate at the +first answer. After **3 hours** without a forecast, `Forecast valid` turns false. + +An internet outage blocks nothing: the box keeps controlling with its measurements, +safety is maintained, and only the forecasts degrade until the connection returns. + +## 6. What leaves the box + +To get its forecasts, the box sends Open-Meteo **only**: + +- the site's coordinates, **rounded to two decimals** (about 1 km): precise enough for + the weather, too blurred to point to an address; +- the site's altitude, if you entered it; +- the tilt and azimuth of each PV plane. + +No measurement, no consumption and no usage data is sent. The peak power and the +efficiency stay on the box: the conversion into production happens locally. + +## 7. Commercial use: a dedicated Open-Meteo instance + +The public Open-Meteo API is for **non-commercial use** only. For a commercial +deployment, the plugin settings can point to a self-hosted Open-Meteo instance +(`Base URL (forecast)`, `Base URL (satellite radiation)`, `Base URL (ensemble +spread)`) or take a key for Open-Meteo's commercial offer (`API key (commercial +endpoint, optional)`). Unchanged, the plugin queries the public API. + +## 8. Data sources + +Weather data by Météo-France, satellite radiation by EUMETSAT, provided through +[Open-Meteo](https://open-meteo.com) under the CC-BY 4.0 licence. + +--- ## Reference diff --git a/docs/appareils/tarifs/openmeteo.md b/docs/appareils/tarifs/openmeteo.md index fd2df86..c3cbce4 100644 --- a/docs/appareils/tarifs/openmeteo.md +++ b/docs/appareils/tarifs/openmeteo.md @@ -7,7 +7,127 @@ Obtenir les données météo courantes pour votre site. -_Guide d'installation à venir._ +Le plugin OpenMeteo fournit à la box les **prévisions météo et solaires** de votre +site : météo du jour et du lendemain, et production photovoltaïque prévue pour chaque +orientation de toiture. Les données viennent du service public +[Open-Meteo](https://open-meteo.com), interrogé directement par la box, **sans compte +ni clé d'API** et sans passer par un service ETM. + +Paquet : `powersync-plugin-openmeteo`. + +## 1. Ce que le plugin publie + +Le plugin crée deux types d'objets : + +- un **site** (`Open-Meteo site`) : météo de l'emplacement (température, nuages, + vent, humidité…), irradiance solaire prévue, lever et coucher du soleil, et une + observation satellite de l'heure écoulée ; +- un ou plusieurs **plans PV** (`Open-Meteo PV plane`), rattachés au site : un par + orientation de toiture. Chaque plan publie l'irradiance prévue sur ses panneaux et + la production prévue qui en découle, pour l'heure courante, les 3, 6 et 12 heures à + venir, le reste de la journée et le lendemain. + +L'application ETM-PowerSync affiche ces prévisions à côté des mesures (production +prévue sur les graphes, météo heure par heure). + +## 2. Ajouter le site + +En mode installateur, ajoutez un appareil **Open-Meteo site** (voir +[Ajouter un appareil](../../installation/application.md)) et renseignez : + +| Champ | Contenu | +| --- | --- | +| `Latitude`, `Longitude` | Position du site, en degrés décimaux | +| `Elevation (m, optional)` | Altitude du site en mètres. Facultative : laissée à `0`, Open-Meteo utilise l'altitude de son propre modèle de terrain. À renseigner en montagne ou en vallée encaissée, où la température prévue en dépend. | + +Le site n'est pas découvert automatiquement : on le crée à la main, une fois par +emplacement. + +## 3. Ajouter les plans PV + +Une fois le site créé, ajoutez un appareil **Open-Meteo PV plane** : la découverte +propose un plan pour chaque site existant. Créez **un plan par orientation** — une +toiture est-ouest donne deux plans. + +| Champ | Contenu | +| --- | --- | +| `Tilt (deg, 0=horizontal)` | Inclinaison des panneaux, en degrés : `0` = à plat, `90` = vertical | +| `Azimuth (deg geographic, 180=South)` | Orientation, en **convention géographique** : `180` = sud, `90` = est, `270` = ouest | +| `Peak power kWp` | Puissance crête des panneaux de ce plan | +| `Performance ratio (declared, not learned)` | Rendement global de l'installation, **déclaré** par l'installateur (il n'est pas appris par la box). Laissé à `1.0`, la production prévue est surestimée. | + +Selon la version du plugin, deux champs issus de la fiche technique des modules +complètent le plan : `Power temperature coefficient (%/K, declared, not learned)` +(par défaut −0,37 %/K) et `NOCT (°C, declared, not learned)` (par défaut 45 °C). Ils servent à corriger la production prévue +quand les modules chauffent. + +!!! warning "Attention à l'azimut" + D'autres outils comptent l'azimut à partir du sud (`0` = sud). Ici, `0` est le + **nord** : un azimut de `0` saisi pour une toiture plein sud donne une production + prévue fortement sous-estimée. + +## 4. Une prévision, jamais une mesure + +Tout ce que publie ce plugin est une **prévision météo** convertie en production, ou +une **observation satellite** datant d'environ une heure. Ce n'est jamais une mesure +de votre installation : la production réelle se lit sur l'onduleur ou le compteur. + +C'est pourquoi les grandeurs sont nommées `forecast…` (prévision) ou `observed…` +(observation satellite) : il n'existe pas de `pvPower` dans ce plugin, seulement +`forecastPvPower`. + +La production prévue est calculée simplement : irradiance prévue × puissance crête × +rendement déclaré. Elle **ne tient pas compte** de l'ombrage, de l'encrassement des +panneaux ni de l'écrêtage de l'onduleur. L'écart va donc toujours dans le même sens : +**la prévision est optimiste**. 4 kW prévus ne sont pas 4 kW produits. + +La **dispersion météo** publiée pour aujourd'hui et demain (en %) dit à quel point la +météo elle-même est incertaine. Elle ne dit rien de la justesse de la production +prévue : par grand beau temps stable, elle est faible alors que la surestimation, elle, +est à son maximum. + +## 5. Rafraîchissement et coupure internet + +Les modèles météo ne publient pas plus souvent que cela : la prévision et +l'observation satellite sont relues **toutes les heures**, la dispersion **toutes les +3 heures**. L'action `Refresh` du site force les trois. + +Si Open-Meteo ne répond pas, le plugin réessaie après 5 minutes, puis 10, 20, 40… sans +dépasser le rythme normal de la source, et reprend son rythme dès la première réponse. +Après **3 heures** sans prévision reçue, l'état `Forecast valid` passe à faux. + +Une coupure internet ne bloque rien : la box continue de piloter avec ses mesures, la +sécurité reste assurée, et seules les prévisions se dégradent jusqu'au retour de la +connexion. + +## 6. Ce qui quitte la box + +Pour obtenir ses prévisions, la box envoie à Open-Meteo **uniquement** : + +- les coordonnées du site, **arrondies à deux décimales** (environ 1 km) : assez + précises pour la météo, trop floues pour désigner une adresse ; +- l'altitude du site, si vous l'avez renseignée ; +- l'inclinaison et l'azimut de chaque plan PV. + +Aucune mesure, aucune consommation et aucune donnée d'usage n'est transmise. La +puissance crête et le rendement restent sur la box : la conversion en production se +fait localement. + +## 7. Usage commercial : instance Open-Meteo dédiée + +L'API publique d'Open-Meteo est réservée à un **usage non commercial**. Pour un +déploiement commercial, les réglages du plugin permettent de pointer vers une instance +Open-Meteo auto-hébergée (`Base URL (forecast)`, `Base URL (satellite radiation)`, +`Base URL (ensemble spread)`) ou de renseigner une clé pour l'offre commerciale +d'Open-Meteo (`API key (commercial endpoint, optional)`). Sans modification, le plugin +interroge l'API publique. + +## 8. Sources des données + +Données météo de Météo-France, rayonnement satellite d'EUMETSAT, fournis par +[Open-Meteo](https://open-meteo.com) sous licence CC-BY 4.0. + +--- ## Référence diff --git a/i18n/devices.yaml b/i18n/devices.yaml index 9ff783a..b891368 100644 --- a/i18n/devices.yaml +++ b/i18n/devices.yaml @@ -246,9 +246,13 @@ sunspec: # ── Tarifs & prévisions ────────────────────────────────────────────────────── openmeteo: + # Correction : le meta.json annonce « current weather data », mais le plugin publie + # surtout des PRÉVISIONS (météo et production PV par orientation). Corrigé dans les + # trois langues tant que le meta.json d'etm-powersync-plugins ne l'est pas. tagline: - fr: Obtenir les données météo courantes pour votre site. - de: Aktuelle Wetterdaten für Ihren Standort abrufen. + fr: Prévisions météo et production solaire prévue pour votre site, via Open-Meteo. + de: Wetterprognosen und erwartete PV-Erzeugung für Ihren Standort, über Open-Meteo. + en: Weather forecasts and expected PV production for your site, via Open-Meteo. awattar: tagline: fr: Obtenir le dernier prix de l'énergie chez aWATTar.