Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Netzladen der Hausbatterie beim Kostal Plenticore ohne Funktion #15508

Closed
StevieC121176 opened this issue Aug 19, 2024 · 46 comments
Closed

Netzladen der Hausbatterie beim Kostal Plenticore ohne Funktion #15508

StevieC121176 opened this issue Aug 19, 2024 · 46 comments
Assignees
Labels
bug Something isn't working devices Specific device support

Comments

@StevieC121176
Copy link

StevieC121176 commented Aug 19, 2024

Describe the bug

Ich habe zum testen mal die CO2 Grenze für das Netzladen der Hausbatterie auf <410g eingestellt.
Es wird im UI auch saubere Netzenergie angezeigt. Aber anstatt die Hausbatterie zu laden wird nur die Entladung der Batterie gesperrt und die Differenz zwischen noch verfügbarer PV Energie und Hausverbrauch aus dem Netz beglichen.
externe Batteriesteuerung über Modus sind im Kostal Plenticore eingestellt.

Logfile:
evcc-20240819-201648-trace.log

Steps to reproduce

  1. CO2 Grenze hoch einstellen (in meinem Fall war es 410g)

IMG_3720
IMG_3721

Configuration details

über EVCC UI konfiguriert

Log details

logfile sh. oben

What type of operating system are you running?

Linux

Version

0.130

@Presl1983
Copy link

gleiches Problem habe ich auch!

@deadrabbit87
Copy link
Contributor

Kann auch nicht funktionieren, weil keines der Register von evcc beschrieben wird, die dazu notwendig wären.

Damit es geht, könnte man auf Register 1028 -100 schreiben.

Dann beginnt der WR mit seiner technisch max. möglichen Leistung die Batterie zu laden.

@premultiply Gibt es best-practice Beispiele wo das Netzladen umgesetzt ist und auch funktioniert?

https://cdn-production.kostal.com/-/media/document-library-folder---kse/2023/11/16/13/29/ba_kostal-interface-description-modbus-tcp_sunspec_hybrid.pdf?rev=-1&hash=6BEE952BED4A8A48ECE11BC37B369F06

@premultiply premultiply added enhancement New feature or request devices Specific device support backlog Things to do later labels Aug 19, 2024
@premultiply premultiply self-assigned this Aug 19, 2024
@andig
Copy link
Member

andig commented Aug 19, 2024

@deadrabbit87 aktuell verwenden wir 1042=100(%). Dazu kommt dann der Watchdog.

@deadrabbit87
Copy link
Contributor

1042 setzt aber nur den minsoc auf 100% und sperrt somit nur die Entladung beim Zielladen/ Schnellladen.

Denkbar wäre 1028 beim Zielladen mit 0 zu beschreiben und beim Batterienetzladen mit -100.

Watchdog braucht es, weil bei ausbleiben von Werten der WR auf interne Regelung zurückfällt.

1042 wäre dann obsolet.

@Chris45671
Copy link

Bei mir logischer Weise ebenfalls so.
Wenn es eine spätere Lösung geben wird, bin ich gerne bereit zum Testen.
Habe zwei von den betroffenen WR im Verbund am laufen und nur an einem hängt eine Batterie.

@Presl1983
Copy link

Presl1983 commented Aug 19, 2024

ich habe das ganze im HA so konfiguriert und muss direkt das script alle 45 sekunden ausführen...

hub: Kostal-BYD
address: 1034
unit: 71
value:

  • 0
  • 50528
    falls das hilft...

@deadrabbit87
Copy link
Contributor

deadrabbit87 commented Aug 19, 2024

ich habe das ganze im HA so konfiguriert und muss direkt das script alle 45 sekunden ausführen...

hub: Kostal-BYD
address: 1034
unit: 71
value:

  • 0
  • 50528
    falls das hilft...

Macht das gleiche wie 1028 nur in Absolutwerten was aber unterschiedlich je nach Batterie ist.

Was ich damit sagen will: Ich fände 1028 eleganter, da Relativwerte geschrieben werden.

@andig andig added bug Something isn't working and removed enhancement New feature or request backlog Things to do later labels Aug 19, 2024
@deadrabbit87
Copy link
Contributor

deadrabbit87 commented Aug 23, 2024

Mir ist bei meinem Vorschlag noch ein Fehler aufgefallen: Für mode: normal weiß ich nicht, wie man das erreichen könnte.

Sobald ja etwas auf 1028 geschrieben wird, ist die interne Regelung deaktiviert und ich weiß nicht, wie man die wieder einschalten kann.

Außer so lange nichts auf 1028 zu schreiben, bis der WR wieder von selbst auf die interne Regelung zurückfällt. Das gleiche Problem betrifft 1034 auch.

@Presl1983 Wie erreichst du, dass der WR wieder selbst regelt?

@Presl1983
Copy link

Mir ist bei meinem Vorschlag noch ein Fehler aufgefallen: Für mode: normal weiß ich nicht, wie man das erreichen könnte.

Sobald ja etwas auf 1028 geschrieben wird, ist die interne Regelung deaktiviert und ich weiß nicht, wie man die wieder einschalten kann.

Außer so lange nichts auf 1028 zu schreiben, bis der WR wieder von selbst auf die interne Regelung zurückfällt. Das gleiche Problem betrifft 1034 auch.

@Presl1983 Wie erreichst du, dass der WR wieder selbst regelt?

Da sich der WR automatisch wieder retour stellt sobald er kein commands mehr bekommt muss man da nichts machen.

Ich habe gestern mal eine Kalkulation aufgestellt mit den stündlichen Tarifen.... Recht viel spart man sich da aktuell gar nicht mehr mit Akku pv und E-Auto...

@iseeberg79
Copy link
Contributor

iseeberg79 commented Aug 25, 2024

Hallo,
mich hat das Thema auch sehr interessiert und die Funktion Netzladen habe ich seit langem verfolgt. Da ich auch einen Kostal-WR mit BYD Batterie mit EVCC betreibe, habe ich mit den Anmerkungen und den neuen Funktionen versucht, die Funktion auch für den Kostal-WR zu ermöglichen.

In den Templates für Kostal, SMA und Fronius bin ich fündig geworden und habe das aktuell in einem Custom-Type für die Batterie am Kostal-Plenticore WR umgesetzt. Aktuell habe ich auch ein Ladelimit (maxSoc) für die Netzladenfunktion mit eingestellt. Vielleicht ist das für das Kostal-Template und die aktuelle Diskussion eine Anregung? Ich teile hier mal die Konfiguration im Anhang (ohne Gewähr).

DOKU_EVCC_KOSTAL_WR_GRIDLOAD.pdf

@deadrabbit87
Copy link
Contributor

Hallo,
mich hat das Thema auch sehr interessiert und die Funktion Netzladen habe ich seit langem verfolgt. Da ich auch einen Kostal-WR mit BYD Batterie mit EVCC betreibe, habe ich mit den Anmerkungen und den neuen Funktionen versucht, die Funktion auch für den Kostal-WR zu ermöglichen.

In den Templates für Kostal, SMA und Fronius bin ich fündig geworden und habe das aktuell in einem Custom-Type für die Batterie am Kostal-Plenticore WR umgesetzt. Aktuell habe ich auch ein Ladelimit (maxSoc) für die Netzladenfunktion mit eingestellt. Vielleicht ist das für das Kostal-Template und die aktuelle Diskussion eine Anregung? Ich teile hier mal die Konfiguration im Anhang (ohne Gewähr).

DOKU_EVCC_KOSTAL_WR_GRIDLOAD.pdf

Genau so sieht mein aktueller Versuch auch aus, bin aber noch nicht zum Testen gekommen.

Ich vermute mal, das funktioniert bei dir so?

@iseeberg79
Copy link
Contributor

Ja, seit heute früh. Habe die Modus jeweils durchgetestet und nichts auffälliges gefunden. Läuft aktuell produktiv.

@deadrabbit87
Copy link
Contributor

Ich finde es nur nach wie vor unschön, case 1 nur durch abwarten des timeouts zu aktivieren...

@iseeberg79
Copy link
Contributor

iseeberg79 commented Aug 25, 2024

Finde ich auch nicht schön, es scheint aber auch in anderen Lösungen keine andere Option zu geben? Wäre praktisch, wenn nicht nur ein Timer ablaufen würde, sondern auch aktiv die interne Steuerung via Modbus wieder aktivierbar wäre. Die Minute finde ich am Ende nicht ausschlaggebend, die Steuerung fängt sich nach dem letzten Kommando recht schnell wieder.

@deadrabbit87
Copy link
Contributor

Ich kenne leider auch keine andere Lösung.

Eine Frage zu deiner Umsetzung hätte ich noch. Du nutzt zum sperren der Batterie nach wie vor 1042 um den minsoc auf 100% zu setzen.

Das wird aber nicht mehr zurück gesetzt. Mich wundert, dass das so funktioniert. Nach hold müsste doch ´1042` wieder zurückgesetzt werden?

@iseeberg79
Copy link
Contributor

iseeberg79 commented Aug 25, 2024

Ja, das hab ich auch gedacht und zuerst so implementiert und dann stückweise auf das Notwendige reduziert. Die Entladung beginnt nach dem Ende des Watchdogs/Timers ohne zurücksetzen des Registers. Vermutlich weil die interne Regelung auf einen anderen internen Wert des Wechselrichters (minSoC auf WR: /de-de/#/service/battery ) zurückfällt?
Etwas anderes ist mir bei einem neuen Test jedoch aufgefallen: der case 1 darf nicht leer sein? EVCC reagiert sonst im Log mit einem Fehler und die Entladungssperre im UI bleibt lange hängen.
Ich schreibe da zur Lösung jetzt den minSoC hinein, mit dem Nebeneffekt das dann die Entladung direkter wieder fortgesetzt wird und das UI ohne Logeintrag aktuell ist:

(..)

        - case: 1 # normal
          set:
            source: const
            value: 5 # % (dummy operation, reset minSoC
            set:
              source: modbus
              id: 71
              uri: localhost:1502
              register:
                address: 1042 # limit soc (min)
                type: writemultiple
                encoding: float32s

(updated...siehe unten)
(..)

@deadrabbit87
Copy link
Contributor

Und warum da nicht auch gleich Register 1028 mit 0 beschreiben?

Dann sollte er die Entladung ja auch stoppen.

@iseeberg79
Copy link
Contributor

In case 2?
Ja, das geht auch. Setzt man den 1028 auf 0 ist die Batterieentladung auch gesperrt. Dann braucht es, wie oben schon diskutiert, das andere Register 1042 nicht. Gestern wollte ich noch nah am Orginal bleiben und primär die Netzladung hinzufügen...

Ich habe Register 1028 ausprobiert und Schnellladung mit Sperre, sowie Netzladung funktionieren - inkl. die Rückkehr in den Normalbetrieb.

Für den Normalbetrieb eignet sich dann auch in case 1 das Schreiben von 0 in 1028, so schwingt die Batterieladung bei Rückkehr aus der Netzladung (case 3) aus, und die Zeit für den Watchdog/Timeout ist gut genutzt?

Man würde dann nur noch Register 1028 beschreiben müssen, ggf. ergänzt durch eine konfigurierbare Maximalladung für den Netzladebetrieb (1044).

        - case: 1 # normal
          set:
            source: const
            value: 0 # % (reset grid loading)
            set:
              source: modbus
              id: 71
              uri: localhost:1502
              register:
                address: 1028 # Battery charge current (DC) setpoint, relative
                type: writemultiple
                encoding: float32s
        - case: 2 # hold/now
          set:
            source: const
            value: 0 # % (lock battery)
            set:
              source: modbus
              id: 71
              uri: localhost:1502
              register:
                address: 1028 # Battery charge current (DC) setpoint, relative
                type: writemultiple
                encoding: float32s

@deadrabbit87
Copy link
Contributor

Ja, meinte ich.

Warum machst du keinen PR draus?

@stna1981
Copy link

stna1981 commented Aug 26, 2024

@StevieC121176 Hast du einen Plenticore G1 oder G2? Und auch in Verbindung mit dem KSEM?

Ich frage daher, weil bei meinem Plenticore G1 das setzen des minSOC bzw. Sperren des Speichers gegen Entladen nicht funktioniert. Mich würde daher zum einen interessieren, ob das nur bei mir so ist und andere mit gleichem Setup das Problem nicht haben und zum anderen, welche Settings im KSEM für die externe Modbus-Steuerung verwendet wurden.

@StevieC121176
Copy link
Author

@StevieC121176 Hast du einen Plenticore G1 oder G2? Und auch in Verbindung mit dem KSEM?

Ich frage daher, weil bei meinem Plenticore G1 das setzen des minSOC bzw. Sperren des Speichers gegen Entladen nicht funktioniert. Mich würde daher zum einen interessieren, ob das nur bei mir so ist und andere mit gleichem Setup das Problem nicht haben und zum anderen, welche Settings im KSEM für die externe Modbus-Steuerung verwendet wurden.

Ich habe 2 Plenticore G1 im Verbund, eine BYD Batterie und den KSEM. Sperren der Batterie funktioniert , nur halt das Laden aus dem Netz noch nicht.

@stna1981
Copy link

Wie sehen denn bei dir die Einstellungen im KSEM für die Modbus-Steuerung aus? Ich verstehe nicht, warum die minSOC-Steuerung bei mir plötzlich aufgehört hat, zu funktionieren. Du hast auch die aktuelle FW von Ende Februar auf den beiden Plenticores?

@StevieC121176
Copy link
Author

Sind die standard Einstellungen.
Firmware ist überall die aktuellste drauf.

IMG_3743

@stna1981
Copy link

Und bei Modbus TCP hast du Slave aktiviert und als IP die des KSEM und als Port die 502 eingetragen?

@StevieC121176
Copy link
Author

bei mir ist nur Slave aktiviert, keine ip Adresse oder Port eingetragen.

@stna1981
Copy link

Kann es vielleicht sein, dass es gar nicht am Plenicore, sondern am KSEM liegt? Ich habe nämlich schon das KSEM G2 bei mir installiert, ist es bei dir noch die G1?

@StevieC121176
Copy link
Author

ja, ich habe die G1 Version

@stna1981
Copy link

stna1981 commented Aug 26, 2024

Dann habe ich keine Ahnung, was es sein könnte. Wir haben beide einen Plenticore G1 mit aktueller FW, ein KSEM mit aktueller FW (müsste 2.4.2 sein oder?) und auch unsere Modbus Settings sind gleich. Bei dir klappt das Sperren, bei mir nicht. Das ist echt mies. Muss vielleicht sonst irgendwo im Plenticore oder im KSEM was aktiviert sein, damit das Setzen des minSOC von extern klappt?

EDIT: hast du bei dir in den Batterieeinstellungen die Batteriesteuerung auf extern gestellt? Bei mir ist das irgendwie inaktiv und ich kann es nicht auf was anderes als intern stellen. Das war aber immer schon so. Komisch nur, dass das Sperren der Batterie damals am Anfang funktioniert hat.

Vielleicht hilft ja auch die Umstellung von Register 1042 auf 1028. 1028 war ja eh nur ein Workaround. Fingers crossed.

@Chris45671
Copy link

Bei meinen Plenticore Plus wurde die externe Batteriesteuerung durch den Installateur eingestellt. Vielleicht ist dies die Bedingung damit es gehen kann?

@stna1981
Copy link

stna1981 commented Aug 26, 2024

Kann gut sein, das müsste der dann mal machen, wenn das nur über seinen Zugang geht. Was hat das denn alles für Auswirkungen, wenn man das umstellt, muss ich dann die Steuerung der Ladung komplett extern regeln oder macht er das dann immer noch selbständig?

Ist der Plenticore bei euch unter "Modbus / Sunspec (TCP)" als little- oder big-endian konfiguriert?

@Chris45671
Copy link

Da bin ich überfragt. Bei mir steuert extern eine GridX Box die grundlegenden Sachen was den Akku betreffen. Dies wurde uns von Eon aufgezwungen.
Wie dies nur mit EVCC kann ich daher nicht sagen.

@Swantu
Copy link

Swantu commented Aug 26, 2024

Hi. Möchte hier auch meinen Wunsch auf eine funktionierende Netzladung für den Kostal Plenticore anbringen - wie ich sehe seit ihr schon fleißig dabei.

Meine config

  • evcc v0130.5 in docker
  • meters in der yaml konfiguriert

Das Problem

  • der klick auf "Hausbatterie" führt zu keine Ergebnis (kommt kein popup)
  • in den Logs steht[site ] WARN 2024/08/26 21:37:00 battery configured but residualPower is missing or <= 0 (add residualPower: 100 to site), see https://docs.evcc.io/en/docs/reference/configuration/site#residualpower
    ABER: wenn ich residualpower: 100 zu "meters" hinzufüge, starter er nichtmehr cannot create meter 'pv1': cannot create meter type 'template': invalid key: residualpower

Würde mich freuen, wenn es demnächste funktioniert.
Bisher bin ich sehr happy mit der Entwicklung von EVCC 👍

@iseeberg79
Copy link
Contributor

iseeberg79 commented Aug 26, 2024

@Chris45671 @stna1981 Soweit mir bekannt ist für das Schreiben der Register 1042 oder die anderen Register des externen Managements per Modbus das externe Management auch zu aktivieren (Installateurszugang).
Man kann via HTTP auf dem WR auch per minSoC regeln, aber eben nicht per Modbus.
Sie Änderung auf 1028 funktioniert bei mir wg. des externen Managements und macht 1042 insoweit unnötig. Die Voraussetzung ist aber die Aktivierung des externen Management via Modbus.
Werden Werte geschrieben erwartet der Wechselrichter die Kontrolle durch die externe Steuerung. Das gilt solange, bis ein Timeout des WR abgelaufen ist, weil keine neuen Modbus Nachrichten für die Steuerung eingehen. Danach greift dann wieder die interne Steueung bis zum nächsten Schreiben von Modbus Registern des externen Managements.

@stna1981
Copy link

Muss man den Wert für den Watchdog/Timeout in der evcc.yaml setzen und wenn ja, auf welchen Wert?

@deadrabbit87
Copy link
Contributor

#15715

@Chris45671
Copy link

Hi. Möchte hier auch meinen Wunsch auf eine funktionierende Netzladung für den Kostal Plenticore anbringen - wie ich sehe seit ihr schon fleißig dabei.

Meine config

* evcc v0130.5 in docker

* meters in der yaml konfiguriert

Das Problem

* der klick auf "Hausbatterie" führt zu keine Ergebnis (kommt kein popup)

* in den Logs steht`[site ] WARN 2024/08/26 21:37:00 battery configured but residualPower is missing or <= 0 (add residualPower: 100 to site), see https://docs.evcc.io/en/docs/reference/configuration/site#residualpower`
  ABER: wenn ich residualpower: 100 zu "meters" hinzufüge, starter er nichtmehr `cannot create meter 'pv1': cannot create meter type 'template': invalid key: residualpower `

Würde mich freuen, wenn es demnächste funktioniert. Bisher bin ich sehr happy mit der Entwicklung von EVCC 👍

Der Parameter muss unter Site eingrifflegt werden.

@andig
Copy link
Member

andig commented Sep 1, 2024

Ich hab den Überblick verloren. Gibt es hier noch ein konkretes Todo oder Fehlerbehebung? Welches?

@deadrabbit87
Copy link
Contributor

deadrabbit87 commented Sep 1, 2024

Es gibt hier einen PR:
#15709

Das einzig unschöne daran ist, das der normal oder case 1 Zustand durch abwarten des timeouts im WR erreicht wird.

Ich, als Kostal Besitzer, fände das aber vertretbar.

@iseeberg79
Copy link
Contributor

iseeberg79 commented Sep 8, 2024

der PR wurde integriert, sollte das Problem lösen

@Presl1983
Copy link

jetzt muss ich kurz fragen nach dem evcc nicht mehr gestartet hat.

muss man min und max rausnehmen?

@iseeberg79
Copy link
Contributor

die sind für diesen WR jetzt für die Batteriesteuerung ohne Funktion, es gelten die internen Werte des WR. Parameter minsoc/maxsoc hier deprecated

@rolli09
Copy link

rolli09 commented Sep 13, 2024

probiert mal die 0.130.9 ;)
bei mir läuft es :)

@andig
Copy link
Member

andig commented Sep 14, 2024

In Ermangelung eines erkennbaren Todos geschlossen.

@andig andig closed this as completed Sep 14, 2024
@iseeberg79
Copy link
Contributor

iseeberg79 commented Oct 3, 2024

beachtet für die Funktion Netzladen den Wechsel auf ein anderes Template "kostal-plenticore-gen2" ab dem nightly, sowie ab 0.131.0 (PR #16414); mit der Bedingung, dass die automatische Umschaltung des Wechselrichters zurück in die interne Batteriesteuerung erfolgreich klappt (aktuell nicht HW Version 0100).

@stna1981
Copy link

stna1981 commented Oct 3, 2024

beachtet für die Funktion Netzladen den Wechsel auf ein anderes Template "kostal-plenticore-gen2" ab dem nächsten nightly, sowie ab 0.130.14 (PR #16414); aktuell mit Bedingung: nicht HW Version 0100 (~G1).

Und was ist, wenn man einen Plenticore G1 verwendet, kann man die Funktion dann nicht mehr nutzen? Bzw. muss ich, wenn ich einen G1 mit HW 0210 habe, dann trotzdem das Gen2-Template verwenden?

@iseeberg79
Copy link
Contributor

iseeberg79 commented Oct 3, 2024

Wenn die Funktion jetzt keine Probleme macht, kann das gen2 Template genutzt werden. Es entspricht der aktuellen Funktionsweise seit 0.130.8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working devices Specific device support
Projects
None yet
Development

No branches or pull requests

10 participants