Leistungsprognose für Wechselrichter

Begonnen von ch.eick, 18 Januar 2021, 08:35:46

Vorheriges Thema - Nächstes Thema

DS_Starter

#1605
Ich habe noch die Readings Today_MaxPVforecast und Today_MaxPVforecastTime eingefügt sowie einen Fehler bereinigt der mir unterlaufen war. Liegt im contrib.

Wie ich beobachtet habe, ändert die API die Vorhersage rasch entspr. sich verändernden Witterungsbedingungen, insbesondere der Bewölkung. Das ist sehr positiv, bedeutet aber auch eine deutlich höhere Dynamic gegenüber den DWD Werten.
Deswegen werde ich versuchen das bisher feste Abrufintervall von 1h in Abhängigkeit der Zeit zwischen Sonnenauf- und Untergang sowie der Anzahl der vorhandenen Rooftops zu optimieren um die möglichen 50 Calls pro Tag maximal auszunutzen und das Intervall so eng wie möglich zu ziehen.
ESXi@NUC+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

DS_Starter

#1606
Noch ein Hinweis.
Ihr braucht ein aktuelles FHEM. Das eingebundene Modul CTZ hatte ich vor ein paar Tagen um eine benötigte Funktion ergänzt.
ESXi@NUC+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

DS_Starter

Musste leider noch einen Fehler korrigieren.
Gerade ein Update ins contrib geladen.
ESXi@NUC+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

SparcWolf

Moin,
ich habe mal die neue SolCast-API ausprobiert (Version: 0.68.1).
Als ich mir die Vorhersagen von einigen Monaten angeschaute habe, fand ich die Prognosequalität nicht so gut.

Leider hängt sich FHEM nach der Konfiguration auf (100% CPU, Keine Reaktion mehr über BUI/Telnet, Endlosschleife?)
Ich vermute, dass es nach dem Abrufen der Daten passiert.

2022.09.18 12:34:08 4: https://api.solcast.com.au/rooftop_sites/503f-2946-2082-.../forecasts?format=json&api_key=NoUDWXTVb_rWUzTag3PPTpyIV9ss_...: HTTP response code 200


Meine Definition (Ich habe ein 2. SolarForecast Device angelegt):

defmod S10E_SolCast SolarForecast

attr S10E_SolCast beam1Content pvReal
attr S10E_SolCast beam2Content pvForecast
attr S10E_SolCast consumerLegend icon_bottom
attr S10E_SolCast flowGraphicAnimate 1
attr S10E_SolCast flowGraphicSize 400
attr S10E_SolCast follow70percentRule dynamic
attr S10E_SolCast historyHour -12
attr S10E_SolCast layoutType diff
attr S10E_SolCast room 14_E3DC
attr S10E_SolCast cloudFactorDamping 0
attr S10E_SolCast rainFactorDamping  0

set S10E_SolCast pvCorrectionFactor_Auto off
set S10E_SolCast currentForecastDev      DWD
set S10E_SolCast currentRadiationDev     SolCast-API
set S10E_SolCast currentInverterDev      S10E_Meter pv=Solar_W:W etotal=Solar_Wh:Wh capacity=12000
set S10E_SolCast currentMeterDev         S10E_Meter gcon=Netz_Bezug_W:W contotal=EM-Bezug_kWh:kWh gfeedin=Netz_Einspeisung_W:W feedtotal=EM-Einspeisung_kWh:kWh
set S10E_SolCast currentBatteryDev       S10E_Meter pin=Batterie_Laden_W:W pout=Batterie_Entladen_W:W intotal=Batterie_Laden_Wh:Wh outtotal=Batterie_Entladen_Wh:Wh charge=Batterie_SOC
set S10E_SolCast inverterStrings         OstString,WestString
set S10E_SolCast modulePeakString        OstString=5.11 WestString=5.11
set S10E_SolCast moduleDirection         OstString=E WestString=W
set S10E_SolCast moduleTiltAngle         OstString=10 WestString=10
set S10E_SolCast roofIdentPair           East rtid="503f-2946-2082-xxxx" apikey="NoUDWXTVb_rWUzTag3PPTpyIV9ss_xxx"
set S10E_SolCast roofIdentPair           West rtid="57f9-aadd-3f6b-xxxx" apikey="NoUDWXTVb_rWUzTag3PPTpyIV9ss_xxx"
set S10E_SolCast moduleRoofTops          OstString=East WestString=West


Im Anhang meine Forecast Daten:


wget -q -O fc.west.new "https://api.solcast.com.au/rooftop_sites/${WESTSITE}/forecasts?format=json&api_key=${APIKEY}"
wget -q -O fc.east.new "https://api.solcast.com.au/rooftop_sites/${EASTSITE}/forecasts?format=json&api_key=${APIKEY}"

Mache ich hier etwas falsch?

Grüße,
Guido.

DS_Starter

Hallo Guido,

die Definition sieht erstmal völlig ok. aus.
Bei mir kann ich das Problem noch nicht bestätigen.
Setze dir doch bitte mal debug=1 im device.

Ich werde bei mir gleich mal ein völlig neues device definieren, vllt. fällt mir da etwas auf.

PS: FHEM aktuell ?  Modul CTZ !

LG
ESXi@NUC+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

DS_Starter

Habe bei mir gerade ein nagelneues device definiert. Ging problemlos durch und gibt auch keine Hänger.
ESXi@NUC+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

SparcWolf

Ok, das ist schon mal gut, wenn die Definition passt.

Habe nochmal <update all> ausgeführt.
CTZ hat die Version <0.0.4>

Ich sehe im Log manchmal:
2022.09.18 13:48:05 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/76_SolarForecast.pm line 2686.

Komisch - Mit Debug=1 scheint es zu laufen.

Die Prognosen für morgen liegen weit auseinander.
DWD: 22675 Wh
SC:    34259 Wh

VG,
  Guido.

kaizo

Hallo,

habe auch auf Solcast umgestellt, dabei festgestellt dass der Solarforecast m.M.n. nicht die Summen korrekt berechnet.
Wenn ich die Daten für morgen manuell summiere dann komme ich auf rd. 17kW, in Solarforecast wird unter Tomorrow_PVforecast rd 12kW angezeigt.
Auch im Header wird rd. 12kW angezeigt.

Auch die Solcast API gibt 17kW aus.

SolCast heute: 3.31655 kWh morgen: 17.2572 kWh

Solarforecast: Tomorrow_PVforecast  12373 Wh


LG
FHEM 6.x  auf i3
1x Maplecun FS20, HM, 1x CUL f. WMbus
1x Arduino Nano für Lacrosse, 1x für Empfang WH1080,
1x Arduino Uno+Ethernet-Shield & Firmata für 1Wire
1x Raspberry Pi für Einbindung Junkers-Heizgerät mit HT3-Schnittstelle, div. Sonoff+EspEasy+Tasmota über MQTT

DS_Starter

Zitat
PERL WARNING: Use of uninitialized value in split
Hab ich auch schon bemerkt. Fixe ich in der nächsten V (vermutlich heute noch).

Zitat
Komisch - Mit Debug=1 scheint es zu laufen.
Das ist nur eine Logausgabe, sonst steckt da nichts dahinter.

Zitat
Die Prognosen für morgen liegen weit auseinander.
Ich war anfangs auch recht enttäuscht. Aber inzwischen sieht es doch sehr gut aus. Heute z.B. im Screenshoot.
Ich habe bei mir probehalber mit Autokorrektur laufen.
Die API ändert ihre Prognose recht schnell und deutlich je nachdem wie sich die Witterungslage entwickelt. DWD ist da viel träger.
Die von der API gelieferten Daten siehst du mit "get ... solCastData".
Es kann also sein dass morgen die API ihre Vorhersage komplett umgekrempelt hat.

Wir müssen das beobachten und Erfahrungen sammeln.

@kaizo,  wenn du debug=1 einschaltest siehst du die von der API gelieferten Daten und auch die Summation für den Stundenwert. Solltest du dort ein Fehler sehen hebe gern mal den Finger.

LG
ESXi@NUC+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

DS_Starter

Hallo zusammen,

ich habe soeben die V 0.68.2 ins contrib geladen.
Neben ein paar Fixes gibt es das neue Attribut optimizeSolCastAPIreqInterval um die API-Abruf Intervalloptimierung einzuschalten.
Der Standard ist einmal pro Stunde.

optimizeSolCastAPIreqInterval
(nur bei Verwendung der SolCast API)

Das default Abrufintervall der SolCast API beträgt fest 1 Stunde. Ist dieses Attribut gesetzt erfolgt ein dynamische Anpassung des Intervalls mit dem Ziel die maximal möglichen Abrufe innerhalb von Sonnenauf- und untergang auszunutzen.
(default: 0)

LG,
Heiko
ESXi@NUC+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

giulup

Ich hab jetzt alles probiert was mir einfällt aber ich komme nicht weiter. Wie bekomme ich das neue Reading Today_MaxPVforecastTime in ein nutzbares format für ein at?

DS_Starter

Was heißt nutzbar für dich ?  Ein Unix Timestamp oder etwas anderes ?
ESXi@NUC+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

giulup

Ich muss zugeben, dass ich relativ unwissend bin wenn es um tieferes programmieren geht als ein einfaches und vielleicht  ein wenig längeres define.

Ich hatte vor das Reading jeden tag in ein "at" zu übernehmen und damit die Wärmepumpe freizuschalten.

DS_Starter

Verstehe.
Naja man müßte den Zeitstring im Reading Today_MaxPVforecastTime nehmen, in einen UNix Timstamp umwandeln und mit dem aktuellen Timestamp vergleichen. Daraus kann man dann eine Einschaltbedingung ableiten wenn der aktuelle Timestamp größer als Today_MaxPVforecastTime ist und kleiner als x.

Aber das bedeutet immer etwas Codingaufwand.
Einfacher wäre wahscheinlich ein einfacher Trigger wie bei powerTrigger wenn Today_MaxPVforecastTime  erreicht wurde.

Oder hast du eine andere Idee was dir helfen würde ?
ESXi@NUC+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

giulup

Der erste weg wäre mir definitiv zu kompliziert den selbst umsetzen zu können. Das mit dem Powertrigger klingt einfacher aber wüsste ich jetzt nicht wie ich das umsetzen sollte. Ich dachte ich ziehe mir die Uhrzeit aus dem Reading und schalte um diese Uhrzeit einfach ein. Aber ich schaue Mal ob ich aus dem Hinweis mit der Unix timestamp was hinbekomme