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

Zitat von: killah78 am 21 Juni 2023, 11:47:10Hallo Christian,
ich spiele gerade mit der externen Batteriesteuerung herum.
Ich habe jetzt mal das Zwangsladen bzw Entladen des Speichers getestet. Mit dem Reading SpeicherDcPowerAbs. Bzw. sind da ja auch set Behle im WR_1 und auch im WR1_API.
Funktioniert auch wunderbar. Hätte aber gedacht, dass Battery_ExternControl_DcPowerAbs sich nur aus DC bedient. Allerdings zieht er auch aus dem Netz.
Das mit der Ladestärke ist ja in dem Fall Deine Entscheidung! Somit müsste man dann auch selber darauf achten. Zu Wartungszwecken kann man damit den Speicher auf MonSOC entleeren, oder auch aus dem Netz auf MaxSOC zwangsladen.

ZitatNun gut. Ich habe dann Battery_ExternControl_DcPowerAbs wieder auf 0 gesetzt, in der Hoffnung, dass jetzt wieder automatisch geregelt wird. Bleibt aber jetzt auf 0. Keine Entladung, keine Ladung mehr.
Muss da noch irgendwas gesetzt werden? Ich hatte das so verstanden, dass wenn das Signal nicht alle 60 Sekunden wiederholt wird, dass dann die Automatik wieder greift. Ist aber scheinbar nicht so.

Hast du da einen Tip?
Der Timer ist "Timeout ext. Batteriesteuerung \[s\]", was nicht unbedingt 60s sein muss. Da verwende ich z.B. 300s. Wann dann der Speicher wirklich mit der internen Steuerung eine Reaktion hat ist nicht sofort erkennbar und hängt auch von Deiner Einstellung ab. Es kann z.B. die "inteligente Speicher Steuerung" aktiviert sein und die arbeitet dann nach dem Kostal Algorythmus, wie auch immer der aussieht.

Es gibt im WR_1_Speicher_1_ExternControl mehrere Anwendungsvarianten:
  • Eine Leistung einstellen und das DC_Power_Abs manuell innerhalb der "Timeout ext. Batteriesteuerung \[s\]" auslösen
  • Die erste Variante über FHEM mittel selber vorgeben, also den Wert ändern und DC_Power_Abs kontinuierlich auslösen
  • Man kann auch einen Wert einstellen und dann den Button "An/Aus" verwenden, wodurch der Wert zyklisch gesendet wird

Dazu bitte auch mal ins Log schauen, denn dort sollten die Limitierungen ab verbose 3 eingetragen werden.

Heute hatte ich auch Probleme mit dem Laden, da der Plenticore mal wieder in der Bug gelaufen ist, bei dem der Hausverbrauch im Schwarm total falsche Werte hat.
Dabei meint der Master WR, er müsse das Haus versorgen, was jedoch bereits der Slave WR erledigt hat und schon wird alles eingespeist und der Speicher nicht geladen.
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

Hier noch ein eventuelles Problem

Heute habe ich bemerkt, dass auch bei mir auf einmal im WR_1 die Battery_work_capacity auf NaN stand. Der wert wurde aber auch so immer wieder über ModBus geliefert und aktualisiert.
Da ich das letzte Plenticore Update bisher noch nicht gemacht hatte habe ich nun auch das KOSTAL_Software_Update_PLENTICORE_PIKO_IQ_G1_012609454.swu eingespielt. Warum auch immer wird nun auch Battery_work_capacity wieder geliefert und somit auch Actual_Battery_charge_usable_P berechnet, was ich in meinem Diagramm mit darstelle.

Resüme: Man muss immer ein Update in der Hinterhand haben, damit man der Plenticore mal so richtig durchschütteln kann :-) :-)
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

killah78

Hmmh, also ich komme mit dem Speicher nicht weiter. Für mich sieht es so aus, als ob der Wert 0, den ich in DC_Power_Abs geschrieben habe, dauerhaft bleibt, bis ich was anderes eingebe. Einen Timeout gibts nicht.
Von welchem An/Aus sprichst du? Das Repeat Command? Da wird aber DC_Power_Abs nicht gesetzt. Oder habe ich einen alten Stand von WR_1_Speicher_1_ExternControl? Ich habe bisher alles aus dem Wiki, bis auf den KI Teil aus den letzten Beiträgen.
Aber ich glaube das wird die Sache nicht ändern, da ich das DC_Power_Abs nicht erneut sende.
Im Log sehe ich dazu auch nichts. Ausser dass das KI Script nicht läuft.
Sowas bekomme ich da:
"DBD::mysql::st execute failed: Out of range value for column 'yield' at row 1 at ./FHEM/93_DbRep.pm line 11623."

Die neueste Firmware für den Plenticore sollte doch die 012709932 sein. Nutzt du die bewusst nicht?

ch.eick

Zitat von: killah78 am 21 Juni 2023, 13:22:17Hmmh, also ich komme mit dem Speicher nicht weiter. Für mich sieht es so aus, als ob der Wert 0, den ich in DC_Power_Abs geschrieben habe, dauerhaft bleibt, bis ich was anderes eingebe. Einen Timeout gibts nicht.
Von welchem An/Aus sprichst du? Das Repeat Command? Da wird aber DC_Power_Abs nicht gesetzt. Oder habe ich einen alten Stand von WR_1_Speicher_1_ExternControl? Ich habe bisher alles aus dem Wiki.
Sorry, ich habe gerade nochmal nachgeschaut und in diesem Post die Aussagen korrigiert.
Wenn hier im Bild der Button auf An steht, und mehr wie 0 Watt eingestellt sind, dann wird der Speicher permanent mit diesem Wert geladen/entladen.
Bei 0 Watt sollte er nach Ablauf der Zeit wieder auf die interne Steuerung gehen. Aber denk daran, es gibt einen Bug, der bei mir auch mal wieder zugeschlagen hat.
Ab log Level 3 sollten aber auch Meldungen zur Orientierung im Log erscheinen.
Du darfst diesen Dateianhang nicht ansehen.

Zitat, bis auf den KI Teil aus den letzten Beiträgen.
Aber ich glaube das wird die Sache nicht ändern, da ich das DC_Power_Abs nicht erneut sende.
Im Log sehe ich dazu auch nichts. Ausser dass das KI Script nicht läuft.
Sowas bekomme ich da:
"DBD::mysql::st execute failed: Out of range value for column 'yield' at row 1 at ./FHEM/93_DbRep.pm line 11623."
Da würde ich zuerst mal in einer Datenbank Session testen, was da so los ist.
-- hiermit wird die Procedur ausgeführt. Der Timeout der Session sollte > 60 Sekunden sein, ansonsten kommt eine Meldung.
call dwd_load(curdate(),'none');

-- Nach der Procedur kann man sich die Tabelle dann anschauen, auch wenn oben ein Session Abbruch gemeldet wurde.
select * from dwdfull
 WHERE TIMESTAMP > curdate()
order by TIMESTAMP desc
LIMIT 1000;

ZitatDie neueste Firmware für den Plenticore sollte doch die 012709932 sein. Nutzt du die bewusst nicht?
Da ist für mich nichts neues drin, nur zusätzliche Speicher Typen, deshalb warte ich da noch.
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

killah78

Danke dir.
Wo finde ich den den letzten Stand von der Extern Control?
Diesen Knopf habe ich bei mir nicht.

ch.eick

Zitat von: killah78 am 21 Juni 2023, 14:31:55Danke dir.
Wo finde ich den den letzten Stand von der Extern Control?
Diesen Knopf habe ich bei mir nicht.
Ich habe es mal wieder im Wiki aktualisiert :-)
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

killah78

Danke. Ich habe den Verdacht, dass mein Problem mit dem external Control mit der aktuellsten Firmware zu tun hat.
Ich finde den älteren stand nicht mehr. Könntest du die Datei irgendwo auf einen Cloud-Speicher laden? Dann könnte ich Mal einen downgrade probieren. Sonst müsste ich Mal an Kostal schreiben.

ch.eick

Zitat von: killah78 am 21 Juni 2023, 16:58:51Danke. Ich habe den Verdacht, dass mein Problem mit dem external Control mit der aktuellsten Firmware zu tun hat.
Ich finde den älteren stand nicht mehr. Könntest du die Datei irgendwo auf einen Cloud-Speicher laden? Dann könnte ich Mal einen downgrade probieren. Sonst müsste ich Mal an Kostal schreiben.
Ist per PN raus gegangen.
Du könntest aber auch nochmal über verbose 5 im Log mehr Meldungen erzeugen, da es ja ein HTTPMOD Device ist. Eventuell sieht man da noch etwas mehr.
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

killah78

Guten Morgen,
hat natürlich nicht geklappt. Downgrade nicht möglich. Auch nach Neustart keine Änderung.
Was mir aber noch aufgefallen ist:
Bei dir wird im UI oben rechts "Normal" angezeigt. Bei mir steht da "256". Das steht für externe Kontrolle. Frage mich, was das bedeutet. Der Wert kommt ja vom WR_1_API:Battery_EM_State.
Steht da bei dir wirklich eine Null? Trotz aktivierter externen Batteriekontrolle im Wechselrichter? Hast du da jemals eine 256 drin gehabt? ZB. wenn Ladestrom begrenz wird?

ch.eick

Zitat von: killah78 am 22 Juni 2023, 09:38:30Guten Morgen,
hat natürlich nicht geklappt. Downgrade nicht möglich. Auch nach Neustart keine Änderung.
Was mir aber noch aufgefallen ist:
Bei dir wird im UI oben rechts "Normal" angezeigt. Bei mir steht da "256". Das steht für externe Kontrolle. Frage mich, was das bedeutet. Der Wert kommt ja vom WR_1_API:Battery_EM_State.
Steht da bei dir wirklich eine Null? Trotz aktivierter externen Batteriekontrolle im Wechselrichter? Hast du da jemals eine 256 drin gehabt? ZB. wenn Ladestrom begrenz wird?
256 kommt wenn die externe Speicherkontrolle aktiv ist und sollte im aktuellen UI/stateFormat auch als Text angezeigt werden.
Ich denke Dein WR_1 ist noch nicht aktuell:-)

Hier habe ich das Mapping eingebaut
attr WR_1 obj-h104-format %s
attr WR_1 obj-h104-map 0:Normal,8:Ruhe1,16:Ruhe2,32:Ausgleichsladung,64:Tiefentladeschutz,256:externe Batteriesteuerung
attr WR_1 obj-h104-reading State_of_EM
attr WR_1 obj-h104-revRegs 0
attr WR_1 obj-h104-unpack N
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

killah78

Die 256 kommt aus WR_1_API. Der Wert ist in beiden devices drin. In WR_1 wird auch der Text angezeigt. In WR_1_API aber nur 256.
Aber: Bin jetzt einen Schritt weiter. Hatte gerade den Solateur hier und habe die Batterieeinstellung auf intern gestellt. Und anschließend wieder auf extern. Jetzt steht State_of_EM wieder auf 0 (Normal). Übringes steht jetzt auch der Text "Normal" im API device.
Ich vermute, dass ich jetzt einfach keine manuelle Ladung oder Entladung machen darf. Wenn ich den maximalen Lade oder Entladestrom ändere, bleibt der Status auf "Normal". Wenn ich jetzt aber wieder manuell eingreife, wird der wieder auf "extern" springen und nicht wieder auf "normal" zurück gehen. Ich habe das so gelesen, dass nach der eingestellten Timeout-Zeit von 60 Sekunden wieder zurückgesetzt wird. Aber scheinbar funktioniert das so nicht bei mir. Werde ich mal Kostal befragen müssen.

Da du den DCPowerAbs ja eingebaut hast, vermute ich passt das bei dir mit dem zurück auf "Normal", richtig? Dann solltest du nicht auf die aktuelle Firmware updaten, wenn es denn damit zusammen hängt.

ch.eick

Zitat von: killah78 am 22 Juni 2023, 10:59:53Die 256 kommt aus WR_1_API. Der Wert ist in beiden devices drin. In WR_1 wird auch der Text angezeigt. In WR_1_API aber nur 256.
Stimmt, das Mapping muss in beide rein
attr WR_1_API reading25Name Battery_EM_State
attr WR_1_API reading25OMap 0:Normal,8:Ruhe1,16:Ruhe2,32:Ausgleichsladung,64:Tiefentladeschutz,256:externe Batteriesteuerung
attr WR_1_API reading25Regex EM_State.*value":(\d+)

ZitatAber: Bin jetzt einen Schritt weiter. Hatte gerade den Solateur hier und habe die Batterieeinstellung auf intern gestellt. Und anschließend wieder auf extern.
So mache ich das auch, oder Du konfigurierst zuerst den Speiche weg und dann wieder dazu, was aber nur als Betreiber geht, wenn man kein AC Laden verwendet.
Das AC Laden geht auch nur als Installateur.

ZitatJetzt steht State_of_EM wieder auf 0 (Normal). Übringes steht jetzt auch der Text "Normal" im API device.
Ich vermute, dass ich jetzt einfach keine manuelle Ladung oder Entladung machen darf. Wenn ich den maximalen Lade oder Entladestrom ändere, bleibt der Status auf "Normal". Wenn ich jetzt aber wieder manuell eingreife, wird der wieder auf "extern" springen und nicht wieder auf "normal" zurück gehen. Ich habe das so gelesen, dass nach der eingestellten Timeout-Zeit von 60 Sekunden wieder zurückgesetzt wird. Aber scheinbar funktioniert das so nicht bei mir. Werde ich mal Kostal befragen müssen.
Da du den DCPowerAbs ja eingebaut hast, vermute ich passt das bei dir mit dem zurück auf "Normal", richtig? Dann solltest du nicht auf die aktuelle Firmware updaten, wenn es denn damit zusammen hängt.
Normalerweise funktioniert das bei mir, jedoch schlägt ab und zu mal der Bug zu :-(
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

killah78

Kurz zur Info mit meiner KI Prognose:
Ich hatte im dblog irgendwo einen Nullwert zwischendurch im Reading SW_Yield_Daily. Die fangen ja mit 0 an und steigen dann zum Tagesende. Und irgendwo war ein Nullwert drin. Den habe ich einfach gelöscht, dann lief die Prozedur wieder.

ch.eick

Zitat von: killah78 am 22 Juni 2023, 16:38:07Kurz zur Info mit meiner KI Prognose:
Ich hatte im dblog irgendwo einen Nullwert zwischendurch im Reading SW_Yield_Daily. Die fangen ja mit 0 an und steigen dann zum Tagesende. Und irgendwo war ein Nullwert drin. Den habe ich einfach gelöscht, dann lief die Prozedur wieder.
Okay,
interessant wäre, wo der her gekommen ist, wenn es aber jetzt gut ist reicht das ja auch :-)
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

Hallo,
ich habe ein kleines Problem:
Ich habe gestern einen Speicher an meinem Kostal nachgerüstet.
Die Variable "Actual_Battery_charge_usable_P" ist 0. Daher hab ich weiter geschaut:


Ich habe gesehen, dass das Reading Battery_work_capacity leer ist. Wie bekomme ich diese gefüllt?

LG