ABCDs-Automatic Battery Charger & Discharger Script

Hallo,
Ich hoffe das ist das richtige Unterforum dazu :wink:

Vorstellung des ABCDs - (A)utomatic (B)attery (C)harger & (D)ischarger (S)cript

Die Idee ist entstanden um einen Lumentree mit einem Meanwell NPB mit meiner DIY Batterie zu benutzen.
Ähnlich wie die Trucki Lumentree Stick / Meanwell Stick.
Sozusagen eine Alternative zum Trucki, mit LAN :wink:
Ich wollte die Steuerung selber machen, einen LAN Anschluss und eine OS Alternative schaffen, man braucht ja eine Herausforderung, und es auch ein wenig günstiger haben :wink: )
Zudem kann man damit auch seine eigenen Addons hinzufügen.

Das Ganze als Python Script auf einem RasPi.
An sich geht jeder Raspi, von Zero bis 5, ich persönlich nutze eine RasPi2 weil der schon USB Anschlüsse hat :wink:
Ein Raspi1 mit USB sollte auch problemlos funktionieren, es braucht nicht viel CPU Performance.
Das macht es einfacher bei den USB Adaptern mit RS232/RS484/... (Lumentree, jkbms, ...) Geräten

Dann ist Idee aufgekommen, dieses Script in ein generelles OpenSource Framework umzubauen um beliebige Ladegäte, Wechselrichter,
BMS Systeme und Strom-Meter miteinander zu verbinden.
Man muss nur noch seine Einstellungen machen, die richtigen /dev/... eintragen und los gehts.
Etwas aufpassen sollte man trotzdem :wink:
Es ist auch für alle ein Testscript verfügbar, mit dem man die einzelnen Teile testen kann bevor es losgeht.

Aktuell unterstützt

  • JKBMS (USB-RS485)
  • DALI BMS (USB UART, kein Bluetooth)
  • Fast alle BMS (vermutlich, nicht selbst getestet) die im Venus_Serialbattery Paket enthalten sind.
  • Lumentree 600/1000/2000 oder SUN 1000/2000 RS485 Wechselrichter (SUN selbst nicht getestst sollte aber gehen)
  • Meanwell NPB mit Voltage adjust (Verringerung der Spannung um weniger als min Current zu laden)
  • Meanwell BIC 2200 (auch mit always on, Danke an einen User)
  • Soyo 1000/1200 (hab ich aber nicht testen können, daher Vorsicht)
  • Konstant-Ladegeräte (die einfach nur ein und aus geschaltet werden mittels Steckdose)
  • Strom-Meter Kommunikation mittels Mqtt, Shelly, IOBroker, ...

Komplette Liste siehe Github :wink:

Da ist auch beschrieben welche Zusatz Hardware man noch braucht, wie ein RS485 oder CAN Hat.
Es gibt immer ein Testprogramm für jedes Device, mit dem man erstmal schauen kann ob es funktioniert und wie die Parameter sind.

Das Grundgerüst, Abfrage von Strom und Handling Laden/Entladen, ist für alle gleich.
Die einzelnen Geräte werden dann über ein configfile ausgewählt und können einfach mit neuen Geräten erweitert werden wenn es was Neues gibt.
Ein neues Gerät wird als separate py lib hinzugefügt welche die gesamte Kommunikation übernimmt.
Im Hauptscript gibt es dann nur noch spezifische Lade/Entlade Anpassungen.

Zudem gibt es ein (einfaches) Web Interface (eigener http Server kein apache,...) fürs Monitoring und einige Aktionen kann man starten.
Neustart vom Raspi, starten einer anderen config, ...
Auch kann man einige aktuellen Werte per MQTT versenden und dann weiter auswerten, z.B. Aktuelle Batterieleistung, Laden/Entladen

Da ich nicht die gesamt HW selbst habe, bin ich hier auf Mithilfe angewiesen oder Links auf andere Projekte die mit dem neuen Gerät schon kommunizieren.

Aktuell läuft es seit 12 Monaten (mit Verbesserungen :wink: ) mit einem Lumentree 600 und einem Meanwell NBP-1200 und super stabil.

Die Konfigurationsmöglichkeiten sind recht umfangreich aber ich hoffe gut beschrieben :wink:

Ich hoffe es ist für den einen oder anderen nützlich und es kommen noch weitere Geräte hinzu.
Die Hoymiles müssten auch recht einfache gehen, da gibt es schon diverse Projekte, aber mangels HW kann ich das nicht selbst machen.

Fragen Anregungen gerne :slight_smile:

2 „Gefällt mir“

Update 0.5.1
MaxChargeCurrent kann über das Web Interface eingestellt werden.
Per Button oder direkt per URL
Vorbereitung um die Leistung per HA/IObroker, ... einstellen zu können.
Die Idee war die PV-Ertragsleitungs im IOBroker abzufragen und dann ggfs erst später die Batterie zu laden, je nach Sonne.
Oder einfach langsamer zu laden um die Batterie zu schonen, je nach Wetter.
Der Wert kann absolut, dann muss man wissen in welchen Rahmen er sich bewegt (wird aber überprüft) oder in Prozent sein 0..100.