@indie
Ja, das sollte vermutlich gehen. Ein ganz ähnliches habe ich hier auch herumliegen und das läßt sich auf jeden Fall auch über einen ESP32 GPIO schalten. Gemäß Beschreibung ja sogar über 3,3V, also müsste es auch OHNE LevelShifter gehen.
Ich schalte aber wie gesagt momentan einfach das ganze Netzteil DC seitig über ein Shelly.
Ich bin auf jeden Fall sehr gespannt auf das automatische regeln des Huawei Netzteil.
Das wäre wirklich sehr cool. Ein paar Komponenten habe ich schon da (Netzteil, ESP, NRF+ Modul)
ich muss noch meine Alten um Starterlaubnis fragen, dann wird das mein Sommer Projekt.
Werde auf jeden Fall weiter den Thread hier verfolgen und hoffentlich auch selbst bald was Berichten können.
Kurzer Bericht: hab mir das Relay Bord mit 3V3 geholt und es funktioniert!
Allerdings nur mit V2023.6.14 . Die neue Version (2023.7.4) hab ich kurz mit einem neuen PIN Profil hochgeladen (was man ja offensichtlich mindestens einmalig muss, da zumindest die Huawei PINs im pre-compiled nicht drin sind) und ausprobiert, aber da hat (obwohl die Kommunikation mit dem Huawei grundsätzlich funktioniert hat) die Schaltung des Slot-detect (ergo der mqtt Befehl zum Schalten von GPIO33) dann nicht mehr funktioniert. Schau ich mir die Tage mal an, ob das an irgendwas bei mir liegt, so lange bleibe ich aber bei V2023.6.14, die funktioniert. (bin noch am Trockenschwimmen, das Netzteil ist noch an keiner Batterie, meine Zellen sind die Tage gekommen und ich bastle die nächsten Tage dann mal).
Ich habe meine Lösung jetzt etwas modifiziert:
- Zum einen habe ich (wie von @bibabuz vorgeschlagen) ein Auslesen der Pylontech-Akkus über den Console-Port ergänzt, angelehnt an https://github.com/irekzielinski/Pylontech-Battery-Monitoring Allerdings habe ich nur die dort vorgeschlagene HW verwendet, dann einen separaten ESP32 mit ESPHome und dem Stream Server (https://github.com/mletenay/esphome-stream-server) verwendet, um die Serielle Schnittstelle über IP auslesen zu können. Dazu habe ich einen Node-Red-Flow gebaut, der dann über TCP Stream die Console des PylonTech abfragt. So kann ich die Spannung der einzelnen Zellen monitoren. Aktuell liegt die maximale Spannungsdifferenz zwischen der Zelle mit der maximalen und der mit der minimalen Spannung und bei 100% SoC bei ca. 10mV - das ist m.W. auf jeden Fall OK und unterhalb der Schwelle, wo der Balancer überhaupt aktiv wird. Mal gucken, wie sich das so über die Zeit entwickelt. Wenn das weiter auseinanderläuft, dann kann man ja mal längere "Absorbtion" Phasen am Ende des Ladens starten.
- Zum anderen habe ich an den ESP einen "Volkszaehler" Sensor für das Ablesen des Stromzählers angebunden. Bisher hatte ich den Stromverbrauch nur von dem Huwaei Smart Meter DTSU666, aber das kann man max. 1 mal pro Minute auslesen. Daher war die Steuerung immer etwas träge. Das Auslesen funktioniert über ESPHome auch recht gut. Den aktuellen Wert liest OpenDTU dann über die REST API von ESPHome aus. Für Node-Red kann man sogar die Event Source von ESPHome verwenden und bekommt dann wirklich jede Änderung mit. BTW: Ich habe gesehen, dass man auch in OpenDTU in der PowerMeter Config einen Typ "SML Obis 16.7.0" auswählen kann. In der Doku habe ich nicht gefunden, an welche PINs man den Sensor dann anschließen muss und in der HW-Config gibt es keine Einträge dafür. Im Source habe ich aber in PowerMeter.h ein DEFINE für SML_RX_PIN auf PIN 35 gefunden und entsprechende Auslese-Methoden in PowerMeter.cpp (PowerMeterClass::smlReadLoop()). Also vermutlich kann man an GPIO 35 auch direkt einen SML Sensor anschließen. (Einen TX braucht man nicht, weil man ja nur den Sensor liest).
Frage, wie wird die Pylontech Batterie mit dem ESP32 verbunden, welches CAN modul brauche ich dafür.
Kann jemand ein Link oder so schicken?
Hab nur auf dem Wiring Diagram gesehen, dass es nochmal ein zweites CAN Modul gibt (also eins fürs Netzteil und eins für die Batterie).
Hab ich das richtig verstanden?
@energy-geek : Das ist auf OpenDTU-OnBattery/docs/hardware_flash.md at master · hoylabs/OpenDTU-OnBattery · GitHub eigentlich gut beschrieben:
Für den Pylontech wird ein SN65HVD230 CAN Transceiver verwendet. Das ist deutlich einfacheres und billigeres Modul als das für das Huawei, weil nur ein Transceiver, kein CAN COntroller enthalten ist.
BTW: Aufpassen beim Verdrahten des Moduls: da gibt es viele Varianten, bei denen die Beschriftung auf der Ober- und Unterseite der Platine nicht zusammenpassen. KOrrekt ist die Beschriftung auf der bestückten Seite (wenn ich mich recht erinnere)
Mal eine ganz andere Frage: Nachdem die Lösung bei mir jetzt siet 1 Monat stabil läuft, würde ich die gerne auch korrekt anmelden. Da ich ja den offiziell erlaubten Hoymiles 600 im Einsatz habe, dürfte das doch eigentlich kein Problem sein, oder?
Frage ist nur: als was melde ich das an? Als Erweiterung der bestehenden 12 kWp Anlage mit einem Akku 4,5 kWh? Oder als Balkonkraftwerk - wobei ich da aktuell ja gar keine Solarmodule dran habe, sondern nur über das Netzteil lade.
@cacu15 Ich habe zwar selber noch keine Anmelde Erfahrung aber ich würde das als AC gekoppelten Speicher anmelden,
wenn du nur über das Netzteil lädst. Weil mit Balkonkraft hat das ja nicht mehr direkt zu tun, wenn du kein DC Laden verwendest und Überschuss von einer
großen 12kWp Anlage speicherst. Solche "Nachrüstungs Speichersysteme" die mit Wechselrichter und AC/DC Netzteil an Batterie arbeiten, gibt es ja auch als Komplettsysteme auf dem Markt. Und die würde man sicher auch als Speicher und nicht als Balkonkraft anmelden.
Frage an jemand, der openDTU-OnBattery laufen hat: Speist das Projekt Überschuss ein? Wenn ja, speist es auch ein, wenn der Akku voll, bzw auf dem Weg dahin ist?
Die Steuerung von Telekatz über das Venus OS speist erst ab 100% SoC ein und vorher beginnt der MPPT mit der Abregelung, weil der Akku nicht mehr voll zieht. Hier werden Sonnenstrahlen nicht genutzt, die man eigentlich auch einspeisen könnte. Aber man bekommt vom MPPT imho nur V, A und die Info, dass abgeregelt wird. openDTU-OnBattery scheint hier laut dem Code (OpenDTU-OnBattery/src/PowerLimiter.cpp at master · hoylabs/OpenDTU-OnBattery · GitHub) einfach nur V*A zu rechnen und müsste dann genauso in die Abregelung laufen, oder?
Ich hab noch eine Frage zu Anschluss und Steuerung vom Slot Detect des Netzteils. Ich verstehe das so, das Relais soll einfach den Slot Detect Pin vom Netzteil mit DC- vom Netzteil verbinden, dass dieses angeht bzw. anbleibt bis es nicht mehr Laden soll. Der Logic Level Converter ist wohl für 3.3V zu 5V da. Aber welcher GPIO Pin am ESP steuert jetzt das Relais an? mir erscheint was Wiring Schema unvollständig, auf der linken Seite des Konverters
gegenüber von der Leitung die zum Relais führt ist gar keine Leitung angeschlossen, die zum ESP führt, also wie wird das Relais jetzt überhaupt ausgelöst?
Ich habe eigentlich eh vor das Relais und den Converter loszuwerden, weil ich kein Victron habe und den Slot Detect einfach per Transistor schalten will, aber das geht natürlich nicht wenn ich nicht verstehe, über welchen GPIO Pin der ESP überhaupt das Schaltsignal für Slot Detect ausgibt.
Desweiteren wundert es mich auch dass die Schaltung funktionieren soll, ohne das die 3.3V Referenz Spannung an der linken Seite des Konverters in der Mitte anliegen (analog zur rechten Seite, wo die 5V angeschlossen sind).
@energy-geek
Richtig, das fehlt auch m.E. eine Verbindung im Wiring-Diagramm. Im "Device Manager" von OpenDTU kann der PIN am ESP32 konfiguriert werden mit der Einstellung "Huwei - Power". Kann man aber auch beim Bau der Firmware schon über eiN Device Profile auf einen anderen PIN legen, siehe OpenDTU-OnBattery/docs/DeviceProfiles.md at master · hoylabs/OpenDTU-OnBattery · GitHub
Im Standard ist das m.W. auf PIN 33. Wenn man ein Relais verwendet, dass mit 3,3V klar kommt, dann kann man den LevelShifter weglassen, hatte ich bei mir auch mal so.
@energy-geek
Danke.
Habe ich jetzt genau so gemacht, ging einfacher als gedacht. Mal gucken, was passiert.
Ja und ja
Du kannst einen SoC Wert festlegen ab dem der Akku als voll betrachtet wird. Ab diesem Punkt wird der Wechselrichter entsprechend der Victron MPPT Leistung gesteuert. Dabei gilt genau das was du auch ansprichst: Du willst das dieser Punkt erreicht wird bevor der Laderegler anfängt abzuregeln. Ich habe meinen Victron Laderegler entsprechend den Werten den Victron vorgibt, eingestellt. Der SoC Wert für "Full Solar pass-through" (So heißt das Feature) ist bei mir dann so auf 85-88% gestellt. Ab dem Punkt verhält sich das ganze System wie ein klassischer Wechselrichter.
Dieses Verhalten kann man übrigens auch über MQTT unabhängig vom Akkustand einschalten. Ich verwende das gelegentlich wenn ich das E-Auto lade. Ich glaub ich hab das Power Limter Mode oder so genannt. Beschreibung ist in der Doku ganz unten.
@maltes Danke dir. Klingt auch echt spannend. Ich habe eben meinen Venus OS Raspberry neu aufgesetzt, weil ich ihn mit Node Red überlastet und damit in einen Boot-Loop geschickt hab. Und beim Aufsetzen wurde mir klar, was für ein Unrat das alles ist... Vielleicht sind die 2 Drähte mehr an dem ESP dem ganzen doch vorzuziehen...
Aber wie lädt man den Akku dann mal auf 100%? Muss man dann irgendwo ein Script haben, dass die Steuerung doch einmal pro Woche deaktiviert?
Oder was, wenn man mehr PV Leistung als Wechselrichter Leistung hat? Dann läuft er doch automatisch auf die 100% zu und wird dann durch den Laderegler abgeregelt.
Ich mache das nicht. Lifepo4 soll man ja nicht voll laden. (Außer LFPs) Man könnte aber den Power limiter manuell oder per MQTT abschalten. Dann läd der Akku voll.
Ja das ist unvermeidlich. Das ist aber ein Auslegungsproblem. Da musst du schon mit dem Finger auf dich zeigen wenn das passiert ![]()
Wenn mein Akku durch den Laderegler einen bestimmten Ladestand erreicht hat, schicke ich die Leistung, die mir der Laderegler meldet, direkt - mit kleinem Abzug um ein Schwingen des Systems zu vermeiden - an den Entladewechselrichter. Dadurch hält der Akku den restlichen Tag diesen Ladestand und wird erst gegen Abend auf den endgültigen Stand aufgeladen. Opendtuonbattery kann das wohl auch automatisch. Da wird dann nix verschenkt.
@bibabuz aber was passiert, wenn du 2000Wp Panels an den Laderegler hängst, aber der Wechselrichter nur 600/800W fressen kann? Der Akku ist dann auf 100% und dann macht der Victron MPPT zu und meldet nur noch das, was aktuell fließt. Du musst dann "raten" was möglich ist und den Wechselrichter hoch drehen und dann abgleichen, ob es noch aus dem MPPT kommt, oder schon vom Akku.
Soweit ich das verstehe, macht das das Telekatz Script so, dass er den Schnitt der PV-Leistung der letzten... 5... Zeit nimmt und dann 25W drauf rechnet und das so Stück für Stück erhöht. Siehe: venus.dbus-hoymiles/HMpvinverter.py at main · Telekatz/venus.dbus-hoymiles · GitHub
So etwas finde ich bei openDTU-OnBattery nicht. Hier OpenDTU-OnBattery/src/PowerLimiter.cpp at master · hoylabs/OpenDTU-OnBattery · GitHub finde ich nur V*I und das sind ja limitierte Werte vom Victron MPPT bei SoC 100%.
Ich glaube du hast die Verwirrung, die ich vor kurzem auch hatte? Oder bin ich doch noch verwirrt? Lifepo4, LFP und NMC...
NMC soll man nicht voll laden, das ist (meistens) in den Autos.
LFP ist LiFePo4 und die Anleitung vom Pylontech sagt z.B.:
Es ist erforderlich, die Batterie mindestens einmal alle 6 Monate aufzuladen; für diese Ladeerhaltung ist sicherzustellen, dass der SOC auf über 90 % aufgeladen ist.
Ah, okay, da hab ich was falsch gelesen. 2000 Wp an nem 600 Watt Laderegler macht tatsächlich va zwischen Mitte Februar bis Ende Oktober wenig Sinn. Da könnte man drüber nachdenken, z.b. 800 Wp direkt an nen hoymiles 1500 anzuschließen und die anderen beiden Eingänge des hoymiles an den Laderegler mit Batterie.
@bibabuz Ich habe bald 3230Wp ?
770Wp vom Balkon, die laufen aktuell schon, sind schön, keine Frage, aber so rechnet sich der Akku nicht und im Winter kommt da halt auch nix mehr... Aktuell kommen mit ach und krach 2kWh in den Akku rein.
Neu dazu kommen dann 6 Panels auf dem Dach, weil wenn man schonmal oben ist wird "die Ecke" voll gemacht. Und der SmartSolar 150/35 frisst die 6 perfekt.
An einem schönen Wintertag hab ich dann auch mal einen vollen Akku und sonst ist im Winter auch die Grundlast gedeckt.
Mein Netzbetreiber bezahlt Einspeisevergütung für Balkonkraftwerke, also warum nicht - von Februar bis Oktober - die 600/800W abgeben? Nur hierfür muss ich irgendwie noch die Steuerung optimieren. Wäre dann ja auch interessant (und Netzdienlich), am Morgens schon einzuspeisen, wenn der Akku noch leer ist und den Mittags dann voll zu machen.
Den Balkon an 2 HM Eingängen wäre auch interessant, aber dafür müsste man doppelt Kabel legen und das ist dann vielleicht im Winter auch wieder doof... Lieber mit 2 MPPTs auf den Akku gehen. Den kann man dann ja auch hoch skalieren.
