NEWS
Vergleich Solarprognosen Solarwetter und brightsky
-
@klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:
Das Drehen des Hauses wäre auch eine Methode.
ich hab's versucht!
um 15° nach Süden, also 145 statt 130 Grad
Der Apex liegt immer noch um 13:00 und laut hourly Forecast soll jetzt noch fast 1/5 der Tagesproduktion kommen!da ist doch was faul.
-
Gegenprobe!
Für heute habe ich das Haus 15° gegen Norden gedreht, also -30° im Vergleich zu gestern
Der Apex ist nach wie vor bei 13:00, allerdings etwas schärfer als gestern (als natürlich nicht der gleiche Sonnenschein zu erwarten war) -
Statt Edit, ein neuer Post!
ich bin jetzt total verwirrt!
Was mache/denke ich falsch?Nach der Wettervorhersage in Android
(zu spät gescreenshottet! Heute morgen 8:00 Nebel, von 9:00 bis 16:00 durchgehend bedeckt)Da passt die Hourly Vorhersage vom DWD überhaupt nicht. Diese müsste dann eher so
aussehen.Nach dem Blick auf Zahlen
läge ich doch gut im Rennen, möglicherweise am Ende des Tages sogar über Estimate.ABER wieso??
Nach dem Chart
Ist doch bisher etwa nur 50% des estimates eingetroffen!!Wo ist mein Denkfehler?
-
@homoran Sorry, hatte die letzten Tage viel zu tun.
-
Haus Drehen: Ich hatte mich dagegen entschieden, weil
- Um die Mittagszeit hat die Kurve P(t) ein Maximum. Die Steigung ist also recht klein. Die Leistung reagiert nicht so empfindlich auf die Zeit
- deshalb eignet sich dieser Punkt - so wichtig er auch für die Produktion ist, nicht so gut zum Kalibrieren einer Zeitverschiebung
- die Kurvenflanken der Sonnenauf- und untergänge reagieren empfindlicher auf Zeitverschiebungen
- Haus drehen kann noch andere Nebenwirkungen auf andere Funktionen oder Skripte haben
- Verschiebung der Zeitachse gleicht den Schönheitsfehler - woher er auch immer kommt - kosmetisch etwas aus. Für mich ist allerdings der ermittelte Gesamtertrag entscheidend
-
Nebel
- Ich habe die DWD App. Und bereits innerhalb dieser App gibt es Inkonsistenzen zwischen den verschiedenen Ansichten, z.B. Wolkensymbolen auf dem Zeitgraphen und der Kartenansicht mit Bewölkung
- Nebel, bsonders der Morgennebel wird zumindest in meiner Gegend nicht so genau vorausgesagt. Ortsrandlage mit Wiesen, Übergang zwischen Tal und Bergland oder warum auch immer
-
-
ich hatte in den letzten Tagen ein paar Minuten Zeit mich mit der Vorhersage zu beschäftigen und habe ein wenig gespielt.
Statt Erleuchtung zu bekommen bin ich noch verwirrter!
Eine Berechnung der stündlichen Leistung nach dem hourly Forecast sieht so aus
-> lila Kurve
weitere Forecasts
weiss: jahreszeitlich maximal erreichbare Leistung bei optimalen Bedingungen
grau: hourly estimate 05:00 des brightSky Adapters
gelb: tatsächliche LeistungDie lila Kurve habe ich gemäß der Formel azs dem PV-Forum
wie folgt umgesetzt
Der Basiswert ist hourly.00.solar (solar radiation)
nach meinem Verständnis ist das die aktuelle Leistung der Sonne in kW/m²javascript.1 2025-10-02 09:00:05.360 info script.js.Solaranlage.pEst_Fassade: 0.05 javascript.1 2025-10-02 10:00:08.049 info script.js.Solaranlage.pEst_Fassade: 0.181 javascript.1 2025-10-02 11:00:08.478 info script.js.Solaranlage.pEst_Fassade: 0.328 javascript.1 2025-10-02 12:00:07.152 info script.js.Solaranlage.pEst_Fassade: 0.467 javascript.1 2025-10-02 13:00:08.577 info script.js.Solaranlage.pEst_Fassade: 0.539 javascript.1 2025-10-02 14:00:05.045 info script.js.Solaranlage.pEst_Fassade: 0.558 javascript.1 2025-10-02 15:00:06.537 info script.js.Solaranlage.pEst_Fassade: 0.531 javascript.1 2025-10-02 16:00:07.515 info script.js.Solaranlage.pEst_Fassade: 0.45 javascript.1 2025-10-02 17:00:07.640 info script.js.Solaranlage.pEst_Fassade: 0.325 javascript.1 2025-10-02 18:00:06.282 info script.js.Solaranlage.pEst_Fassade: 0.183 javascript.1 2025-10-02 19:00:04.417 info script.js.Solaranlage.pEst_Fassade: 0.056
(im Vergleich dazu wird die Leistung eines Panels In Wp bei 1000W/m² senkrechter Bestrahlung angegeben.
Was mir gefällt ist, dass jetzt der Apex bei ca.12:00 Uhr liegt, obwohl die höchste Sonneneinstrahlung um 14:00 zu erwarten ist. Die Winkelabweichungen bezogen auf die Panels werden also berücksichtigt.
Was mir nicht gefällt ist die geringe Gesamtfläche der Vorhersage im Vergleich zum Ist und zum Estimate des Adapters.
(wo) Habe ich da einen Denk-/Rechenfehler? -
@homoran So sah das heute bei mir aus:
Gelb ist die PV-DC Leistung die Fronius Gen24 meldet. Ich hatte heute genügend interne Abnahme gegen Mittag (auch Laden der Batterie), so daß kaum Clipping zu sehen ist.
Dunkelblau ist die Kurve, die ich aus den hourly "solar" ('brightsky.0.hourly.xy.solar' ; xy von 00 bis 24) (Global horizontal irradiance (GHI)) mit meinen Dach-PV-Daten berechne. Das müssten jetzt die 08:00 Werte sein, da ich die Kurve immer überschreibe. Dabei rechne ich auch die Fläche unter der Stufenkurve (Stundensteps, nicht die hier gezeigte interpolierte Kurve) um 05:00 und um 08:00 neu. Diese Werte nehme ich als Forecast für den TagesertragDie hellblaue Kurve kommt aus den hourly "solar_estimate" (brightsky.0.hourly.xy.solar_estimate ; xy von 00 bis 24). Allerdings bin ich dort bequem und rechne den Flächeninhalt nicht selbst.
Stattdessen nutze ich den 'brightsky.0.daily.00.solar_estimate' von DWD, welchen der Adapter liefert.Die Kurven werden in der Graphik um 30 Minuten verschoben, damit es visuell besser passt. Reine Empirie (Vermutung Lage der Abtastwerte), keine Physik, kein Einfluß auf die Flächenwerte.
Heute lag mein 05:00 Wert um 5,6% und der 08:00 Wert um 5,3% zu hoch.
Der Adapter 'brightsky.0.daily.00.solar_estimate' von 05:00 lag um 5,1% zu niedrig.
Spasseshalber rechne ich auch noch den Mittelwert von Adapter und eigener Berechnung und der lag heute bei den 05:00 bei 0,5% Abweichung. Also "exakt" im Umfeld einer Wettervorhersage.Ich kann aber auch ganz andere Bilder mit 60% Abweichung und mehr zeigen. Besonders, wenn sich der Nebel hier festfrisst und nicht weggeblasen wird. Diese Abweichungen können lokal sein und mit der Entfernung zur DWD Station oder der lokalen Nebellage oder der DWD Performance zusammen hängen.
Fazit:
- An schönen Tagen passt das recht gut.
- Meine eigene grobe Berechnung (nur aus GHI hourly Werten, also direkte Strahlung) ist meist etwas höher,
- der Adapter 05:00 daily solar_estimate Wert meist geringer
- Es gibt aber auch zum Teil drastische Ausreißer weil die DWD Vorhersagen nicht passen. Da liegt dann die Realität deutlich unter den Vorhersagen und damit auch deutlich unter den beiden Kurvenflächen.
Ich bin es soweit zufrieden. Besser als alles was ich vorher hatte.
Ich beobachte das weiter über den Jahresverlauf.Für den Use Case "netzdienliches Verhalten" halte ich das pragmatisch. Priorität hat die Vermeidung von Netzbezug. Wenn die Prognesen nicht genügend Abstand von (ca 1 Tagesbedarf + (Akkukapazität - AkkuSOC)) hat, kümmere ich mich nicht um Netzdienlichkeit.
Es gibt also jede Menge Näherungen und Annahmen in der Kette. Aber die größte Fehlerquelle sind wohl noch immer die DWD Vohersagewerte. qee. - An schönen Tagen passt das recht gut.
-
@homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:
Der Basiswert ist hourly.00.solar (solar radiation)
nach meinem Verständnis ist das die aktuelle Leistung der Sonne in kW/m²Ja, der Global horizontal irradiance (GHI) Wert. Gemessen auf einer horizontal liegenden Ebene. Dadurch wir man den Azimut los. Was bleibt ist die Elevation der Sonne.
(im Vergleich dazu wird die Leistung eines Panels In Wp bei 1000W/m² senkrechter Bestrahlung angegeben.
Ja, genau. Also muß man sowohl die Sonnenelevation als auch den Azimut relativ zur Dachlage berücksichtigen.
Was mir nicht gefällt ist die geringe Gesamtfläche der Vorhersage im Vergleich zum Ist und zum Estimate des Adapters.
(wo) Habe ich da einen Denk-/Rechenfehler?Wahrscheinlich gibt es da irgendwo einen Rechenfehler, denn meine grob genäherte Rechnung bringt keine so großen Abweichungen.
Edit: s.u. Bogenmass vs. Grad bei den Winkelfunktionen? -
Edit: Bitte auch https://forum.iobroker.net/post/1297842 anschauen
So sehen meine Definitionswerte aus. Geodaten (Breite, Länge) werden aus dem Adapter gezogen und sind die der DWD Station
const AREA_M2 = 36* 1.755 * 1.038; // Fläche A in m² console.log('Modulfläche: '+ AREA_M2); const EFFICIENCY = 0.20; // Wirkungsgrad (z. B. 20% -> 0.20) const ALPHA_DEG = -10; //(255-180)+90; // -10; // Azimut der Fläche (0 = Süd, negativ Ost, positiv West) const BETA_DEG = 25; // Neigung in Grad gegen Horizontal const inverterPowerLimit = 10; // 10kW is the max potential of the Gen24
Dann habe ich einige Tests gemacht
* For testing purposes there is a local python script on the ioBroker host d:\Auswertungen\Solar-ghi-poa-transformation.py * using the python pvlib which also calculates albedo and diffuse light etc. That means, it produces higher values in the lower range (expectation) * * * recommenden test conditions * 1 Test for horizontal panels * const AREA_M2 = 1 // Sensor Fläche A in m² * const EFFICIENCY = 1 // Sensor efficiency * const ALPHA_DEG = 0; // value just to be in allowed range) * const BETA_DEG = 0 ; // horizontal plane * Expected results: poa = ghi = energy_kWh * * 2 Panel upright position in line with the azimuth direction: Expectation: zero output * * first select an hour, e.g. 13:00 and calculate (using a 3rd party program) the azimuth of this date and time at the location of the sourced weather station. lets call it solar_azimuth_here_and_now * * const AREA_M2 = 1 // Sensor Fläche A in m² * const EFFICIENCY = 1 // Sensor efficiency * const ALPHA_DEG = 90 + solar_azimuth_here_and_now calculated by a third party app * const BETA_DEG = 90 ; // panel upright * * Expected result: poa = 0 = energy_kWh * * * * ***/
Ich habe also
- Test 1: Module haben 1 m² und liegen flach. Also müssen die gleichen Werte rauskommen wie beim GHI
- Test 2: Das Modul mit 1m² wird senkrecht aufgestellt und streifend in die Sonne gedreht. Idealerweise sollte also gar kein Licht auf die Module fallen und die Erträge gehen gen 0.
- Test mit anderen Orientierungen: Vergleich mit einem Python Programm, welches eine hoffentlich anerkannte Bibliothek verwendet, die allerdings Albedo und andere Finessen kann. Also werden die Werte nicht ganz identisch sein
-
@Homoran
Mit Blockly bin ich nicht vertraut.
Aber im Blockly hantierst Du mit Winkelfunktionen. Klar, sowas muß sein.
Bei Javascript wird (wie auch in xls) im Bogenmaß und nicht in Grad gerechnet.
Ich habe also jeweils Funktionen zur Umwandlungfunction deg2rad(d){ return d * Math.PI / 180; } function rad2deg(r){ return r * 180 / Math.PI; }
Ich weiß jetzt nicht, wie das in Blockly gehandhabt wird.
Edit: ChatGPT behauptet, ioBroker Blocky arbeite wie auch JavaScript im Bogenmass. Dein Blockly macht mich glauben, Du verwendest Grad. Wäre das ein erster Schritt?
-
@klassisch sagte in Vergleich Solarprognosen Solarwetter und brightsky:
Wäre das ein erster Schritt?
muss ich mir ansehen!
Danke -
Blockly ist ein Hybrid aus Javascript und Lego.
-
@ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:
Blockly ist ein Hybrid aus Javascript und Lego.
genau deswegen hilft es mir.
Ich komme mit der js-Syntax selber einfach nicht klar.
Deswegen nutzt mir dein Skript auch leider nichts, Sorry!
Auch wenn lesen deutlich einfacher als schreiben istich bin aber der Meinung, dass genau dieses Snippet mit den Winkelfunktionen an anderer Stelle für die maximal erreichbare Leistung funktioniert.
-
@homoran Kannst ja mal ein Probeblockly zu Winkelfunktionen machen, dann siehst Du, ob es lieber Grad oder rad verspeist. Ich tippe auf rad
Oder @paul53 weiß das natürlich.Was ich als Excerpat meines Skripts gepostet habe, war nur der Erklärungsteil, die Daten des Daches und mit welchen einfachen Tests mal einiges sehen kann.
Natürlich habe ich noch mehr Test gemacht, aber dazu braucht es halt eine Referenz, für die ich das Python Skript genutzt habe. -
@homoran sagte in Vergleich Solarprognosen Solarwetter und brightsky:
@ticaki sagte in Vergleich Solarprognosen Solarwetter und brightsky:
Blockly ist ein Hybrid aus Javascript und Lego.
genau deswegen hilft es mir.
Ich komme mit der js-Syntax selber einfach nicht klar.
Deswegen nutzt mir dein Skript auch leider nichts, Sorry!Jeder wie er mag - ich tue mir schwer mit blockly deshalb gibts da wenig von mir