76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

Begonnen von DS_Starter, 11 Februar 2024, 14:11:00

Vorheriges Thema - Nächstes Thema

schwatter

Ok, ich habe mal etwas damit gespielt.
1. headerDetail=co,pv gesetzt
2. headerDetail=all

Nu ist es ok. Verrückt. Auch nach dem entfernen von headerDetail bleibt es. Ich vermute FullyKioskbrowsercache...
Den hatte ich nicht geleert. Ich beobachte das, aber wahrscheinlich falscher Alarm.

Gruß schwatter

Parallix

#4156
Zitat von: DS_Starter am 05 Oktober 2025, 11:00:14...
Der Überschußwert wird bei der SoC Berechnung auch nicht genullt, sondern die Fortschreibung des sich erniedrigenden SoC in diesem Fall auf 0 begrenzt, er kann also nicht tiefer fallen.
...

Hatte im Code
$hsurp->{$hod}{$sbn}{fcendwh} = sprintf "%.0f", max (0, $runwh);          falsch geguckt. Wenn ich Deine Bezeichner nicht falsch verstehe, dann meinen wir vermutlich aber das gleiche.

ZitatWenn dieser (Überschusswert) < 0 ist, bedeutet es nicht automatisch Netzbezug, sondern ist nur Verbrauch der auch nur von der Bat befriedigt werden kann.
Im vorliegend diskutierten Fall (runwh < 0) kann runwh, sofern SOC <= 0, nicht mehr oder, sofern SOC gering aber > 0, nicht mehr vollständig von der Bat befriedigt werden oder sehe ich da etwas falsch?
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.60) und 7591 (8.20) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS

DS_Starter

ZitatIm vorliegend diskutierten Fall (runwh < 0) kann runwh, sofern SOC <= 0, nicht mehr oder, sofern SOC gering aber > 0, nicht mehr vollständig von der Bat befriedigt werden oder sehe ich da etwas falsch?
Wenn SOC <= 0, oder genauer sogar SOC <= lowSoC, würde der Bedarf durch Netzbezug gedeckt weil die Bat dann nichts mehr liefert. Richtig.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Parallix

#4158
Zitat von: DS_Starter am 05 Oktober 2025, 12:45:32
ZitatIm vorliegend diskutierten Fall (runwh < 0) kann runwh, sofern SOC <= 0, nicht mehr oder, sofern SOC gering aber > 0, nicht mehr vollständig von der Bat befriedigt werden oder sehe ich da etwas falsch?
Wenn SOC <= 0, oder genauer sogar SOC <= lowSoC, würde der Bedarf durch Netzbezug gedeckt weil die Bat dann nichts mehr liefert. Richtig.

Nun gibt es aber ggf. mehr als zwei Speicher, von denen nicht unbedingt beide eine SOC < lowSoC haben müssen. Wie geht SF mit diese Situation um?
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.60) und 7591 (8.20) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS

DS_Starter

Seit jeher wird die Lade-/ SoC-Steuerung für jedes Batteriedev separat gerechnet / gesteuert und dabei der Gesamtenergiebedarf gewichtet auf die Anteile der Batteriekapazität an der gesamten installierten Bat-Kapa aufgeteilt.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Parallix

Zitat von: DS_Starter am 05 Oktober 2025, 13:09:45Seit jeher wird die Lade-/ SoC-Steuerung für jedes Batteriedev separat gerechnet / gesteuert und dabei der Gesamtenergiebedarf gewichtet auf die Anteile der Batteriekapazität an der gesamten installierten Bat-Kapa aufgeteilt.

Das habe ich mir gedacht. Wenn aber ein Speicher keine Leistung mehr liefern kann, dann darf die o.g Aufteilung des Gesamtenergiebedarfs nicht erfolgen.
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.60) und 7591 (8.20) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS

DS_Starter

Da hast du Recht. Eigentlich nicht nur das, sondern auch im umgekehrten Fall der Ladung wenn eine der Batterien ihr Ziel bereits erreicht hat wäre die gewichtete Aufteilung auch anzupassen.
Kommt als Feintuning auf den Zettel.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

xerion

Moin zusammen,
ich habe leider immer wieder mal unrealistische Vorhersagen. Also innerhalb von einer Stunde 30 kW/h. Das erreiche ich nicht mal im Sommer ;-)
Ich nutze OpenMeteoDWDAPI mit KI
Hat sonst schon jemand so etwas beobachten können?
Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.

Parallix

#4163
Zitat von: xerion am 05 Oktober 2025, 14:08:28Moin zusammen,
ich habe leider immer wieder mal unrealistische Vorhersagen. Also innerhalb von einer Stunde 30 kW/h. Das erreiche ich nicht mal im Sommer ;-)
Ich nutze OpenMeteoDWDAPI mit KI
Hat sonst schon jemand so etwas beobachten können?

Selber nutze ich keine KI und bin, seit ich die Prognosen unter Verwendung der OpenMeteoDWD_D2-API von SF erstellen lasse, sehr zufrieden. Unter Verwendung der OpenMeteoDWDEnsemble-API hatte ich ein deutlich schlechteres Bild!

PS: Für die 30 kWh (nicht 30 KW/h) ist wahrscheinlich ein völlig falscher Korrekturfaktor verantwortlich.
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.60) und 7591 (8.20) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS

DS_Starter

#4164
Weiteren Aufschluß gibt ctrlDebug=radiationProcess und dann die entsprechende Starttime (2025-10-06 11:00:00) heraussuchen:

2025.10.05 14:45:34.116 1: SolCast DEBUG> PV API estimate for tomorrow Hour 12 string Schleppdach ->
Estimated PV generation (calc) => 461.4 Wh
Estimated PV generation (raw) => 769 Wh
Module Temp (calculated) => 14.65 C
PV correction factor => 0.60
PV correction quality => 0.33
String Peak => 2180 W
Win(+)/Loss(-) String Peak Power by Temp => 0.10 kWp

2025.10.05 14:45:34.117 1: SolCast DEBUG> PV API estimate for tomorrow Hour 12 string Süddach ->
Estimated PV generation (calc) => 1281.0 Wh
Estimated PV generation (raw) => 2135 Wh
Module Temp (calculated) => 14.65 C
PV correction factor => 0.60
PV correction quality => 0.33
String Peak => 5910 W
Win(+)/Loss(-) String Peak Power by Temp => 0.26 kWp

2025.10.05 14:45:34.117 1: SolCast DEBUG> PV API estimate for tomorrow Hour 12 summary:
Cloudcover => 91
Forecasted temperature => 12.40 C
PV Correction mode => on_complex
PV generation forecast => 1742 Wh
Starttime => 2025-10-06 11:00:00
Total Rain last hour => 0.00 kg/m2

Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

xerion

Zitat von: DS_Starter am 05 Oktober 2025, 14:38:41Weiteren Aufschluß gibt ctrlDebug=radiationProcess und dann die entsprechende Starttime (2025-10-06 11:00:00) heraussuchen:

2025.10.05 14:45:34.116 1: SolCast DEBUG> PV API estimate for tomorrow Hour 12 string Schleppdach ->
Estimated PV generation (calc) => 461.4 Wh
Estimated PV generation (raw) => 769 Wh
Module Temp (calculated) => 14.65 C
PV correction factor => 0.60
PV correction quality => 0.33
String Peak => 2180 W
Win(+)/Loss(-) String Peak Power by Temp => 0.10 kWp

2025.10.05 14:45:34.117 1: SolCast DEBUG> PV API estimate for tomorrow Hour 12 string Süddach ->
Estimated PV generation (calc) => 1281.0 Wh
Estimated PV generation (raw) => 2135 Wh
Module Temp (calculated) => 14.65 C
PV correction factor => 0.60
PV correction quality => 0.33
String Peak => 5910 W
Win(+)/Loss(-) String Peak Power by Temp => 0.26 kWp

2025.10.05 14:45:34.117 1: SolCast DEBUG> PV API estimate for tomorrow Hour 12 summary:
Cloudcover => 91
Forecasted temperature => 12.40 C
PV Correction mode => on_complex
PV generation forecast => 1742 Wh
Starttime => 2025-10-06 11:00:00
Total Rain last hour => 0.00 kg/m2



In den einzelnen Strings konnte ich nichts ungewöhnliches finden. Aber der Letze Eintrag ist komisch, auf welcher Grundlage wird das ermittelt, oder habe ich was falsch konfiguriert? Ich nutze das Modul mehr oder weniger seit der Entstehung von daher könnte nicht grundsätzlich alles falsch sein ;-)
2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV API estimate for tomorrow Hour 12 string NORD ->
Estimated PV generation (calc) => 217.9 Wh
Estimated PV generation (raw) => 283.00 Wh
Module Temp (calculated) => 12.7 °C
PV correction factor => 0.77
PV correction quality => 0.02
String Peak => 5190 W
Win(+)/Loss(-) String Peak Power by Temp => 0.27 kWp

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV API estimate for tomorrow Hour 12 string OST ->
Estimated PV generation (calc) => 253.3 Wh
Estimated PV generation (raw) => 329.00 Wh
Module Temp (calculated) => 12.7 °C
PV correction factor => 0.77
PV correction quality => 0.02
String Peak => 6750 W
Win(+)/Loss(-) String Peak Power by Temp => 0.35 kWp

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV API estimate for tomorrow Hour 12 string OST_65 ->
Estimated PV generation (calc) => 30.0 Wh
Estimated PV generation (raw) => 39.00 Wh
Module Temp (calculated) => 12.7 °C
PV correction factor => 0.77
PV correction quality => 0.02
String Peak => 920 W
Win(+)/Loss(-) String Peak Power by Temp => 0.05 kWp

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV API estimate for tomorrow Hour 12 string SUED_90 ->
Estimated PV generation (calc) => 106.3 Wh
Estimated PV generation (raw) => 138.00 Wh
Module Temp (calculated) => 12.7 °C
PV correction factor => 0.77
PV correction quality => 0.02
String Peak => 4135 W
Win(+)/Loss(-) String Peak Power by Temp => 0.22 kWp

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV API estimate for tomorrow Hour 12 string WEST_20 ->
Estimated PV generation (calc) => 284.9 Wh
Estimated PV generation (raw) => 370.00 Wh
Module Temp (calculated) => 12.7 °C
PV correction factor => 0.77
PV correction quality => 0.02
String Peak => 6910 W
Win(+)/Loss(-) String Peak Power by Temp => 0.36 kWp

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV API estimate for tomorrow Hour 12 string WEST_45 ->
Estimated PV generation (calc) => 239.5 Wh
Estimated PV generation (raw) => 311.00 Wh
Module Temp (calculated) => 12.7 °C
PV correction factor => 0.77
PV correction quality => 0.02
String Peak => 6460 W
Win(+)/Loss(-) String Peak Power by Temp => 0.34 kWp

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV API estimate for tomorrow Hour 12 string WEST_65 ->
Estimated PV generation (calc) => 29.3 Wh
Estimated PV generation (raw) => 38.00 Wh
Module Temp (calculated) => 12.7 °C
PV correction factor => 0.77
PV correction quality => 0.02
String Peak => 920 W
Win(+)/Loss(-) String Peak Power by Temp => 0.05 kWp

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV API estimate for tomorrow Hour 12 summary:
Cloudcover => 100
Forecasted temperature => 12.70 °C
PV Correction mode => on_complex_ai
PV generation forecast => 1161 Wh
Starttime => 2025-10-06 11:00:00
Total Rain last hour => 0.00 kg/m2

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV AI forecast start time 2025-10-06 11:00:00 limited to 30400 Wh due to inverter capacity summary
Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.

Max_Meyer

Zitat von: DS_Starter am 05 Oktober 2025, 08:52:51ich habe deinen Input zur Integration eines SMA Hybrid ins Wiki gebracht. Bitte mal gegenchecken und ggf. ergänzen bzw. mir schreiben. Du scheinst neben SMAInverter auch MQTT zu nutzen
Hallo Heiko,
1.Kommentar zur Datengewinnung Anlage Hybrid-WR im Wiki
sorry - mein Screenshot vom 15. September war leider falsch - hatte das im #4085 am 19. September korrigiert - dort habe ich auch den Energiefluss  anhand von Fallbeispielen dokumentiert außerdem habe ich jetzt noch mal den Originalpost #4028 entsprechend kommentiert - kannst du bitte den Screen im Wiki austauschen? - screen anbei
2.) MQTT?
Die Anwendungen SF und und die Inverter-Steuerung laufen jeweils auf unterschiedlicher Hardware - als Verbindungslayer nutze ich MQTT.
3.) was noch fehlt im Wiki:- ist die eigentliche Steuerung des WR z.B. über ModBus - das hat aber aus meiner Sicht nichts im SF zu suchen - sollte vielleicht erwähnt werden
Gruß Gerd

FHEM: PI3...5 FB7590/7530/EnOcean/FS20 /Revolt/FHEM2FHEM/HTTPMOD-->Solmaxx-, Deye-, Bosswerk-Inverter/ModBusTCP -->SMA-Inverter, GoE-Charger, BröntjeWP/Solarforecast/DbLog/DbRep/PostgreSQLDB/Grafana/MQTT-->Shelly,FHEM,HMS/HCCON/Netatmo/KLF etc.

DS_Starter

#4167
ZitatIn den einzelnen Strings konnte ich nichts ungewöhnliches finden.
Ja, das Log sieht gut aus. Bedeutet, die API und Korekturfaktoren sind ok.

ZitatAber der Letze Eintrag ist komisch
Du meinst sicherlich diesen Log:

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV AI forecast start time 2025-10-06 11:00:00 limited to 30400 Wh due to inverter capacity summary
Das zeigt recht deutlich, dass diese falsche Vorhersage von der KI verursacht wird.

Zur Kontrolle auf ctrlDebug=aiData ändern und wieder die hod=12 (des nächsten Tages) suchen:

2025.10.05 15:11:04.956 1: SolDwd DEBUG> Start AI result check for hod: 12
2025.10.05 15:11:04.956 1: SolDwd DEBUG> got AI result from Tree number 1: 2781
2025.10.05 15:11:04.957 1: SolDwd DEBUG> got AI result from Tree number 2: 2781
2025.10.05 15:11:04.957 1: SolDwd DEBUG> got AI result from Tree number 3: 2781
2025.10.05 15:11:04.957 1: SolDwd DEBUG> got AI result from Tree number 5: 2781
2025.10.05 15:11:04.958 1: SolDwd DEBUG> got AI result from Tree number 10: 1915
2025.10.05 15:11:04.958 1: SolDwd DEBUG> AI accurate result found: pvaifc: 2608 (hod: 12, sunaz: 154, sunalt: 30, Rad1h: 940, wcc: 82, rr1c: 0.10, temp: 15)
2025.10.05 15:11:04.958 1: SolDwd DEBUG> AI Hit - accurate result used -> aiRulesNum: 7188.4, variance: 117, hod: 12, Rad1h: 940, pvfc: 2608 Wh

hod = hour of day    11:00 - 11:59 ist die Stunde 12 des Tages
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

xerion

Zitat von: DS_Starter am 05 Oktober 2025, 15:14:00
ZitatIn den einzelnen Strings konnte ich nichts ungewöhnliches finden.
Ja, das Log sieht gut aus. Bedeutet, die API und Korekturfaktoren sind ok.

ZitatAber der Letze Eintrag ist komisch
Du meinst sicherlich diesen Log:

2025.10.05 14:48:27 1: SolarForecast_API DEBUG> PV AI forecast start time 2025-10-06 11:00:00 limited to 30400 Wh due to inverter capacity summary
Das zeigt recht deutlich, dass diese falsche Vorhersage von der KI verursacht wird.

Zur Kontrolle auf ctrlDebug=aiData ändern und wieder die hod=12 (des nächsten Tages) suchen:

2025.10.05 15:11:04.956 1: SolDwd DEBUG> Start AI result check for hod: 12
2025.10.05 15:11:04.956 1: SolDwd DEBUG> got AI result from Tree number 1: 2781
2025.10.05 15:11:04.957 1: SolDwd DEBUG> got AI result from Tree number 2: 2781
2025.10.05 15:11:04.957 1: SolDwd DEBUG> got AI result from Tree number 3: 2781
2025.10.05 15:11:04.957 1: SolDwd DEBUG> got AI result from Tree number 5: 2781
2025.10.05 15:11:04.958 1: SolDwd DEBUG> got AI result from Tree number 10: 1915
2025.10.05 15:11:04.958 1: SolDwd DEBUG> AI accurate result found: pvaifc: 2608 (hod: 12, sunaz: 154, sunalt: 30, Rad1h: 940, wcc: 82, rr1c: 0.10, temp: 15)
2025.10.05 15:11:04.958 1: SolDwd DEBUG> AI Hit - accurate result used -> aiRulesNum: 7188.4, variance: 117, hod: 12, Rad1h: 940, pvfc: 2608 Wh

hod = hour of day    11:00 - 11:59 ist die Stunde 12 des Tages


Ja das wird wohl das bestätigen was du vermutet hast. Kann ich das irgendwie "reparieren"?
2025.10.05 15:15:00 1: SolarForecast_API DEBUG> Start AI result check for hod: 12
2025.10.05 15:15:00 1: SolarForecast_API DEBUG> got AI result from Tree number 2: 3139200
2025.10.05 15:15:00 1: SolarForecast_API DEBUG> got AI result from Tree number 4: 3139200
2025.10.05 15:15:00 1: SolarForecast_API DEBUG> got AI result from Tree number 5: 3139200
2025.10.05 15:15:00 1: SolarForecast_API DEBUG> got AI result from Tree number 8: 1080
2025.10.05 15:15:00 1: SolarForecast_API DEBUG> got AI result from Tree number 9: 3139200
2025.10.05 15:15:00 1: SolarForecast_API DEBUG> got AI result from Tree number 10: 3139200
2025.10.05 15:15:00 1: SolarForecast_API DEBUG> AI accurate result found: pvaifc: 2616180 (hod: 12, sunaz: 150, sunalt: 30, Rad1h: 230, wcc: 100, rr1c: 0.00, temp: 15)
2025.10.05 15:15:00 1: SolarForecast_API DEBUG> AI Hit - accurate result used -> aiRulesNum: 6662.1, variance: 2618, hod: 12, Rad1h: 230, pvfc: 30400 Wh
Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.

DS_Starter

#4169
ZitatJa das wird wohl das bestätigen was du vermutet hast. Kann ich das irgendwie "reparieren"?
Die Ursache ist klar geworden.
Reparieren geht vielleicht ... rufe dir "get ... valDecTree aiRawData" auf.
Suche Datensätze (vllt. gibt es mehrere) die solche außerordentlich hohe Werte im Feld "pvrl: ..." aufweisen.
Der Datensatz beginnt mit dem Time-Index, z.B. "2023101718 =>.." wäre hod 18 am 17.10.2023.

Wenn du den jüngsten Datensatz mit solchen total falschen Werten gefunden hast, kann man mit einem Trick alle älteren Daten ab diesem Datensatz löschen (aiControl->aiStorageDuration).
Mit etwas Glück verliert man nicht zu viele gesammelten Daten.

Damit deine Steuerung bis zu einer Lösung nicht zu sehr leidet, schalte die KI zunächst einmal aus.

Edit: Bevor du etwas löscht würde ich einen Reset-Befehl implementieren, mit dem man einzelne RAW-Datensätze löschen kann. Das ist bei wenigen betroffenen Daten gut machbar.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter