Skip to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Kostal Plenticore G3 Hybrid-WR

Featured Replies

Geschrieben

Liebe tinkerforge Community,

seit einigen Tagen läuft hier ein WEM2 im Zusammenspiel mit einem Kostal Plenticore G3 Hybrid-WR und einem Pylontech Force H Batteriespeicher. Ich möchte gerne die Batteriesteuerung über den WEM2 einrichten und habe mich gefragt, wie hier am Besten vorzugehen ist? Ein vorkonfiguriertes Profil besteht ja noch nicht. Ist das schon jemand aus der Community angegangen? Lassen sich die notwendigen Registerdaten irgendwo in der Kostal Dokumentation finden oder müsste ich die anderweitig herausfinden?

Falls hilfreich, biete ich gerne meine Unterstützung bei der Entwicklung einer Kostal Plenticore G3 config für das firmware repo an. Gerne auch im direkten Austausch per github, Mail, o.ä. falls gewünscht.

Schöne Grüße aus dem Ruhrgebiet

bearbeitet von laubblaeser
Titeländerung

Geschrieben
  • Autor

Wenn ich nicht irre, sollten hier unter 3.4 mglw. die nötigen Infos zu finden sein?

https://www.kostal-solar-electric.com/fileadmin/downloadcenter/kse/BA/Protokollbeschreibung/BA_KOSTAL_Interface_MODBUS-TCP_SunSpec_with_Control.pdf

bearbeitet von laubblaeser
link

Geschrieben

Moin,

ich habe die Batteriesteuerung (BYD HVS) über einem Plenticore+10 aus 2022 (G1?) auf meiner WARP3 konfiguriert, ich sperre das Entladen der Batterie beim "Schnell-"Laden mit 11kW.

Hinweise zur Konfiguration im Thread https://www.tinkerunity.org/topic/13229-beta-test-batteriespeicher-steuerung-phase-2/ unter meinem Benutzernamen, Infos aus oben genanntem MODBUS SunSpec Dokument habe ich damals auch benutzt.

Wie das auf den WEM mappt weiss ich nicht, bei Bedarf kann ich aber meine aktuelle Konfig exportieren ...

Grüße

VinciSC71

Geschrieben
  • Autor

Die Software auf WEM2 und WARP3 sind soweit ich weiß zu weiten Teilen gleich. Sofern beide Geräte ein Modul haben (z.B. Batteriesteuerung), dann sollten sie auch gleich bedienbar sein und die gleichen Funktionalitäten bieten.

Eine geteilte Config von dir wäre sicher ein toller Einblick für alle Plenticore Nutzer:innen hier. :)

Ich hatte bisher keine Kontaktpunkte mit Modbus, daher scheue ich noch etwas davor zurück, einfach Dinge dafür zu schreiben und auszuprobieren. Am liebsten hätte ich natürlich, wenn wir es schaffen würden, eine Python Datei für die Registerkonfiguration der kompatiblen Plenticore WR im Firmware git zu entwickeln (https://github.com/Tinkerforge/esp32-firmware/tree/master/software/src/modules/batteries_modbus_tcp) und so als Blaupause für alle Interessierten zur Verfügung zu stellen.

Was mir auf jeden Fall schon klar ist, ist die einstellbare Watchdog Dauer (60s) und die Standardgeräteadresse (71). Die Registerkonfig selbst müsste hoffentlich mit den bestehenden Konfigurationen, deinen bisherigen Erkenntnissen und der Modbus Dokumentation von Kostal herleitbar sein.

bearbeitet von laubblaeser

Geschrieben

Moin,

Am 14.2.2026 um 13:52 schrieb laubblaeser:

Eine geteilte Config von dir wäre sicher ein toller Einblick für alle Plenticore Nutzer:innen hier. :)

Anbei der Export meiner Konfiguration der Batteriesteuerung (json) sowie 3 screenshots zu den Einstellungen in der Web-Oberfläche der WARP3:

Batteriespeicher Einstellungen.jpg

Mein Kostal setzt die Register nach 60 s zurück, daher habe ich das Wiederholraster auf 55 s gesetzt. Hatte in der Beta Phase auch mal 58 s eingestellt, ging auch.

Batteriespeicher Entladen blockieren.jpg

Um erst mal zu sehen, was im Normalbetrieb in den Registern steht, habe ich GModBus benutzt. Damit kann man auch Werte testweise schreiben um zu sehen, wie das System reagiert. Da der Plenticore physikalische Vorgaben will (zB Register 1040 in W), braucht es dann noch eine Umrechung von float nach hex. Im obigen Fall "Entladeleistung 0 W" ist das einfach, für andere Werte hilft google "float to hex" ...

Batteriesteuerung Regeln.jpgBatteriespeicher-Konfiguration-Modbus-TCP-Kostal_Plenticore+10_20260214.json

Wer aus sowas wie ein *.py wie im referenzierten git macht, ist mir nicht bekannt.

hth

VinciSC71

Geschrieben
  • Autor

Ich habe die ersten vier Optionen (Normal/Normal, Normal/Blocken, Blocken/Laden, Blocken/Blocken) erfolgreich konfiguriert. Die Tests stoppen z.B. direkt das vom Kostal WR gesteuerte Entladen der Batterie zur Deckung des Netzbezugs und nach Stoppen des Testsignals kehrt der WR innerhalb einiger Sekunden wieder zum Normalbetrieb zurück.

So weit, so gut. Was bisher noch nicht klappt, si d die Optionen 5+6, also forciertes Laden und Entladen. Hier war mein erster Gedanke, die Register 1042 und 1044 zu nutzen, welche die Min und Max SOC in % vorgeben. Zum forcierten Laden habe ich versucht, den Min SOC auf 100 zu setzen, leider ohne Erfolg. Hierzu zwei Fragen:

  • @VinciSC71 Wo hattest du gefunden, dass Hexwerte eingetragen werden müssen? Die Dokumentation gibt doch die Formate für jedes Register eindeutig an, z.B. Float in den o.g. Fällen. Ein Eintragen eines Hexwertes ist im Eingabefeld der WARP Batteriesteuerung auch gar nicht möglich. Da werden nur Dezimalzahlen akzeptiert.

  • Die Modbus TCP Konfiguration habe ich im WR auf Sunspec eingestellt (ABCD), damit darüber die Einbindung als Zähler funktioniert. Ich denke, dass sich das dann auch auf den Modbus Steuerung der Batterie auswirkt. Wie werden denn von der WARP Batteriesteuerung die Werte an den WR weitergegeben? CDAB (standard Modbus) oder ABCD? Könnte es hierbei zu Problemen kommen? Vermutlich eine Detailfrage an die Entwickler.

Geschrieben
  • Autor

OK, ich hatte die letzten Tage ein wenig Zeit und hab mich etwas in Modbus und die Kostal Register eingelesen und einige Settings ausprobiert. Alle Optionen sind jetzt fertig konfiguriert und funktionieren einwandfrei. Derzeit habe ich die Leistung bei erzwungener Ladung und Entladung jeweils auf 4,0 kW eingestellt. Das ist weit entfernt vom Maximum das WR und Batterie könnten, aber ein angenehmer Startpunkt, um das System zum laufen zu bekommen.

Ich habe leider keine Möglichkeit gefunden, eine Zwangsladung herbeizuführen, ohne die Ladeleistung vorzugeben. Einen Min SOC von 100% kann ich zwar erfolgreich einstellen, aber leider führt das nicht zur Ladung mit von WR/Batterie gesteuerter Leistungskurve.

Ich teste das jetzt ein paar Tage und wenn alles wie gewünscht funktioniert, könnte man eine Config für das Firmware Repo daraus stricken. :)

Geschrieben
  • Autor

Habe noch ein gravierendes Problem festgestellt. Wenn die externe Batteriesteuerung aktiv bleibt und nur den Zustand wechselt, bleiben alte Registerwerte erhalten und setzen sich nicht auf den Standardwert zurück.

Wenn also vom Beschreiben von Register 1032 zum erzwungenen Beladen mit 10 A (battery permitting) zu einem anderen Status wie "Normal entladen, laden blockieren" gewechselt wird, bleibt der zuvor geschriebene Wert in Register X erhalten, obwohl der jetzt aktiv zu beschreibende Registersatz dieses Register gar nicht mehr beinhaltet.

Ich dachte erst, dass ich das gelöst bekomme, indem ich alle mglw. zuvor beschriebenen Register in allen Batteriesteuerungsregelsätzen (schönes Wort btw) wieder neutralisiere, aber ich habe keine Möglichkeit auf die Default Werte zuzugreifen. Demnach musste eine andere Lösung her.

Derzeit probiere ich aus, die Batteriesteuerung nach 60 Sekunden für eine Sekunde aussetzen zu lassen. Der Kostal watchdog erwartet alle 60 Sekunden ein Signal, sonst springt er auf die normale interne Batteriesteuerung zurück und setzt alle zuvor geschriebenen Werte auf default. Wenn ich im Warp Registersatz eingebe, dass die Wiederholung alle 61 Selunden stattfinden soll, wird das also kurz getriggert. (Lässt sich auch im Kostal webinterface nachvollziehen, da dort immer kurz angezeigt wird, dass die externe Batteriesteuerung für eine Selunde deaktiviert und dann wieder aktiviert ist.)

Ich werde das weiter beobachten und schau mal, ob das jetzt gut klappt oder zu anderen Problemen führt.

Hat jemand schon einmal so eine Herangehensweise probiert? Ist das aus irgendwelchen Gründen ne dumme Idee, die ext. Batteriesteuerung regelmäßig kurz zu unterbrechen?

bearbeitet von laubblaeser
typo

Geschrieben
  • Autor
Am 28.2.2026 um 11:21 schrieb laubblaeser:

Derzeit probiere ich aus, die Batteriesteuerung nach 60 Sekunden für eine Sekunde aussetzen zu lassen.

Funktioniert, aber dadurch springt bspw. die Batterie direkt zur Deckung der Hauslast für eine Sekunde an, obwohl gerade der Strom aus dem Netz so günstig ist, dass eine Entladung verboten wird. Das Problem mit den bestehenden Registerwerten bleibt also, denn so lässt es sich zwar lösen, aber nicht wirklich sauber.

Wäre es möglich, in der Firmware eine 1 Sekunde Pause einzufügen, wenn zwischen den 6 Optionen zur Batteriesteuerung gewechselt wird? Also eben nur die nötige „Resetpause“ einfügen, wenn nicht der bestehende Modus bestehen bleibt.

bearbeitet von laubblaeser

Geschrieben
  • Autor
Am 28.2.2026 um 14:29 schrieb laubblaeser:

Das Problem mit den bestehenden Registerwerten bleibt also, denn so lässt es sich zwar lösen, aber nicht wirklich sauber.

Wäre es möglich, in der Firmware eine 1 Sekunde Pause einzufügen, wenn zwischen den 6 Optionen zur Batteriesteuerung gewechselt wird?

Nach weiterem Studium der Kostal Registertabelle und einigen Tests der Batteriesteuerung bin ich jetzt an dem Punkt, an dem alles zu klappen scheint. Die drei relevanten Register werden jetzt bei jedem Statuswechsel der Batteriesteuerung auf einen vordefinierten Wert gesetzt. Meine Bedenken, dass ich keine absoluten Werte in die Register schreiben wollte, haben sich erledigt, da es weitere Read-only Register gibt (z.B. vom BMS oder auch die Begrenzung der Wirkleistung im WR), die eine zu starke (Ent-)Ladung begrenzen, auch wenn die externe Batteriesteuerung über Modbus aktiv ist.

Leider hat sich jetzt ein weiteres Problem aufgetan, das mir gerade noch Kopfzerbrechen bereitet: Wenn eine Regel greift, die das Entladen blockiert (z.B. weil der Strompreis gerade schön günstig ist), werden PV Überschüsse im Heimnetz leider nicht in die Batterie geladen, sondern in das Netz eingespeist. Es scheint, als ob der Kostal Plenticore WR jegliche Steuerung des Ladeverhaltens einstellt, sobald irgendein externer Steuerbefehl über Modbus eingeht. Also auch, wenn der eingegangene Befehl (maximale Entladeleistung = 0W) nichts mit dem Ladeverhalten zu tun hat.

Kann mir bitte jemand sagen, ob so ein Verhalten bei anderen WR auch auftritt, wenn die externe Batteriesteuerung aktiv ist?

Ich habe ja über den WEM2 keine Möglichkeit, die Ladeleistung dynamisch auf Basis des Überschusses am Netzanschlusspunkt zu regeln. (Und das soll ja auch explizit nicht der Scope der Warp Batteriesteuerung sein.) Das geschieht nur im Normalfall, also wenn der WR selbst alles regelt, durch die interne Steuerung von Kostal. Echt knifflig.

bearbeitet von laubblaeser
typo

Geschrieben
  • Autor
Am 4.3.2026 um 16:52 schrieb laubblaeser:

Wenn eine Regel greift, die das Entladen blockiert (z.B. weil der Strompreis gerade schön günstig ist), werden PV Überschüsse im Heimnetz leider nicht in die Batterie geladen, sondern in das Netz eingespeist.

Ein anderes Beispiel noch, um das zu veranschaulichen: Wenn ich zwischen 7 und 9 Uhr morgens das Laden der Batterie blockiere, weil es über den Tag hinweg ausreichend PV Ertrag geben wird (frei nach "Deine Batterie kann mehr"), dann wird zeitgleich auch die Entladung der Batterie zur Deckung des Hausverbrauchs unmöglich. Das kann nicht im Sinne des Betreibers sein, denn ich möchte ja eigentlich das Netz entlasten und nicht auch noch beim morgendlichen Kaffeekochen und Brot toasten Strom aus dem Netz beziehen.

Geschrieben

Das kann ich für meine Batterie so nicht bestätigen (Marstek Venus E 3.0). Genau dafür sind doch die beiden Regelsätze da. Wenn ich das Entladen der Batterie blockiere, kann ich dennoch fleißig PV-Strom laden, wenn ich das Laden blockiere kann die Batterie immer noch Netzbezug regulieren. Da wird noch was in deiner Registerkommunikation falsch sein.

Am 4.3.2026 um 16:52 schrieb laubblaeser:

Ich habe ja über den WEM2 keine Möglichkeit, die Ladeleistung dynamisch auf Basis des Überschusses am Netzanschlusspunkt zu regeln. (Und das soll ja auch explizit nicht der Scope der Warp Batteriesteuerung sein.) Das geschieht nur im Normalfall, also wenn der WR selbst alles regelt, durch die interne Steuerung von Kostal. Echt knifflig.

Genau das soll sie auch nicht machen. Die Regelung bleibt weiterhin bei der Batterie, die Wallbox sagt nur "jetzt gar nicht laden bzw. entladen" oder "jetzt Vollgas laden/entladen". Ist keine Regel für laden oder entladen aktiv steuert einzig und alleine die Batterie das jeweilige laden und entladen unabhängig voneinander.

Geschrieben
  • Autor

Danke für deine Erfahrung mit dem Marstek Speicher. Ich hoffe, es gibt noch ein paar weitere Kommentare, ob das bei allen anderen Herstellern auch so reibungslos funktioniert, z.B. von den Entwicklern mit ihren Testgeräten.

Am 5.3.2026 um 06:57 schrieb MichiLo:

Da wird noch was in deiner Registerkommunikation falsch sein.

Das ist sehr gut möglich, aber meine Erfahrung mit der Modbus Steuerung des Kostal WR sieht gerade eher so aus wie oben beschrieben:

Am 4.3.2026 um 16:52 schrieb laubblaeser:

Es scheint, als ob der Kostal Plenticore WR jegliche Steuerung des Ladeverhaltens einstellt, sobald irgendein externer Steuerbefehl über Modbus eingeht.

  • laubblaeser changed the title to Kostal Plenticore G3 Hybrid-WR
Geschrieben
On 3/5/2026 at 8:53 AM, laubblaeser said:

Danke für deine Erfahrung mit dem Marstek Speicher. Ich hoffe, es gibt noch ein paar weitere Kommentare, ob das bei allen anderen Herstellern auch so reibungslos funktioniert, z.B. von den Entwicklern mit ihren Testgeräten.

Das ist leider von Hersteller zu Hersteller verschieden. Manche Hersteller bilden dass sehr schön ab, da hat gefühlt jemand wirklich drüber nach gedacht. Andere sind da schwieriger. Bisher habe ich es noch bei allen hinbekommen Laden und Entladen unabhängig von einander zu kontrollieren.

Einziges Problem das gerade noch besteht sind SMA ennexOS Geräte, bei denen man die interne Regelung der Batterie wirklich komplett abstellen muss, wenn man extern steuern will. Dann kann man alles unabhängig steuern. ABER dann kann regelt die Batterie garnicht mehr selber und ich kann den Normal/Normal Modus nicht umsetzen. Weil wir eigentlich nicht die Regelung der Batterie übernehmen wollen, sondern nur der bestehenden Regelung Vorgaben machen wollen.

Ich habe gerade noch SAX Power in der Mache. Sobald das durch ist steht Kostal auf der Liste. Ich würde da gerne auf deine Erfahrungen aufbauen und das offiziell in die Firmware bringen wollen.

Geschrieben
  • Autor
Am 5.3.2026 um 10:36 schrieb photron:

Sobald das durch ist steht Kostal auf der Liste. Ich würde da gerne auf deine Erfahrungen aufbauen und das offiziell in die Firmware bringen wollen.

Sehr gerne. Meld dich einfach, wie ich unterstützen kann.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.