ich weiß nicht, wie stark ihr in dem Thema schon involviert seid. Ich habe bei mir einige Programme mit Hilfe von Programmiertools wie Zenflow und Codex schreiben bzw. optimieren lassen. Mein Ziel ist es, möglichst viel von dem ganzen Python-Kram auf C umzustellen, damit ich auf dem Raspberry Pi Zero 2 W möglichst ressourcenschonend in Bezug auf RAM und CPU arbeiten kann. Theoretisch könnte man natürlich sagen, ich hätte einfach einen Mini-PC mit 2 GB RAM nehmen sollen, aber genau das wollte ich bewusst nicht.
Mein ursprüngliches Problem war, dass mein Raspberry Pi Zero 2 W mit 5 BMS und 6 Kostal-Wechselrichtern beim RAM schon ziemlich ausgelastet war.
Ich habe dann zuerst die Kostal-Integration von 5 einzelnen Python-Skripten auf ein Sammelskript umstellen lassen und dieses anschließend durch eine in C geschriebene Version ersetzt. Der RAM-Verbrauch ist dadurch von etwa 50 MB auf etwas unter 10 MB gesunken.
Danach habe ich SerialBattery im gleichen Stil erst auf eine Sammelversion und dann auf C umstellen lassen.
BatteryAggregator ebenfalls.
Außerdem habe ich einen Shelly 3EM als EVSE-Ladestation ins VRM-Portal integriert.
Aktuell bin ich dabei, die Balancer per Bluetooth über den Raspberry Pi Zero 2 W fernzukonfigurieren. Dafür habe ich testweise eine HTTP-Konsole aufgesetzt. Das Ergebnis ist bislang okay bzw. brauchbar. Siehe Foto.
Was ich zukünftig noch plane umzusetzen:
-
Die HTTP-/Fernkonfigurationslösung aus Punkt 5 auch zur Fernkonfiguration der JBD-BMS verwenden.
-
Dieses Script anschließend ebenfalls auf C umstellen.
-
Die Wirkleistungsbegrenzung des Kostal Smart Energy Meter vollständig durch Venus OS emulieren.
-
Eine Blackbox entwickeln lassen, die eine BYD-HV-Batterie zwischen zwei Kostal Plenticore Hybrid-Wechselrichtern verteilt und auch zum Stromaustausch zwischen den beiden Hybrid-Wechselrichtern genutzt werden kann, also praktisch zum Energieaustausch zwischen zwei Häusern.
Ich tue mich allerdings etwas schwer damit, den Quellcode einfach öffentlich zu veröffentlichen, weil ich ihn nicht klassisch selbst programmiert habe, sondern mit Hilfe von KI-Anwendungen habe erstellen bzw. anpassen lassen. Der Code ist teilweise ziemlich universell gehalten, teilweise aber auch schon recht stark auf meine konkrete Hardware zugeschnitten. Außerdem habe ich wenig Zeit, mich danach noch um Support oder ähnliche Themen zu kümmern.
Daher einfach die Info an euch: Wenn jemand meinen eingesetzten Code als Basis braucht, kann er ihn gerne persönlich von mir bekommen. Speziell die C-Programme sind vom Ressourcenverbrauch her aus meiner Sicht überhaupt nicht mit den Python-Versionen zu vergleichen.
Ich denke aber auch, dass jeder, der den Code nutzen möchte, entweder ziemlich gute Programmierkenntnisse mitbringen oder ebenfalls brauchbare KI-Tools einsetzen sollte.
Hier mal ein Bildchen der Balancer-Konfig:
