Vorstellung des HJDC - (H)ome Assistant (J)K-BMS (D)eye (C)ontroller:
Github
Ziel dieses Projekts war es für mich einen Controller zu entwickeln der zwischen JK-BMS und Deye Wechselrichter platziert wird,
um die Schwächen des JK-BMS aufgrund der fehlenden Kommunikation auszumerzen.
Dieser Controller liest die Werte des JK-BMS und übermittelt sie zum Deye und simuliert dabei, dass er eine Pylontec Batterie ist.
Zusätzlich liest er die Werte des Deye aus und liefert sie an Home Assistant und kann dessen Konfiguration auch modifizieren.
Auch die BMS Werte werden an Home Assistant kommuniziert.
Features:
- Es kann eingestellt werden, aller wie viel Tage die Batterie ein Top-Balacing ausführen soll. Dazwischen wird sie nur auf einstellbare Prozent (Bsp. 90%) geladen. Nur zum balancen wird die Spannung erhöht und fast zu 100% geladen. Denn auch wenn die Batterie nur zu 3.46V pro Zelle geladen wird, bedeutet dies schon etwa 99%. Es wird also vermeiden, dass dies täglich geschieht. Das sollte die Lebensdauer der Batterie erhöhen. Aus meinen Erfahrungen sollte mit gut eingestellten Werten (unnötiges Balancen wird verhindert) ein wöchentliches Balancen ausreichend sein.
- Es kann eingestellt werden, bis wie viel Prozent (Bsp. 15%) die Batterie minimal entladen werden darf.
- Stufenlose Reduzierung der Lade- und Entladeleistung (sogar bis 0A) , wenn: - Batterie zu kalt - Batterie zu warm - BMS zu warm - Einzelne Zelle zu hohe Spannung - Einzelne Zelle zu niedrige Spannung Damit wird verhindert, dass das BMS beim laden oder entladen aufgrund von Grenzwerten komplett abschaltet. Bevor irgendwelche Grenzwerte des BMS erreicht werden, wird die Leistung schon reduziert. Die Grenzwerte werden von den Einstellungen des BMS gelesen und verwendet.
- Die maximale Lade und Entladeleistung kann eingestellt und jederzeit in Home Assistant modifiziert werden.
- Auch Laden und Entladen kann man aus und wieder einschalten, ohne es im BMS zu deaktivieren, indem der Controller dem Wechselrichter sagt, dass er nicht laden oder entladen soll.
Stromversorgung:
Der Controller wird vom BMS versorgt. Somit ist die einzige Verbindung zum Deye ein Standard LAN Kabel.
Leitungsschutzschalter sollten idealerweise auf dem (+) Kabel verbaut werden.
Somit haben das BMS und der DEYE das gleiche potenzial, da Sie über (-) verbunden sind.
Lesen und modifizieren des Deye:
Zusätzlich können mit dem RS485 Modul Werte des Wechselrichters in hoher Frequenz gelesen und zudem auch modifiert werden.
Dies würde die wöchentlichen Balancen auch ermöglichen, ohne ein JK-BMS zu verwenden.
Dazu müsste man aber Automationen in Home Assistant hinzufügen, welche dann die erlaubten Ladeampere auf 0 begrenzen wenn 90% erreicht sind.
In meinem Falle macht dies der Controller selbst.
Zusätzlich ist es möglich einen weiteren NTC Temperatur Sensor zu verbauen (Platine ist dafür vorbereitet). Dieser war ursprünglich dazu gedacht die Kabeltemperatur zu messen, und bei Grenzwerten die Leistung zu reduzieren.
Jedoch hat sich herausgestellt das das BMS selbst etwas wärmer als das Kabel wird. Somit reicht es die Leistung beim überschreiten der BMS Temperatur zu reduzieren.
Somit könnte man den zusätzlichen Sensor auch zum messen der Raumtemperatur verwenden.
Möglicherweise könnte daraus ein Sicherheitsfeature werden wenn die Raumtemperatur aufgrund eines Brandes sprunghaft ansteigt.
Empfohlene Werte:
Nach wochenlangen Tests empfehle ich für 16 Zellen die Ladespannung auf 55.3V (3.456 V/Zelle) zu stellen. Dies ist nötig, um die überhaupt einen Drift der Zellen feststellen zu können.
Die "Start Balance Volt.(V)" im BMS sollte auf 3.45V gestellt werden. Somit wird überhaupt nur gebalanced, wenn die Batterie schon nahezu 100% geladen ist.
Unnötiges balancen bei Spannungen, die darunter stattfinden aufgrund von unterschiedlichen internen Widerständen der Batterie oder Verkabelungen, werden somit vermieden.
Die "Balance Trig. Volt.(V)" kann man auf den minimal Wert 0.003 V stellen. Denn der Controller beendet das Balancen schon, wenn über 1 Minute lang das Delta ≦ 0.005 V ist.
Dies ist nützlich um dauerhaft zu balancen und nicht immer nur zu warten bis eine Zelle mal wieder über 0.005 V ist.
Zudem muss die höchste Zelle über der "Start Balance Volt.(V)" sein und der Ladestrom unterhalb von 2A.
Dann entscheidet der Controller das die Zellen ausreichend gebalanced sind und führt das nächste Balancen erst wieder nach Tagen (einstellbar) aus.
Platine:
Ich habe ein paar Testplatinen herstellen lassen um alle Komponenten vernünftig zu verbinden so das nur ein 4 pin Stecker zum BMS und ein LAN Kabel zum Deye führt.
Eine zusätzliche Stromversorgung ist nicht notwendig, der Controller wird vom BMS mittels 60V/5V DC/DC Wandler versorgt.
Verwendet wird ein Wemos Esp32 S2 Mini. Denn dieser hat einen geringeren Stromverbrauch als ein Standard Esp32 Dev01 Bord.
Jedoch kann die Software auch mit einem normalen Esp32 Dev01 verwendet werden. Nur die Pins müssten umkonfiguriert werden.
Die Platine ist nicht zwingend notwendig und man könnte es auch selbst auf einer Lochrasterplatine nachlöten.
Jedoch könnte ich fertige Sets inklusive Platine und allen Komponenten bei entsprechender Nachfrage anbieten.
Lasst mich bitte wissen was Ihr zum Projekt denkt und ob Interesse an einer Kleinserie besteht.
Hier ein Video vom Top-Balancing nach 5 Tagen täglichen laden bis nur 90% und entladen bis 30%.
Top Balancing wird beendet wenn für länger als 1 Minute folgende 3 Bedingungen zutreffen.
- max Zelle > 3.45V
- Ladestrom kleiner 2A
- Delta der Zellen nicht grösser als 0.005
Danach wird wieder für mehrere Tage nur bis 90% (einstellbar) geladen.