NEWS
IOBroker Anbindung an einen Kostal Plenticore
-
Also, zum Aktivieren der externen Steuerung:
- Login via Browser (z. B. Firefox)
- Navigation zu Servicemenü -> Batterieeinstellungen
- Rechtsklick auf die inaktive Auswahlbox, in der "Intern" steht
- Developer Konsole öffnen durch Klick auf "Element untersuchen" (oder vergleichbar in anderem Browser)
- Attribut "Disabled" bei der Selectbox entfernen (Doppelklick auf "Disabled" und löschen, dann Enter)
- Das Auswahlfeld ist nun benutzbar und man kann die Einstellung auch effektiv speichern
- Anschließend sind die Felder wie MinSoC, max. Ladestrom usw. im ModBus auch beschreibbar
-
@StrathCole Ich dachte, Du wolltest erstmal 1-2 Wochen mit der Installation der neuen Firmware warten? War die Neugier dann doch zu groß
Spaß beiseite. Besten Dank für die Informationen! -
@ak1 So ist es. Neugier war zu groß, welcher Datentyp das nun sein soll – und da Kostal mir nicht geantwortet hat, musste ich es selbst rausfinden.
-
Ich habe die Steuerung auch einmal testweise aktiviert. Es funktioniert tatsächlich. Ich hatte noch 40% Ladung in der Batterie und eine Entladung von 700W. Habe dann die externe Steuerung aktiviert und via Modbus das Register 1040 auf 50W gesetzt. Wenige Sekunden später sank die Batterieentladung auf 48W und der Rest wurde aus dem Netz bezogen.
Ich habe dann mit dem o.g. Trick wieder auf interne Steuerung gestellt und schon hat der Kostal den Registerwert wieder auf ~4750W gesetzt.
Wichtig ist wohl: Auch wenn man die Steuerung aktiviert und den Wert setzt, schwankt dieser etwas. Habe im Test auf 100W gesetzt und der ModBus Wert schwankte anschließend um ein paar W nach oben und unten.
-
Was ich noch nicht rausgefunden habe ist, was der Timeout-Wert bedeutet und bewirkt. Ich vermute einfach mal, dass er automatisch die interne Steuerung nutzt, wenn nicht via ModBus etwas ausgelesen oder geschrieben wird (vielleicht sogar nur geschrieben):
-
Interessant ist auch Register 1064. Das enthält nämlich jetzt die insgesamt bisher ins Netz eingespeiste Strommenge in Wh (bei mir etwa 6000000.0).
-
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
- Attribut "Disabled" bei der Selectbox entfernen (Doppelklick auf "Disabled" und löschen, dann Enter)
Boar wie billig umgesetzt. An so eine einfache Umgehung hab ich nicht mal gedacht, obwohl ich beruflich genau mit sowas zu tun hab.
Aber gut für uns.
Hab nun auch mal paar 1000er Register mit plausiblen Werten im Modbus Adapter mit Float.
Komisch, dass andere WR Werte schon immer Float sind, dann aber auch in der Spec als "Float". Also entw ist R32 das selbe oder die haben ihre Spec falsch.
Würdest du es denn schaffen über deinen Adapter die Umschaltung zw "interner Steuerung" (quasi automatisch) und temp. Steuerung mittels Modbus per http request umzusetzen?
Dann könnte man in einem Skript mit deinem Adapter umstellen und den Rest über den Modbus Adapter setzen.
Und später einfach wieder auf "intern" stellen und alle Werte werden ja demnach auf Standard resettet. -
@Diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:
Boar wie billig umgesetzt. An so eine einfache Umgehung hab ich nicht mal gedacht, obwohl ich beruflich genau mit sowas zu tun hab.
Hätte ich auch nicht erwartet. Aber ich wollte es ausprobieren, da es ja nur ein "disabled" Feld war in einem Bereich, den man sonst als Enduser normal nutzen kann.
@Diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:
Aber gut für uns.
Hab nun auch mal paar 1000er Register mit plausiblen Werten im Modbus Adapter mit Float.
Komisch, dass andere WR Werte schon immer Float sind, dann aber auch in der Spec als "Float". Also entw ist R32 das selbe oder die haben ihre Spec falsch.Ich vermute mal, dass sie "Float" nicht mehr nutzen wollen, sondern die Bezeichnungen vereinheitlichen, was dann bei Float "Real 32 Bit" (R32) sein müsste. Sie haben aber die alten Spec nicht bearbeitet und auch die "Legende" am Anfang nicht.
@Diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:
Würdest du es denn schaffen über deinen Adapter die Umschaltung zw "interner Steuerung" (quasi automatisch) und temp. Steuerung mittels Modbus per http request umzusetzen?
Dann könnte man in einem Skript mit deinem Adapter umstellen und den Rest über den Modbus Adapter setzen.
Und später einfach wieder auf "intern" stellen und alle Werte werden ja demnach auf Standard resettet.Das sollte "problemlos" gehen, weil ich ja nicht das Formular absende, sondern die Werte direkt an die interne Api. Muss nur schauen, wie der Wert heißt, dann müsste das möglich sein.
-
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Das sollte "problemlos" gehen, weil ich ja nicht das Formular absende, sondern die Werte direkt an die interne Api. Muss nur schauen, wie der Wert heißt, dann müsste das möglich sein.
Dann hätte sich das Firmware Update ja tatsächlich gelohnt, weil wir nahezu vollen Einfluss auf Ladung/Entladung nehmen können. Wenn man den max SOC auf den aktuellen SOC setz, dürfte er ja auch nicht mehr weiter laden oder?
-
@Diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Das sollte "problemlos" gehen, weil ich ja nicht das Formular absende, sondern die Werte direkt an die interne Api. Muss nur schauen, wie der Wert heißt, dann müsste das möglich sein.
Dann hätte sich das Firmware Update ja tatsächlich gelohnt, weil wir nahezu vollen Einfluss auf Ladung/Entladung nehmen können. Wenn man den max SOC auf den aktuellen SOC setz, dürfte er ja auch nicht mehr weiter laden oder?
Davon gehe ich aus.
Bezüglich der Steuerung (soeben hinzugefügt in git Version r226):
-
Da ich keine Zeit hätte, jetzt im Adapter noch Modbus einzubauen, wäre meine Idee, dass ich neue Datenpunkte einfüge wie
devices.local.battery.suggested_charge_max
oder so, in den ich dann anhand der Prognosedaten Werte schreibe (z. B. 1000W oder 0W). Dann kann man auf den Datenpunkt mit einem Skript lauschen und ggf. Modbus über den anderen Adapter ansteuern. Entweder via MaxSoC oder eben mit dem max(dis)charge. -
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Da ich keine Zeit hätte, jetzt im Adapter noch Modbus einzubauen, wäre meine Idee, dass ich neue Datenpunkte einfüge wie
devices.local.battery.suggested_charge_max
oder so, in den ich dann anhand der Prognosedaten Werte schreibe (z. B. 1000W oder 0W). Dann kann man auf den Datenpunkt mit einem Skript lauschen und ggf. Modbus über den anderen Adapter ansteuern. Entweder via MaxSoC oder eben mit dem max(dis)charge.Gerade gesehen, dass ich das gar nicht brauche. Jeder kennt ja die Kapazität seiner Batterie und es gibt bereits den Datenpunkt
forecast.day1.power.remaining
. Damit sollte man die Steuerung eigentlich gut erledigen können oder zumindest das Abschalten der Ladung erzwingen. Entweder über Register1038
(max. Ladepower) oder via Register1044
(Max SoC). -
Übrigens ein interessanter Fact:
Ich habe eine Batteriekapazität von etwa 8.960W. Laut Datenblatt von BYD heißt es:
Max. Ausgangsleistung: 8,96 kW
Peak Ausgangsleistung, 5 min: 17,92 kWMeine Beobachtung war allerdings, dass Kostal den Wert auf 50% der Kapazität also 4,9kW gedrosselt hat. Auch die Inhalte von Register
1040
sprechen dafür (bei mir 4.750W).Aber: Im Modbus Register
1076
steht: 7.896W (Wert für max. Eingangsleistung) und in Register1078
steht 18.244W (Wert für max. Ausgangsleistung) – das entspricht etwa dem Datenblatt von BYD. Für mich bedeutet das, dass ich bisher bei Kostal unnötigerweise im Sommer bei Verbrauchspeaks aus dem Netz bezogen habe (war auch meine Beobachtung), da unsere Heizung ab und zu mal 10kW zieht, wenn Warmwasser und Heizung gleichzeitig laufen.Mir erschließt sich nicht ganz, warum die Entladung auf 50% der möglichen Dauerleistung begrenzt wird, denn es handelt sich ja nur um die maximale Leistung, die im Regelbetrieb sowieso selten erreicht wird.
-
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Mir erschließt sich nicht ganz, warum die Entladung auf 50% der möglichen Dauerleistung begrenzt wird, denn es handelt sich ja nur um die maximale Leistung, die im Regelbetrieb sowieso selten erreicht wird.
Steht ja so im Datenblatt mit der HV Box, dass die maximale Entladeleistung auf ca. 50% der Batteriekapazität begrenzt ist. Mit den neuen Boxen ist das übrigens aufgehoben .....
Das war für mich der Grund von 6.4 auf 10.2 Kwh aufzurüsten, damit mindestens 2 Herdplatten betrieben werden können.
-
@tom57 wo steht denn das? Finde ich bei mir im Datenblatt nicht.
-
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
wo steht denn das? Finde ich bei mir im Datenblatt nicht.
DB_PLENTICORE-plus_Fact-sheet_SPI_BYD_de.pdf
Was auffällt ist, dass für die ganze Baureihe der Plenticore die gleiche Begrenzung für den DC/DC-Wandlers des Batterie-Strings gilt: Also ca. 50% der Batteriekapazität. Dann kommt der DC/AC Wandler des Plenticore der je nach Leistungsklasse die AC-Ausgangsleistung begrenzt (siehe Seite 2 - Fluss Batt2AC).
Ich vermute, dass diese Leistungs-Begrenzung per Software in Abstimmung Kostal-BYD umgesetzt wurde, damit die 10 Jahresgarantie von BYD hinsichtlich der Batteriezellen-Lebensdauer eingehalten werden kann. Die neue Batteriegeneration von BYD hat neue Zellen, welche höhere Stromdichten vertragen können. Damit entfällt dann diese Restriktion.
Mir war aufgefallen, dass beim Kochen (2 Herdplatten und ggfs. Backofen) bzw. beim Parallelbetrieb von Waschmaschine + Trockner bei 6.4 kWh Batterie der Netzbezug anstieg, obwohl die Batterie voll war.
Jetzt mit 10.2 kWh Batterie ist der Autarkiegrad von 78% auf 88% gestiegen. Ob das den Preis der 3 Module rechtfertig war mir nicht so wichtig. Ich habe aber nun auch weniger Zyklen pro Monat, wodurch sich die Lebensdauer erhöhen sollte (ca. 160 p.a). BYD gibt ja 3000 Zyklen als Lebensdauer an. Mal sehen ....
-
@tom57 Das finde ich aber nicht in Ordnung. Beim Kauf der BYD bzw. der Entscheidung dafür, habe ich mich ja nach dem Datenblatt der BYD B-Box HV gerichtet. Dort steht als nutzbare Kapazität 8,96 von 8,96 kWh (also bis runter auf 0% SoC) und bei der maximalen Leistung eben 8960 bzw. kurzfristig sogar das Doppelte.
Siehe https://www.sonnenshop.de/media/pdf/83/de/a4/b-box_hv_datenblatt.pdf ganz unten.
Bei der Kombi mit SMA Sunnyboy oder wie der heißt sind auch keine Limitierungen dieser Art wie bei Kostal angegeben. Ich muss da wohl noch mal ein ernstes Wort mit meinem Installateur sprechen.
-
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Bei der Kombi mit SMA Sunnyboy oder wie der heißt sind auch keine Limitierungen dieser Art wie bei Kostal angegeben. Ich muss da wohl noch mal ein ernstes Wort mit meinem Installateur sprechen.
Mein Installateur war bei diesem Thema überfordert, bzw. kannte diese Restriktion nicht. Auch mir als Ingenieur (E-Technik) war das bei der Bestellung nicht aufgefallen.
Rein technisch kann die alte HV-Batterie mehr. Höhere Entladeströme haben aber auf jeden Fall einen negativen Einfluss auf die Lebensdauer ... mehr als der SoC. Das ist ggfs. eher ein Thema was Du mal mit EFT als Distributer der BYD-Box besprechen solltest. Die antworten auch ... im Gegensatz zu Kostal.Für mich ist das aktuell kein Thema, da ich den Plenticore 5.5 habe und mit Gas heize. Also passen jetzt die Leistungsklassen des WR und der BYD Batterie zusammen. Meiner Frau sage ich, Sie soll bei Sonnenschein waschen ... Vielleicht kannst Du deinen Stromverbrauch ja auch entsprechend anpassen, damit die Heizung bei Sonnenschein den Pufferspeicher lädt.
-
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Also, zum Aktivieren der externen Steuerung:
Login via Browser (z. B. Firefox)
Navigation zu Servicemenü -> Batterieeinstellungen
Rechtsklick auf die inaktive Auswahlbox, in der "Intern" steht
Developer Konsole öffnen durch Klick auf "Element untersuchen" (oder vergleichbar in anderem Browser)
Attribut "Disabled" bei der Selectbox entfernen (Doppelklick auf "Disabled" und löschen, dann Enter)
Das Auswahlfeld ist nun benutzbar und man kann die Einstellung auch effektiv speichern
Anschließend sind die Felder wie MinSoC, max. Ladestrom usw. im ModBus auch beschreibbarKönntest Du mir nochmal helfen? Wie genau starte ich unter Firefox die Developer Konsole?
.... War zu blöd ... hat nun geklappt.Danke für die Anleitung !!!
-
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Damit sollte man die Steuerung eigentlich gut erledigen können oder zumindest das Abschalten der Ladung erzwingen. Entweder über Register 1038 (max. Ladepower) oder via Register 1044 (Max SoC).
So ich habe jetzt die Steuerung über Modbus erfolgreich aktiviert. Woher wisst ihr die Register-Nummern? Die stehen ja nicht in der Download-Doku - oder ?