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.

Batteriesteuerung: 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

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

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.