76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

stefanru

#1425
Hi,

habe mal wieder ein spezial Anliegen ;-)

Ich habe bemerkt das alle meine Zwischenzähler einen S0 Anschluss haben und lese diese nun mit ArduCounter aus.
Also habe ich meine Solarforecast Anzeige aufgepeppt mit all den neuen Werten.

Nun habe ich aber ein Problem. Ich habe einen Zwichenzähler für die Garage.
Dahinter habe ich aber noch einen Zähler für meine Ladestation fürs Auto.

Man könnte dies bei den Consumern Zweireihig darstellen, fände ich aber auch nicht so toll.
Oder könnte man angeben, dass der Wert des Autos nicht mitzählt für die Grafik, da er ja schon im Kellerzähler enthalten ist, aber trotzdem dargestellt wird?
Eventuell könnte man die 2 Symbole die dann zusammen gehören auch näher zusammen rücken in der Grafik?
Oder gibt es da schon was?

Gehen würde natürlich auch ein DummyDevice mit Dummy Readings bei dem ich von der Garage den Autoladestrom abziehe.
Wie würdet ihr das lösen?

Danke und Gruß,
Stefan

DS_Starter

Hallo zusammen,

die Änderungen für ein Multi Batteriesystem sind recht umfangreich.
Ich checke Teilanpassungen ein um schrittweise voranzukommen. Morgen früh ist wieder ein Update verfügbar:

 * im Attr ctrlStatisticReadings sind Anpassungen vorhanden: daysUntilBatteryCare -> daysUntilBatteryCare_01,
   todayBatIn -> todayBatIn_01, todayBatOut -> todayBatOut_01

Falls ihr diese Readings über ctrlStatisticReadings generieren lasst, müsst ihr das Attribut neu setzen.
Im Log gibt es sonst sinngemäß folgende Fehler:

2024.12.29 23:12:08.545 1: SolCast - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatIn' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.29 23:12:08.546 1: SolCast - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatOut' has no Parameter or default value set. Set the attribute again or inform Maintainer.

LG
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

Tomk

Zitat von: DS_Starter am 26 Dezember 2024, 09:38:32@Tom,
das kannst du mit dem upSoC regeln. Wenn du den Schlüssel z.B. auf 80 setzt, wird das Modul den Min SoC stark angelehnt a die Prognose bestimmen. Bei sehr wenig Erzeugungungsprognose, d.h. wenn der berechnete Min SoC sich oberhalb von upSoC bewegt, wird upSoC eingestellt. Landet die Berechnung unterhalb von upSoC (und werden weitere Bedingungen nicht verletzt) wird der berechnete SOC im Reading eingestellt. Werde ich im Wiki noch ergänzen.

Hallo Heiko, ich habe den up Soc auf 80%, dennoch bei wenig Prognose ist der berechnete OptimumTargetSoC auf 10%. Habe ich was falsch verstanden?

ctrlBatSocManagement
lowSoc=10 upSoC=80 maxSoC=99 careCycle=10

DS_Starter

Morgen Tom,

schalte bitte ctrlDebug=batteryManagement ein und poste die Ausgabe. Sieht etwa so aus:

...
2024.12.30 08:22:30.879 1: SolCast DEBUG> SoC Bat 01 Step1 - compare with SoC history -> preliminary new Target: 35 %
2024.12.30 08:22:30.880 1: SolCast DEBUG> SoC Bat 01 Step2 - basics -> docare: 0, care SoC: 35 %, E expect: 27547 Wh, need for care SoC: 9946 Wh
2024.12.30 08:22:30.880 1: SolCast DEBUG> SoC Bat 01 Step2 - calc care SoC -> use preliminary Target: 35 % (care SoC calculation & activation postponed to after 30.12.2024 14:43:00)
2024.12.30 08:22:30.880 1: SolCast DEBUG> SoC Bat 01 Step3 - basics -> cantarget: 3 %, newtarget: 3 %
2024.12.30 08:22:30.881 1: SolCast DEBUG> SoC Bat 01 Step3 - charging probability -> docare: 0, Target: 35 % (no change)
2024.12.30 08:22:30.881 1: SolCast DEBUG> SoC Bat 01 Step4 - basics -> docare: 0, lowSoc: 10 %, upSoc: 70 %
2024.12.30 08:22:30.881 1: SolCast DEBUG> SoC Bat 01 Step4 - observe low/up limits -> Target: 35 %
2024.12.30 08:22:30.881 1: SolCast DEBUG> SoC Bat 01 Step5 - rounding the SoC to steps of 5 % -> Target: 35 %
2024.12.30 08:22:30.882 1: SolCast DEBUG> SoC Bat 01 Step6 - force charging request: no (Battery is sufficiently charged)
...

LG
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

DS_Starter

@Stefan,

ich würde einen Dummy für deinen Case verwenden.

Grüße,
Heiko
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

TheTrumpeter

Zitat von: TheTrumpeter am 23 Dezember 2024, 10:15:31
Zitat von: DS_Starter am 22 Dezember 2024, 10:57:58Nach dem Download der Version aus dem contrib Restart nicht vergessen!
Ich hab's mal geladen und den neuen Schlüssel für 2 Verbraucher gesetzt. Aufgrund der schwachen PV-Prognose für die nächsten Tage wird's aber vermutlich ein paar Tage dauern, bis ich dazu was sagen kann.

Danke für die rasche und flexible Umsetzung.
Scheint erstmal nicht richtig zu funktionieren mit "surpmeth=Device:Reading", zumindest wird bei laufendem Verbraucher sofort unterbrochen, sobald kein PV-Überschuss vorhanden ist, obwohl der gleitende Mittelwert noch passt. Aber möglicherweise habe ich die Version gezogen, bevor Du später nochmal aktualisiert hast?
Oder muss ich bei Sonderzeichen im Reading-Namen "escapen"? Dzt. ist es so definiert:
surpmeth=SmartMeterRestAPI:pvoffset_mean_1min
Ich lade einfach mal die neueste Version und beobachte es nochmal.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

DS_Starter

#1431
Damit man zu dem Schalten der Verbraucher etwas sagen kann ->

ctrDebug=consumerSwitchingXX

einschalten. Dann sieht man mehr. Sind viele Ausgaben.

Edit: Man sieht auch am Wert des Readings consumerXX_ConsumptionRecommended, welches du mit dem Attr ctrlConsRecommendReadings einschalten kannst, ob der Consumer eingeschaltet werden sollte (1) oder nicht (0).

LG
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

Tomk

Zitat von: DS_Starter am 30 Dezember 2024, 08:25:03schalte bitte ctrlDebug=batteryManagement ein und poste die Ausgabe. Sieht etwa so aus:

Guter Hinweis - Ausgabe wie folgt:
2024.12.30 10:20:43 1: SolCast DEBUG> SoC calc Step1 - compare with SoC history -> preliminary new Target: 15 %
2024.12.30 10:20:43 1: SolCast DEBUG> SoC calc Step2 - calculate care SoC -> calculation & activation postponed to after 30.12.2024 15:04:00
2024.12.30 10:20:43 1: SolCast DEBUG> SoC calc Step3 - charging probability -> Target: 10 % (new target 15 % is activated after 30.12.2024 15:04:00)
2024.12.30 10:20:43 1: SolCast DEBUG> SoC calc Step4 - observe low/up limits -> Target: 10 % (activation of care SoC 15 % is postponed)
2024.12.30 10:20:43 1: SolCast DEBUG> SoC calc Step5 - rounding the SoC to steps of 5 -> Target: 10 %
2024.12.30 10:20:43 1: SolCast DEBUG> SoC calc Step6 - force charging request: no (Battery is sufficiently charged)
2024.12.30 10:20:43 1: SolCast DEBUG> Inverter 'Qcells' capacity: 0, Active power limit: 100 % -> Pmax limited: 0
2024.12.30 10:20:43 1: SolCast DEBUG> Summary active power limit of all Inverter (except feed 'grid'): 0
2024.12.30 10:20:43 1: SolCast DEBUG> Installed Battery capacity: 9000
2024.12.30 10:20:43 1: SolCast DEBUG> WARNING - The requirements for dynamic battery charge recommendation are not met. Exit.

Was sagt es mir?

DS_Starter

Mir sagt es zunächst, dass du nicht die aktuellste Version installiert hast. ;)
Kannst du das bitte machen und nochmal posten?
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

Tomk

Kein Problem, neuer Versuch mit aktuellster Version:
2024.12.30 10:40:38 1: SolCast DEBUG> SoC Bat 01 Step1 - compare with SoC history -> preliminary new Target: 15 %
2024.12.30 10:40:38 1: SolCast DEBUG> SoC Bat 01 Step2 - basics -> docare: 0, care SoC: 15 %, E expect: 6357 Wh, need for care SoC: 4590 Wh
2024.12.30 10:40:38 1: SolCast DEBUG> SoC Bat 01 Step2 - calc care SoC -> use preliminary Target: 15 % (care SoC calculation & activation postponed to after 30.12.2024 15:04:00)
2024.12.30 10:40:38 1: SolCast DEBUG> SoC Bat 01 Step3 - basics -> cantarget: 29 %, newtarget: 15 %
2024.12.30 10:40:38 1: SolCast DEBUG> SoC Bat 01 Step3 - charging probability -> docare: 0, Target: 10 % (new target 15 % is activated after 30.12.2024 15:04:00)
2024.12.30 10:40:38 1: SolCast DEBUG> SoC Bat 01 Step4 - basics -> docare: 0, lowSoc: 10 %, upSoc: 80 %
2024.12.30 10:40:38 1: SolCast DEBUG> SoC Bat 01 Step4 - observe low/up limits -> Target: 10 %
2024.12.30 10:40:38 1: SolCast DEBUG> SoC Bat 01 Step5 - rounding the SoC to steps of 5 % -> Target: 10 %
2024.12.30 10:40:38 1: SolCast DEBUG> SoC Bat 01 Step6 - force charging request: no (Battery is sufficiently charged)
2024.12.30 10:40:38 1: SolCast DEBUG> Inverter 'Qcells' capacity: 0, Active power limit: 100 % -> Pmax limited: 0
2024.12.30 10:40:38 1: SolCast DEBUG> Inverter '' capacity: 0, Active power limit: 100 % -> Pmax limited: 0
2024.12.30 10:40:38 1: SolCast DEBUG> Inverter '' capacity: 0, Active power limit: 100 % -> Pmax limited: 0
2024.12.30 10:40:38 1: SolCast DEBUG> Summary active power limit of all Inverter (except feed 'grid'): 0
2024.12.30 10:40:38 1: SolCast DEBUG> Installed Battery capacity: 9000
2024.12.30 10:40:38 1: SolCast DEBUG> WARNING - The requirements for dynamic battery charge recommendation are not met. Exit.[b][/b]

DS_Starter

#1435
Hallo Tom,

die erwartete PV Energie ist 6357 Wh und kalkuliert aktuell 4590 Wh um den maxSoC zu erreichen. Deswegen setzt das Modul den SoC so tief um dem Haus die optimale Energiemenge zuzuführen. Das SoC-Modul schaut sich immer den aktuellen und den kommenden Tag an und entscheidet dann bzgl. der Kalkulation entsprechend der höhren Erwartung an beiden Tagen.

Der SoC wird dynamisch anpepasst, z.Zt. 15% ab 15:04. Der Zeitpunkt ist so gewählt damit reale Veränderungen der Ladung über den Tag mit eingehen. Damit ist auch sichergestellt dass die Energie morgen maximal in die Batterie aufgenommen werden kann.

Wenn du eine ständige Mindestreserve in der Batterie belassen willst, kannst du lowSoc auf diese Prozentzahl setzen, darunter wird sie nicht entladen (außer bei Stromausfall).
Dann kann es aber sein, dass der freie Speicher nicht ausreicht um die PV-Energie maximal zu speichern sodass ein Teil des Überschusses eingespeist wird.

Was dir beser passt, kannst nur du entscheiden.

LG,
Heiko
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

Tomk

Danke für die Erklärung Heiko!
Wenn ich es richtig verstehe, wird der Target Soc so tief gesetzt damit die Batterie entladen werden kann, damit die überschüssige Pv Energie von der Batterie aufgenommen werden kann (6357 > 4590), richtig?

Aus meiner Sicht müsste aber neben den 4590Wh (Kapa bis 100% Soc) noch der Eigenverbrauch abgezogen werden (da bevor die Batterie lädt, das Haus versorgt wird). Im Anschluss könnte man dann den Target Soc berechnen also 100%-(das was nach eigenverbrauch übrig bleibt um die Batterie zu laden).

Oder denke ich falsch?

DS_Starter

#1437
ZitatWenn ich es richtig verstehe, wird der Target Soc so tief gesetzt damit die Batterie entladen werden kann, umso die überschüssige Pv Energie von der Batterie aufgenommen werden kann (6357 > 4590), richtig?
Ja, richtig.

ZitatAus meiner Sicht müsste aber neben den 4590Wh (Kapa bis 100% Soc) noch der Eigenverbrauch abgezogen werden (da bevor die Batterie lädt, das Haus versorgt wird). Im Anschluss könnte man dann den Target Soc berechnen also 100%-(das was nach eigenverbrauch übrig bleibt um die Batterie zu laden).

Oder denke ich falsch?
Das ist völlig richtig. Das wird auch gemacht, allerdings wird der prognostizierte Verbrauch bis zum kommenden Sonennuntergang angesetzt. Denn nach dem Sonnenuntergang wird tendenziell keine PV mehr in die Bat geladen.
Nun kann ich nur den Verbrauch bis zum kommenden Sonnenuntergang berücksichtigen, den Verbrauch zwischen dem nächsten Sonnenaufgang und dem nächsten Sonnenuntergang habe ich nicht zur Verfügung.
Das ist eine gewisse Unschärfe, aber vllt. gelingt mir auch das noch.  ;)

LG
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

DS_Starter

Hallo zusammen,

morgen früh wird es ein weiteres Update geben. Es ist ein weiterer Schritt auf dem Weg zum Multi Battery System.

Diese Update ist für den User unter Umständen mit Aktivitäten verbunden weil Readingnamen geändert wurden:

 * Current_BatCharge -> Current_BatCharge_XX
 * Current_PowerBatOut -> Current_PowerBatOut_XX
 * Current_PowerBatIn -> Current_PowerBatIn_XX
 * Today_HourXX_PPrealXX -> Today_HourXX_PPreal_XX
 * Current_PPXX -> Current_PP_XX
 * Battery_OptimumTargetSoC -> Battery_OptimumTargetSoC_XX
 * Battery_ChargeRequest -> Battery_ChargeRequest_XX
 * Battery_ChargeRecommended -> Battery_ChargeRecommended_XX
 * Today_HourXX_BatIn -> Today_HourXX_BatIn_XX
 * Today_HourXX_BatOut -> Today_HourXX_BatOut_XX

Falls ihr diese Readings in eigenen Skripten verwendet, denkt daran nach dem Update diese Programme anzupassen!

LG und einen guten Rutsch!,
Heiko
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

kask

ACHTUNG! ACHTUNG! Hiermit Informiere ich den Maintainer!
Die Module sagen aber das alles i.O. wäre.
Gerade das offizielle Update gezogen gehabt.

2024.12.31 09:03:20 1: ForecastSolarAPI - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatIn' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:20 1: ForecastSolarAPI - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatOut' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastOpenMeteoEnsemble - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatIn' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastOpenMeteoEnsemble - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatOut' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastOpenMeteoWorld - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatIn' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastOpenMeteoWorld - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatOut' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastDWD - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatIn' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastDWD - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatOut' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastVictronVRM - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatIn' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastVictronVRM - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatOut' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: Forecast - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatIn' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: Forecast - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatOut' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastOpenMeteo - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatIn' has no Parameter or default value set. Set the attribute again or inform Maintainer.
2024.12.31 09:03:21 1: ForecastOpenMeteo - ERROR in Application - attribute ctrlStatisticReadings KPI 'todayBatOut' has no Parameter or default value set. Set the attribute again or inform