Photovoltaik Eigenverbrauch,Bilanz,Prognose (Kostal Plenticore; KSEM; BYD HV)

Begonnen von ch.eick, 07 Oktober 2020, 16:09:12

Vorheriges Thema - Nächstes Thema

ch.eick

Moin Kaiman.

Zitat von: trupf am 17 Juli 2022, 08:11:29
Heute morgen hat er wieder mit voller Leistung den Speicher geladen - ich bin dann auf MaxSOC 50% gegangen,
damit hat das Laden aufgehört und dann habe ich die MaxSOC -Kontrolle noch auf "läuft" gestellt (war aktiviert, aber warum lief sie dan nicht??),
danach wieder auf MaxSOc 100% und jetzt schein er erst mal nicht zu laden.
Warum aber lädt er morgens schon mit voller Leistung wenn das steht nicht von 8:30 Uhr und dann nur mit 200W?
Es kann sein, dass Dein Speicher mit weniger als 3*MinSOC = 15% aus der Nacht gekommen ist.
Der Lade SOC von gestern war 100% und wurde für heute auch wieder mit 100% geplant.
Da müssen wir uns mal die Speicher Größe und Deinen Nachtverbrauch anschauen. Eventuell brauchst Du ja keine MaxSOC Begrenzung ,
wenn Dein Speicher immer schön über Nacht entladen wird. Dann wäre Dein Speicher optimal auf Deinen Verbrauch geplant worden. Meinen habe ich
wegen der Wärmepumpe im Herbst/Winter etwas größer gewählt und auch damit er nach einigen Jahren auch noch genug Kapazietät für meinen Verbrauch hat.
Zitat
Und Warum wird mir in mysql Solar_Calculation_fc0_day: 41656 angezeigt, aber in der Prognose für den Tag in FHEM nur 38kWh? Die Differenz würde ich gern verstehen, was passiert mit den übrigen 3 kWh?
Im WR_1 stateFormat ist mir etwas vom Test rein gerutscht :-( Da hatte ich mir die Tagesleistung mal um 10% in der Anzeige geändert.
Bitte nimm das "*0.9" raus. Im Wiki habe ich es auch gerade korrigiert.

my $Solar_Calculation_fc0_4h   = sprintf("%d kWh",round(ReadingsVal($name,"Solar_Calculation_fc0_4h",0)/1000 ,0));;\
my $Solar_Calculation_fc0_day  = sprintf("%d kWh",round(ReadingsVal($name,"Solar_Calculation_fc0_day",0)/1000 ,0));;\
my $Solar_Calculation_fc0_rest = sprintf("%d kWh",round(ReadingsVal($name,"Solar_Calculation_fc0_rest",0)/1000 ,0));;\



1) bitte stell die Trigger Steuerung zuerst mal wieder auf den Default, da Du die nicht verwendest:
       - entladen
       - none

2) Im uiTable fehlt in der folgenden Zeile die Anzeige des MinSOC am Morgen

|"MaxSOC Limit<dd>fc1_Limit / Minimum SOC Zeit / gestern / geplant</dd>" |
FUNC_Status([WR_1:Solar_Calculation_fc1_day],[$SELF:SpeicherMaxSOC_fc1_Limit],"red","<",0,0,([$SELF:SpeicherMaxSOC_fc1_Limit]-1),"green",">="). widget([$SELF:SpeicherMaxSOC_fc1_Limit],"selectnumbers,2000,1000,40000,0,lin") | ([$SELF:SpeicherMaxSOC_MinSOC_Time] eq "gefunden")?(POSIX::strftime("%H:%M",::localtime(::time_str2num(::ReadingsTimestamp("$SELF","SpeicherMaxSOC_MinSOC_MinSOC",""))))." ".[$SELF:SpeicherMaxSOC_MinSOC_MinSOC]." %"):"wartet" |
"<div style='border-width:2px;border-style:solid;border-color:gray;position:relative;width:90px;height:20px;background:linear-gradient( to right, red 0px,yellow 30px,green 50px);'>".STY(" ",FUNC_batt([$SELF:SpeicherMaxSOC_DayBefore])).STY("gestern","font-size:12px;position:absolute;top:3px;left:25px")."</div>".widget([$SELF:SpeicherMaxSOC_DayBefore],"selectnumbers,5,1,100,0,lin")."%" |
"<div style='border-width:2px;border-style:solid;border-color:gray;position:relative;width:90px;height:20px;background:linear-gradient( to right, red 0px,yellow 30px,green 50px);'>".STY(" ",FUNC_batt([$SELF:SpeicherMaxSOC_Actual])).STY("geplant","font-size:12px;position:absolute;top:3px;left:25px")."</div>".widget([$SELF:SpeicherMaxSOC_Actual],"selectnumbers,5,1,100,0,lin")."%"


3) Das Mittagshoch von 11:00 - 14:00 Uhr wurde nun jetzt ja bereits erkannt.

4) Leider fehlt in Deinem Diagramm die Darstellung von WR_1 Actual_Battery_charge_usable_P , das ist bei mir in gelb mit drin. Damit kannst Du den Ladezustand des Speichers in kW sehen.

5) Die Schalter "aktiviert" setzt man selber, damit man MaxSOC oder das Mittagshoch aktivieren kann. Die Schalter "läuft" sollten dann automatisch gesetzt werden und
     dienen ansonsten zum Testen, oder um eine manuelle Situation hervorzurufen.

Bitte schick mit mal Dein WR_1_Speicher_ExternControl als PN im List und als RAW.
Dazu dann auch noch die gefilterten Log Meldungen, aber bitte ohne alle anderen Device Meldungen.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

trupf

Was überhaupt nicht geht bei mir ist, den WR mit einer festel Leistung zu laden bzw. die Ladeleistung auf ein Max zu begrenzen. Entweder er lädt alles rein was geht oder nichts. Die 200 Watt am Morgen werden genauso ignoriert wie eine Ladeleistung, die ich für das Mittagshoch einstelle (aktuell habe ich 1200 Watt eingestellt, geladen wird aber mit 2800W). Damit wird der Speicher aber zu schnell voll und ich laufe späöter dann dennoch in die 70%-Begrenzung.

Was der Installateur bei mir nicht angeschlossen hat, ist das RS485-Kabel zwischen Batterie und WR - kann es daran liegen?

ch.eick

Zitat von: trupf am 17 Juli 2022, 11:58:35
Was überhaupt nicht geht bei mir ist, den WR mit einer festel Leistung zu laden bzw. die Ladeleistung auf ein Max zu begrenzen. Entweder er lädt alles rein was geht oder nichts. Die 200 Watt am Morgen werden genauso ignoriert wie eine Ladeleistung, die ich für das Mittagshoch einstelle (aktuell habe ich 1200 Watt eingestellt, geladen wird aber mit 2800W). Damit wird der Speicher aber zu schnell voll und ich laufe späöter dann dennoch in die 70%-Begrenzung.

Was der Installateur bei mir nicht angeschlossen hat, ist das RS485-Kabel zwischen Batterie und WR - kann es daran liegen?
Haaa ( <<< Ausruf des Entsetzens )

Das ist der riesen Fehler in Deinem System. Für die Speichersteuerung des Plenticore ist die rs485 Verbindung pflicht, ohne das kann der Plenticore nicht steuern und Du solltest sogar im WR eine Fehlermeldung im Ereignislog haben.
Wenn Du technisch begabt bist könntest Du das natürlich auch selber machen, ansonsten steht der Installateur nocgh in der Verpflichtung.
Die LAN Verbindungen sind ein nice to have, aber rs485 ist ein muss.

Somit machen wir hier erst weiter, wenn das angeschlossen ist :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

trupf

Zitat von: ch.eick am 17 Juli 2022, 09:58:23
Es kann sein, dass Dein Speicher mit weniger als 3*MinSOC = 15% aus der Nacht gekommen ist.
Der Lade SOC von gestern war 100% und wurde für heute auch wieder mit 100% geplant.
Er ist mit fast 40% aus der Nacht gekommen.

Zitat von: ch.eick am 17 Juli 2022, 09:58:23
Im WR_1 stateFormat ist mir etwas vom Test rein gerutscht :-( Da hatte ich mir die Tagesleistung mal um 10% in der Anzeige geändert.
Bitte nimm das "*0.9" raus. Im Wiki habe ich es auch gerade korrigiert.
OK, ist erledigt.

Zitat von: ch.eick am 17 Juli 2022, 09:58:23
1) bitte stell die Trigger Steuerung zuerst mal wieder auf den Default, da Du die nicht verwendest:
       - entladen
       - none
2) Im uiTable fehlt in der folgenden Zeile die Anzeige des MinSOC am Morgen
Auch erledigt

Zitat von: ch.eick am 17 Juli 2022, 09:58:23
3) Das Mittagshoch von 11:00 - 14:00 Uhr wurde nun jetzt ja bereits erkannt.
Ja, nützt nur nichts, wenn der Speicher bis 11:00 Uhr schon voll geladen ist.

Zitat von: ch.eick am 17 Juli 2022, 09:58:23
4) Leider fehlt in Deinem Diagramm die Darstellung von WR_1 Actual_Battery_charge_usable_P , das ist bei mir in gelb mit drin. Damit kannst Du den Ladezustand des Speichers in kW sehen.
In der Config aus dem WIKI ist das mit WR_1 Actual_battery_charge_usable_P (beachte das kleine "b" bei Battery) hinterlegt, daher hat es nicht fuinktioniert, habe ich korrigiert.

Zitat von: ch.eick am 17 Juli 2022, 09:58:23
5) Die Schalter "aktiviert" setzt man selber, damit man MaxSOC oder das Mittagshoch aktivieren kann. Die Schalter "läuft" sollten dann automatisch gesetzt werden und
     dienen ansonsten zum Testen, oder um eine manuelle Situation hervorzurufen.
Das ist ja das was komisch war, aktiviert war gesetzt, aber läuft hat sich nicht automatisch gesetzt.

Zitat von: ch.eick am 17 Juli 2022, 12:12:36
Das ist der riesen Fehler in Deinem System. Für die Speichersteuerung des Plenticore ist die rs485 Verbindung pflicht, ohne das kann der Plenticore nicht steuern und Du solltest sogar im WR eine Fehlermeldung im Ereignislog haben.
Da habe ich wohl nicht ganz richtig geschaut, es ist zwar ein Kabel nicht angeschlossen, aber das RS485 ist verbunden. Im WR gibt es zwar eine Fehlermeldung zur Kommunikation, aber die ist vom Tag, als das Ganze angeschlossen worden ist, danach kam keine mehr. Daher gehe ich jetzt davon aus, dass die Verbindung OK ist.
Die Begrenzung auf eine fixe Ladeleistung scheint aber dennoch nicht zu funktionieren. Kann das noch an der Software des Plenticore liegen? Ich habe in einem anderen Forum gesehen, dass sich Nutzer bei Kostal beschwert haben, da es zumindest in früheren Firmwareversionen diese Möglichkeit die Ladeleistung zu begrenzen nicht gab - weißt Du ob Kostal das inzwischen behoben hat? Ich habe UI version 01.23.07734, MC version 01.70, IOC version 01.70, keine Ahnung ob das die aktuellen Versionen sind, aber automatische Updates sind in jedem Fall aktiviert.

Die anderen Daten schicke ich per PN.


ch.eick

Zitat von: trupf am 17 Juli 2022, 14:38:37
Ja, nützt nur nichts, wenn der Speicher bis 11:00 Uhr schon voll geladen ist.
Zuerst muss die Kommunikation gesichert werden.

Zitat
In der Config aus dem WIKI ist das mit WR_1 Actual_battery_charge_usable_P (beachte das kleine "b" bei Battery) hinterlegt, daher hat es nicht fuinktioniert, habe ich korrigiert.
Okay, habe ich im Wiki auch geändert, das haben wohl noch nicht so viele nachgebaut.

Zitat
Das ist ja das was komisch war, aktiviert war gesetzt, aber läuft hat sich nicht automatisch gesetzt.

Zitat
Da habe ich wohl nicht ganz richtig geschaut, es ist zwar ein Kabel nicht angeschlossen, aber das RS485 ist verbunden. Im WR gibt es zwar eine Fehlermeldung zur Kommunikation, aber die ist vom Tag, als das Ganze angeschlossen worden ist, danach kam keine mehr. Daher gehe ich jetzt davon aus, dass die Verbindung OK ist.
Die Begrenzung auf eine fixe Ladeleistung scheint aber dennoch nicht zu funktionieren. Kann das noch an der Software des Plenticore liegen? Ich habe in einem anderen Forum gesehen, dass sich Nutzer bei Kostal beschwert haben, da es zumindest in früheren Firmwareversionen diese Möglichkeit die Ladeleistung zu begrenzen nicht gab - weißt Du ob Kostal das inzwischen behoben hat? Ich habe UI version 01.23.07734, MC version 01.70, IOC version 01.70, keine Ahnung ob das die aktuellen Versionen sind, aber automatische Updates sind in jedem Fall aktiviert.
Ich habe noch diese Version im Einsatz

UI-Version 01.21.06586
MC-Version 01.60
IOC-Version 01.60


Ich schau mir dann mal das Log an, dass Du schickst.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Zitat von: trupf am 17 Juli 2022, 14:38:37
Ja, nützt nur nichts, wenn der Speicher bis 11:00 Uhr schon voll geladen ist.
Hallo Tobias,
nach einem Blick ins Log erklärt sich, warum sofort geladen wurde.

2022.07.17 06:34:01 3: WR_1_Speicher_1_ExternControl cmd_7  : SpeicherMaxSOC_DayBefore wurde um 24 erhöht
2022.07.17 06:34:01 3: WR_1_Speicher_1_ExternControl cmd_7  : SpeicherMaxSOC_Actual wird nicht begrenzt, da die Prognose für morgen zu schlecht ist
2022.07.17 06:34:01 3: WR_1_Speicher_1_ExternControl cmd_7  : Batterie SpeicherMiddayControlRunning vorbereitet
2022.07.17 06:34:01 3: WR_1_Speicher_1_ExternControl cmd_7  : Batterie Solar_middayhigh_fc0_start 11:00 gesetzt
2022.07.17 06:34:01 3: WR_1_Speicher_1_ExternControl cmd_7  : Batterie Solar_middayhigh_fc0_stop  14:00 gesetzt


Das hier ist die entscheidende Meldung :-)

2022.07.17 06:34:01 3: WR_1_Speicher_1_ExternControl cmd_7  : SpeicherMaxSOC_Actual wird nicht begrenzt, da die Prognose für morgen zu schlecht ist

Aber trotzdem sollte es natürlich kontrolliert sein.

Auch das hier kommt mir komisch vor. Dadurch kann natürlich kein Uhrzeit Vergleich gemacht werden.

2022.07.17 07:41:43 3: WR_1_Speicher_1_ExternControl: eval: 'error Undefined subroutine &main::localtime called at (eval 694154) line 1.

in expression:  (::ReadingValDoIf($hash,'WR_1_Speicher_1_ExternControl','SpeicherMaxSOC_MinSOC_Time') eq "gefunden")?(POSIX::strftime("%H:%M",::localtime(::time_str2num(::ReadingsTimestamp("WR_1_Speicher_1_ExternControl","SpeicherMaxSOC_MinSOC_MinSOC",""))))." ".::ReadingValDoIf($hash,'WR_1_Speicher_1_ExternControl','SpeicherMaxSOC_MinSOC_MinSOC')." %"):"wartet" ' error: Bad name after WR_1_Speicher_1_ExternControl' at (eval 837471) line 2.

Da scheint etwas im DOIF mit dem Aufruf der Zeit Funktionen aus dem main Addressspace nicht zu stimmen. Hier mal meine DOIF Version.

FVERSION 98_DOIF.pm:0.260200/2022-05-03


Bitte beobachte das nochmal genauer und schau Dir auch die Log Meldungen an.
Insbesondere fehlen noch die Meldungen der Prognose, die dann so aussehen sollten

2022.07.18 06:11:16.003 3: WR_1_Speicher_1_ExternControl cmd_7  : SpeicherMaxSOC_MinSOC_Time gefunden 22 %
2022.07.18 06:11:16.003 3: WR_1_Speicher_1_ExternControl cmd_7  : SpeicherMaxSOC_DayBefore 81 %
2022.07.18 06:11:16.004 3: WR_1_Speicher_1_ExternControl cmd_7  : Leistung Prognose 131633 wh > Schwellwert 30000 wh
2022.07.18 06:11:16.004 3: WR_1_Speicher_1_ExternControl cmd_7  : Speicherladung aktuell 22 % > Minimum 15 %
2022.07.18 06:11:16.004 3: WR_1_Speicher_1_ExternControl cmd_7  : SpeicherMaxSOC_DayBefore 81 % gesichert
2022.07.18 06:11:16.004 3: WR_1_Speicher_1_ExternControl cmd_7  : SpeicherMaxSOC_Actual 81 % geplant
2022.07.18 06:11:16.004 3: WR_1_Speicher_1_ExternControl cmd_7  : Batterie SpeicherMiddayControlRunning vorbereitet
2022.07.18 06:11:16.005 3: WR_1_Speicher_1_ExternControl cmd_7  : Batterie Solar_middayhigh_fc0_start 11:00 gesetzt
2022.07.18 06:11:16.005 3: WR_1_Speicher_1_ExternControl cmd_7  : Batterie Solar_middayhigh_fc0_stop  16:00 gesetzt


VG
  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kaiman

Hi Chris,

Ich glaube du hast mich mit trupf verwechselt und meine Frage übersehen :)

ch.eick

Zitat von: kaiman am 18 Juli 2022, 17:59:11
Hi Chris,

Ich glaube du hast mich mit trupf verwechselt und meine Frage übersehen :)

Zitat von: kaiman am 16 Juli 2022, 20:32:57
Hi Chris

Danke für die Info.
Ich komm heute nicht mehr dazu die Änderung durchzuführen.  Wenn ich das einen oder zwei Tage später mache, muss ich etwas beachten oder soll ich den Init wert dann einfach für den Tag setzen, wenn ich es anpasse?

Stehe gerade etwas auf der Leitung.

Gruß
Kaiman
der Tages Init Wert setzt sich jeden Tag selber neu. Das wäre nur zu machen. wenn es sofort wieder korrekt sein soll.
Leider wären dann natürlich jetzt die Tages Werte in der Datenbank durcheinander.
Um das wieder hin zu bekommen müsstest Du ausrechnen, um wieviel sie falsch berechnet wurden und das dann entsprechend überschreiben.

Das gilt natürlich für die Monats Werte im übertragenen Sinne.

Sorry, hatte ich wirklich überlesen.
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

trupf

Hi,

ich poste noch mal das Ladediagramm von heute. Insgeasamt sieht es schon deutlich besser aus, die meisten Einstellungen scheinen funktioniert zu haben:
- er hat den Speicher bis 8:30 nicht geladen
- ab 8:30 mit 400W geladen, wie eingestellt
- dann hat er als SpeicherMdiday_MaxSOC erreicht war aufgehört zu laden (ich denke das soll so sein)
- geplant war Laden über das Mittagshoch ab 11:00, aber im Log habe ich mehrere meldungen gefunden mit
    2022.07.18 11:01:51 3: WR_1_Speicher_1_ExternControl cmd_6  : SpeicherMiddayControlActive laden wegen MaxSoc von 11:00 auf 12:00 Uhr verschoben
  um 12:00 Uhr hjat er dan angefangen den Speicher zu laden

==> der letzte Punkt macht für mich aber keinen Sinn, ich will ja gerade dass er das Mittagshoch nutzt zum Laden und nich da das Laden verschiebt. Dann lieber mit weniger Leistung laden, man sieht im Diagramm gut, dass er durch das Verschieben ab kurz nach 11:00 Uhr in die 70%-Begrenzung gegangen ist. Wie kann ich dieses Verschieben verhindern?

Aufgefallen ist mir noch, dass nach einem Neustart von FHEM alle Einstellungen im ExternControl verloren gegangen sind - kann ich das irgendwie verhindern?

Und aktuell bekomme ich einen Haufen Fehlermeldungen in der Art:
2022.07.18 21:40:01 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 18471) line 1.
2022.07.18 21:40:01 3: eval: WR_1_Speicher_1_ExternControl: warning in condition c10
2022.07.18 21:40:01 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 18476) line 1.
2022.07.18 21:40:01 3: eval: WR_1_Speicher_1_ExternControl: warning in condition c10
2022.07.18 21:40:02 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 18492) line 1.
2022.07.18 21:40:02 3: eval: WR_1_Speicher_1_ExternControl: warning in condition c10
2022.07.18 21:40:03 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 18517) line 1.
2022.07.18 21:40:03 3: eval: WR_1_Speicher_1_ExternControl: warning in condition c10

ch.eick

Zitat von: trupf am 18 Juli 2022, 21:22:30
Hi,

ich poste noch mal das Ladediagramm von heute. Insgeasamt sieht es schon deutlich besser aus, die meisten Einstellungen scheinen funktioniert zu haben:
- er hat den Speicher bis 8:30 nicht geladen
- ab 8:30 mit 400W geladen, wie eingestellt
- dann hat er als SpeicherMdiday_MaxSOC erreicht war aufgehört zu laden (ich denke das soll so sein)
- geplant war Laden über das Mittagshoch ab 11:00, aber im Log habe ich mehrere meldungen gefunden mit
    2022.07.18 11:01:51 3: WR_1_Speicher_1_ExternControl cmd_6  : SpeicherMiddayControlActive laden wegen MaxSoc von 11:00 auf 12:00 Uhr verschoben
  um 12:00 Uhr hjat er dan angefangen den Speicher zu laden

==> der letzte Punkt macht für mich aber keinen Sinn, ich will ja gerade dass er das Mittagshoch nutzt zum Laden und nich da das Laden verschiebt. Dann lieber mit weniger Leistung laden, man sieht im Diagramm gut, dass er durch das Verschieben ab kurz nach 11:00 Uhr in die 70%-Begrenzung gegangen ist. Wie kann ich dieses Verschieben verhindern?
Eventuell nimmst Du Inverter_Max_Power etwas niediger, dann beginnt das Mittagshoch früher. Du solltest es bei Deiner Anlage versuchen auf 10:00 Uhr zu bekommen,
dann kommt eventuell die MaxSOC Verschiebung noch dazu und Du landest bei 11:00 Uhr.
Bei mir ist das Mittagshoch erst gegen 13 oder 13:30 Uhr, da ich eine Ost/Süd/West Anlage mit kleinem Süd Anteil habe.
Wenn es dann trotzdem noch nicht passen sollte kann ich ja den Code etwas ändern.

Anstelle der dynamischen Ladeleistung könntest Du auch eine Leistung mit Power_Mittags (steht jetzt auf 0) vorgeben.

Die 400W könntest Du noch verringern, dann lädt er etwas länger, bis der MaxSOC erreicht wird.

Die Verschiebung wegen MaxSOC Begrenzung macht normalerweise Sinn, da dadurch weniger Platz im Speicher ist und somit die Mittagszeit etwas verkürzt wird.

Die Speicher Leistung sieht als Linie ohne Stufen besser aus :-)

Zitat
Aufgefallen ist mir noch, dass nach einem Neustart von FHEM alle Einstellungen im ExternControl verloren gegangen sind - kann ich das irgendwie verhindern?
Da solltest Du nach Veränderungen mal ein Save machen. Dadurch werden sie mit dem setstate wieder hergestellt. Die berechneten Werte, oder das aus dem Forecast wird ja eh alle Stunde neu geschrieben.

Ist das um 14:00 Uhr eine Wärmepumpe? Die wäre um 12:00 Uhr auch gut zu gebrauchen.

Um jetzt etwas in die Details zu gehen wären die Log Meldungen ganz gut, aber am besten dann als .txt Datei anhängen.

VG
     Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

trupf

Nein 14:00 Uhr ist keine Wärmepumpe, da hat meine Frau wohl was gekocht...Außerdem Wärempumpe bei den Temperaturen? Dann eher eine Klimaanlage, aber die haben wir auch nicht.

kaiman

Hi,
Ok soweit verstanden.
Wenn ich die Werte jetzt bei Monat nicht korrigiere, würde der nächste Monat wieder korrekt berechnet und angezeigt, oder?

Hätten die falschen Werte in der Datenbank Auswirkungen auf die Quartalsberechnungen und die Jahreswerte die angezeigt werden?

Gruß
Kaiman

Zitat von: ch.eick am 18 Juli 2022, 19:44:00
der Tages Init Wert setzt sich jeden Tag selber neu. Das wäre nur zu machen. wenn es sofort wieder korrekt sein soll.
Leider wären dann natürlich jetzt die Tages Werte in der Datenbank durcheinander.
Um das wieder hin zu bekommen müsstest Du ausrechnen, um wieviel sie falsch berechnet wurden und das dann entsprechend überschreiben.

Das gilt natürlich für die Monats Werte im übertragenen Sinne.

Sorry, hatte ich wirklich überlesen.
    Christian

ch.eick

Zitat von: kaiman am 19 Juli 2022, 07:18:07
Hi,
Ok soweit verstanden.
Wenn ich die Werte jetzt bei Monat nicht korrigiere, würde der nächste Monat wieder korrekt berechnet und angezeigt, oder?

Hätten die falschen Werte in der Datenbank Auswirkungen auf die Quartalsberechnungen und die Jahreswerte die angezeigt werden?

Gruß
Kaiman
Hallo Kaiman,
den Monatswert würde ich sofort korrigieren, wenn er überhaupt falsch sein sollte. Meistens ist es eh nur der Tageswert.
Betroffen sind folgende  userreadings

SW_Statistic_EnergyHomeFeedInGrid_Day:SW_Statistic_Yield_Day.* { (ReadingsVal("WR_0_KSEM","Active_energy-",0) - ReadingsVal("$NAME","SW_Meter_init_FeedInGrid_Day",0)) * 1000 },
SW_Statistic_EnergyHomeFeedInGrid_Month:SW_Statistic_Yield_Month.* { (ReadingsVal("WR_0_KSEM","Active_energy-",0) - ReadingsVal("$NAME","SW_Meter_init_FeedInGrid_Month",0)) * 1000 },
SW_Statistic_EnergyHomeFeedInGrid_Year:SW_Statistic_Yield_Year.* { (ReadingsVal("WR_0_KSEM","Active_energy-",0) - ReadingsVal("$NAME","SW_Meter_init_FeedInGrid_Year",0)) * 1000 },

SW_Statistic_EnergyHomeGrid_Day:SW_Statistic_Yield_Day.* { (ReadingsVal("WR_0_KSEM","Active_energy+",0) - ReadingsVal("$NAME","SW_Meter_init_Grid_Day",0)) * 1000 },
SW_Statistic_EnergyHomeGrid_Month:SW_Statistic_Yield_Month.* { (ReadingsVal("WR_0_KSEM","Active_energy+",0) - ReadingsVal("$NAME","SW_Meter_init_Grid_Month",0)) * 1000 },
SW_Statistic_EnergyHomeGrid_Year:SW_Statistic_Yield_Year.* { (ReadingsVal("WR_0_KSEM","Active_energy+",0) - ReadingsVal("$NAME","SW_Meter_init_Grid_Year",0)) * 1000 },

Im Quartalsreport werden jedoch die "SW_Statistic_%Year" Werte verwendet.

reading SW_Statistic_%Year,Statistic_EnergyHomeBat_Year EXCLUDE=%Autarky%,%Rate%,%NoBat%


Da ich fast täglich auf meine Diagramme schaue sehe ich das Problem meist noch am selben Tag. Und den Absturz von FHEM sollte man auch recht schnell merken, was bei mir bisher ein mal passiert ist und da sind die Rollos morgens als Folge nicht oben gewesen.In dem Zeitraum, wo dann alles unter war fehlen ja zusätzlich auch die Messwerte, somit kann man nichts korrigieren.
Eine Korrektur wäre aber zwischen dem wieder hochfahren und dem Zeitpunkt des korrigierens der Init Werte möglich.
Dazu vergleicht man den falschen Wert mit dem letzten korrekten Init Wert in der Datenbank. Daraus sollte sich eine Differenz ergeben, um die die *Grid readings zu hoch/niedrig sind.
Mit einem MySQL UPDATE könnte man dann die fehlerhaften Werte, die ja mit einem Zeitraum bestimmbar sind korrigieren.

Als Vorbereitung für eine Korrektur:
- falsche INIT Werte notieren.
- letzte richtige Werte aus deer Datenbank ermitteln
- TIMESTAMP für den Zeitraum notieren (Anfang und Ende)

VG
     Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kaiman

Hi,
Danke soweit verstanden.
Ich bin leider jetzt erst mal unterwegs und hab nur über mein Handy Zugriff. Mitte nächster Woche zurück. Leider betrifft es die Monatswerte.

Ich werd dann mal schauen, wie ist die gerade ziehen kann, bis dahin muss ich mit den fehlerhaften leben.
Wenn die Diagramme nicht passen ist nicht so wild, wichtiger wäre mir die numerische Übersicht. Wenn die Werte passen bin ich zufrieden.

trupf

Anbei wieder 3 Screenshots. Was mir noch nicht gefällt sind die folgenden Punkte:

1. Die Ladebegrenzung mit SpeicherMidday_MaxChargePowerAbs_midday wird nicht beachtet. Genaugenommen hat wieder das Verschieben des Ladestarts wegen MaxSOC auf 12:00 Uhr zugeschlagen, wobei ich die Zeit im ExternControl aber auf 11.00 Uhr geändert habe. Dennoch soll er die max. Ladeleistung aber beachten! Gibt es eine Möglichkei die Variabeln sich direkt durch Eingbe eines Befehls in FHEM anzeigen zu lassen (also z.B. den aktuellen Wert von $MaxChargePowerAbs_midday oder $SELF:Speicher_Midday_MaxChargePowerAbs_midday)?
2.Durch dieses schnelle Laden komme ich ab ca. 12:30 wieder in die 70%-Begrenzung...
3. Es wurde am Morgen ein MaxSOC von 95% berechnet (und am Mittag auch noch so angezeigt, 100% kam erst gegen Abend). Der MaxSOC wird aber nicht beachtet, er lädt trotzdem bis 100%
4. Wo die 83% MaxSOC von DayBefore herkommen ist mir auch unklar, die galten gestern nicht und heute auch nie. Warum wird der Wert überhaupt zum Abend hin noch mal verändert? Und bei DayBefore macht das doch noch weniger Sinn und führt nur zu Verwirrung?
5. ich habe noch einige Fehlermldungen im log (z.B. zu localtime) was muss ich tun um das zu lösen? Ein Hinweis dazu: alles mit WR2habe ich in FHEM disabled, ich hoffe das ist ok.

Ich schicke das Log per Mail.

Grüße,
Tobias