Wie speichere ich nur den Photovoltaik Überschuss gesteuert durch Home Assistant mit einem Meanwell Ladegerät in einer Batterie?


Dies ist ein Beitrag für fortgeschrittene Bastler die schon einiges an Erfahrung mit Home Assistant und mit der Arbeit mit Elektronik haben.

Warum sollte ich meinen Photovoltaik Überschuss in eine Batterie speichern?

Wenn die Sonne voll scheint ist im Stromnetz teilweise zu viel Solarstrom. Das bedeutet dass der Preis in den Keller geht und das die Netze eventuell damit Schwierigkeiten haben den Strom zu verteilen. Wenn der Strompreis sogar negativ wird bezahlen wir alle mit dem Anteil des Strompreises, der Netzentgelt genannt wird, dafür, diesen Strom los zu werden. Ausserdem kriegen dann neuere Photovoltaikanlagen in dieser Zeit keine Einspeisevergütung mehr. Wenn die Netze an ihre Grenzen kommen kann es sein, dass bestimmte Erzeuger (auch private Photovoltaik) gedimmt werden, dass heißt aktiv daran gehindert werden mehr als 4,2 kW ins Netz zu geben.

Warum nicht ein fertiges System nehmen z. Bsp. die AC-gekoppelten (Alternating Current – also Wechselstromgekoppelte) Speicher von Marstek oder Hoymiles oder Ecoflow?

Weil ich von meinem Boot 2 kWH grosse Batterien übrig hatte. Für jemanden, der keine Lust hat darauf, sich selbst was zu basteln, sind diese Speicher sicherlich viel einfacher. Wichtig ist bei den oben angegebenen fertigen Lösungen hier darauf zu achten, dass ihr den Überschuss so messen könnte, dass sich der Speicher mit dem Messgerät (evtl. von einem anderen Anbieter) verbinden kann.

Welche Komponenten mit welchen Fähigkeiten brauche ich?

Ich spreche hier nur von Lithium Eisenphosphat Batterien (LiFePo4) weil diese der Standard sind für günstiges Strom speichern im Hause oder im Boot (und teilweise auch im Auto). Ich habe 24V Batterien aus meinem Boot genommen die zusammen 100 Ah Kapazität haben, die also 2,4 kWh Strom speichern können.

Die 2te Komponente ist ein steuerbares Ladegerät. Warum steuerbar? Weil die Lasten im Haus (die Stromverbraucher) und die Sonne immer wieder mal mehr und mal weniger Strom übriglassen. Damit man nur den Überschuss speichert, und nicht Strom, den man aus dem Netz zieht, ist diese Steuerung notwendig. Das Meanwell NPB 750 (und seine kleineren oder grösseren Brüder, siehe https://amzn.to/4qO7A19https://amzn.to/4nPvgjl und https://amzn.to/3XhY3BZ) kann per CAN Bus gesteuert werden und es gibt schon einige, die für Solarspeicher dieses Netzteil/Ladegerät nutzen. Zum Beispiel mit dem trucki stick (siehe http://trucki.de/t2mg/). Ich verwende stattdessen einen ESP32 (siehe https://amzn.to/4qQMoYy ) der CAN Bus schon eingebaut hat und einen Tranceiver, der den direkten Anschluss eines ESP32 an den CAN Bus erlaubt. Dazu später mehr.

Im nachhinein hätte ich das ganze lieber mit einem 1600er machen sollen weil das nicht so viel mehr kostet und es beim Laden aus dem Hausnetzt keine Beschränkung auf 800 W gibt wie beim Entladen.

Die nächste Komponente ist Home Assitant zum Steuern. Ich nutze Home Assistant schon dazu, das Laden meines Elektroautos, den Luftentfeuchter im Keller und die Poolpumpe und Poolwärmepumpe so anzusteuern, dass sie nur dann angehen, wenn die Sonne ausreichend scheint. Diese werden etwa alle 2 Minuten ein- oder ausgeschaltet. Die Steuerung der Überschussladung soll aber häufiger erfolgen  weil sich Lasten und die Sonneneinstrahlung sehr schnell ändern können.

Um den Überschuss zu messen braucht man einen Weg am Stromzähler oder direkt dahinter  zu messen, wieviel Strom ins Netz geht oder aus dem Netz gezogen wird. Ich hatte schon ein Hichi Infrarotmessgerät, dass ich für diesen Zweck auf sekündliche Messung getunt hatte.

Als letzte Komponente habe ich einn mikrowechselrichter mit 800W verbaut. Diesen haben ich auch auch steuerbar gemacht aber das ist im Nachhinein gesehen gar nicht nötig. Meine Grundlast ist zwishcne 100 und 300W und ich hätte einfach einen kleineren Wechselrichterkaufen können und diesen abends ein- und morgens ausschalten können. Nur wenn man so viel Überschuss hat, dass man die Batterie tagsüber mehrmals volladen könnte macht es Sinn diesen Wechselrichter tagsüber so anzusteuern, dass er genau nur so viel einspeist wie gebraucht wird. Aber dies soll nicht der Fokus dieser Anleitung sein. Aber die 24V Batterie eignet sich auf jeden Fall viel besser für einen Mikrowechselrichter als eine 12V Batterie.

Wie schliesse ich die Batterie sicher an das Ladegerät an?

Es gibt ein paar Dinge zu beachten, damit das richtig und sicher gemacht wird. Ich übernehme keine Haftung dafür, was ihr baut, selbst wenn ihr es genauso baut, wie ich es gemacht habe.

Man braucht erst einmal Kabel die an beiden Seiten Presskabelschuhe haben. Diese kann man mit einer Zange selbst pressen oder fertig kaufen. M6 (also 6 Millimeter Durchmesser) ist typisch an den Batteriepolen und am Sicherungshalter und 8mm am Meanwell NPB Ladegerät. Die Kabel sollten dick genug sein für den Strom. Die Strombelastbarkeit des Kabels muss also größer sein als der Strom der normalerweise fliesst. Informationen dazu findet ihr in Datenblättern des Herstellers. Ich habe für die maximal 800 Watt geteilt durch 25 Volt also 32 Ampere gesehen, dass lose verlegte Solarkabel mit 6mm2 40A abkönnen und mich für diese entschieden.

Ein Sicherungshalter und eine Sicherung sind absolut notwendig denn sollte mal ein Kurzschluss entstehen dann können selbst wenn das Batteriemanagementsystem in der Batterie den Strom abschaltet, falls er die bei meiner Batterie vorgesehen 50A maximal erreicht, dies geschieht aber sehr langsam (eine Frage von Sekunden) und in der Zeit kann der Lichtbogen oder die Erwärmung des Kabels schon einen Brand oder anderen Schaden erzeugt haben.

Im obigen Bild sieht man die Sicherung durch das Glasfenster die bei 40A auslöst. Diese Sicherung dient dazu die Leitungen vor Überlastung zu schützen. Ich habe diese Sicherung verwendet: https://amzn.to/47UkdR4.

Wie kannst du das Meanwell Ladegerät aus Home Assistant mit wenigen Komponenten auslesen und ansteuern?

Dieser Teil ist der komplexeste und der Hauptgrund, warum ich diese Anleitung geschrieben habe. Man kann zwar mit CAN BUS zu USB Adaptern arbeiten (bitte interlasst Kommentare, falls ihr das versucht und geschafft habt) aber ich habe mich entschieden einen ESP32 und einen tranceiver zu verwenden.


Auf dem Bild steckt der ESP32 in einem Steckbrett das mit der typischen Selbstklebefolie auf dem Netzteil festgeklebt wurde. Von dort ist er nur mit dem Stecker im Netzteil verbunden und bezieht von dort seinen Strom und die CAN Bus Signale.

Fangen wir mal mit dem Stecker unten an. Ein solcher Stecker wird zwar mitgeliefert aber er ist im Wesentlichen nicht belegt und dient dazu den Fernbedienungsschalter anzuschließen. Ich habe 2 Quellen gefunden um einen solchen Stecker zu bekommen. Er ist unter PHDR-14VS DF11-14DS bei https://www.conrad.de/de/p/jst-buchsengehaeuse-kabel-phd-polzahl-gesamt-14-rastermass-2-mm-phdr-14vs-1-st-740156.html zu bekommen (Mindestzahl 7 Stück – wenn ihr eine Sammelbestellung macht dann bitte hier in den Kommentaren erwähnen um weitere Abnehmer zu finden). Bei Conrad gibt es auch litzen (siehe https://www.conrad.de/de/p/jst-konfektionierte-litze-phd-polzahl-gesamt-1-810794-1-st-715198.html) die schon becrimpt sind, an die ihr dann den ESP verbinden könnt oder ihr holt euch die entsprechenden crimpkontakt (Wenn ihr eine Crimpzange habt) und crimpt selbst (siehe https://www.conrad.de/de/p/jst-crimpkontakt-phd-polzahl-gesamt-1-bphd-002t-p0-5-1-st-740343.html). Die 2te Quelle ist bei ali express unter https://de.aliexpress.com/item/1005008848982075.html – dieses Kabel müsst ihr durchschneiden und kommt so an alle Leitungen ran.


Auf dem obigen Bild sieht man ganz unten den Stecker in Aktion (ich hab bei ebay einen 12 poligen JST Stecker bekommen und habe den ein wenig angeschnitzt damit er passt). Die einzigen 6 Leitungen, die man braucht, sind von oben nach unten die 3 für 3.3V um damit den Tranceiver und den ESP mit Strom zu versorgen, die 4 die dazugehörige Masse, die 7 und 8 die kurzgeschlossen werden müssen um das Netzteil immer eingeschaltet zu haben (Wir schalten es dann später per CAN Bus ein und aus) die 11 für CANH und die 12 für CANL.


Dieses Bild zeigt die Schaltung des Tranceivers und des ESP32. Ich habe mich blind der 2ten Anleitung für 3.3V unter https://esphome.io/components/canbus/esp32_can/#wiring-options gehalten und es hat funktioniert. Ich vermute einfach mal, dass sich so auch der truck stick mit Strom versorgt.

Wie kann ich jetzt den ESP32 programmieren so dass er über WLAN aus Home Assistant das Ladegerät ansteuert?

Dieser Schritt hat mich viel Zeit gekostet weil ich musste erst mal aus dem Meanwell Handbuch heraus verstehen wie das Protokoll funktioniert, wie ich die Reigsterwerte aus dem Meanwell lese und wie ich schlussendlich das Ding richtig ansteuere.

Dabei gibt es mehrere spezielle Dinge initial zu beachten:

  1. Das Netzteil sollte Handbuch Version 8 oder höher haben. Nur dann kann man damit sekündlich den Storm ändern.
  2. Falls ihr das Netzteil gebraucht gekauft habt würde ich einen Factory Reset machen (siehe Handbuch).
  3. Das Ladegerät muss durch Setzen der DIP-Schalter wie auf dem Bild oben (alle nach links) auf „Netzteilmodus“ geschaltet werden in dem man Spannung und Strom individuell regeln kann. Es wird also keine typische Ladekruve gefahren sondern es wird so schnell oder langsam geladen, wie halt Überschuss da ist.
  4. Das Ladegerät muss so initialisiert werden, dass es das EEPROM nicht immer wieder mit einem neuen Stromwert überschreibt weil das, wen man es sekündlich macht, das EEPROM zerstört. Im EEPROM merkt sich das Netzteil die Einstellungen auch wenn es ausgeschaltet wird. Aussschalten (also ganz von Netz trennen) müssen wir aber nicht.

Die ersten drei Punkte solltet ihr zuerst machen. Den letzten Punkt machen wir, wenn der ESP32 in ESP Home integriert wurde.

Um den ESP32 in ESP Home und damit in Home Assitant zu integrieren müsst ihr der Anleitung auf https://esphome.io/guides/getting_started_hassio/ folgen. Im Laufe dieser Anleitung müsst ihr den ESP32 einmal per USB mit einem Windows oder Mac vebinden um ihn einmalig in euer WLAN zu bringen und in bei Home Assistant anzumelden. Danach könnt ihr direkt aus Home Assistant mit dem Ding arbeiten und alles weitere von dort aus machen.

Um den ESP32 verbunden mit dem Meanwell mit einer ganzen Latte von Messwerten, Stati und Steuerungsmöglichkeiten sichtbar zu machen solltet ihr das script in esphome für euer device um alle auf die Zeile 26 folgenden Zeilen von diesem YAML erweitern: https://github.com/marcuscbehrens/meanwell_npb_esphome/blob/main/esphome-web-601d3c.yaml .

Jetzt sollte in Home Assistant das Meanwell Ladegerät erscheinen wenn ihr es eingeschaltet habt. Was hilft bei der Fehlersuche ist sich das log in esphome anzusehen – da sollten eigentlich alle CAN Bus Sachen erscheinen.

Jetzt muss noch der obige Schritt 4 erledigt werden. Dafür muss man einmalig den Knopf „initialize meanwell button“ in Home Assistant gedrückt werden. Nachdem ihr das gemacht habt solltet ihr mit dem Schalter hinten am Netzteil das Netzteil einmal ausschalten und wieder einschalten.

Wie wird das ganze gesteuert?


Um dann in Home Assistant alles richtig anzusteuern habe ich mir noch ein paar Sachen gebaut aber bei Euch müsst ihr das evtl anders machen (anderer Stromzähler, andere Verbraucher).

Wie ihr euren Stromzähler an Home Assistant angeschlossen habt ist euch überlassen. Ich habe einen kleinen Infrarotleser per USB an meinen Home Assistant angeschlossen – die Latenz ist etwa 3 Sekunden wenn man etwas einschaltet aber das reichte mir erst mal.

Mein Algorithmus zur Steuerung besteht in Home Assistant aus folgenden 2 wesentlichen Komponenten:

Teil eins ist ein Helfer Template – ein Binärsensor, der anzeigt, ob alles in Ordnung ist:

Screenshot

Hier werden alle Werte überprüft der Batterien (die ich über bluetooth in home assistant erhalte) und vom Ladegerät.

Für meine Batterien habe ih mit Testladungen und Entladungen festgestellt dass obiger Werte im grünen Bereich sind: Spannung nicht mehr als 28V und nicht unter 25V, maximale Differenzspannung nicht mehr als 0.05V bei beiden, es darf kein Problem gemeldet sein in den Batterien, die Temperatur meines Wechselrichters soll unter 45° bleiben und auch die Temperaturen meiner Batterien sollten unter 45° bleiben. Dann werden noch 12 wichtige Statuse des Ladegeräts überprüft. Am wichtigsten ist hier, dass nicht ins eeprom geschrieben wird (was sonst beschädigt würde) und das das Ding im Netzteilmodus ist (also nicht im Ladegerätmodus). Die anderen vielen Fehlerbedingungen sind bei mir noch nie aufgeteten aber diee Helfer fragt sie trotzdem alle ab – better safe then sorry.

Dieser Helfer wird von einer Automation abgefragt und sobald der Anschein da ist, das was schief läuft werden Ladegerät und Wechselrichter abgeschaltet und mit einem weiteren Modus template jedes weitere Laden oder entladen unterbunden bis ich mir das mal genauer ansehen kann. Bisher ist mir das erst einmal passiert als ich die Automation zur Überschusseinspeisung abgeschaltet habe und vergessen hatte das Ladegerät ausszuschalten. Die Notabschlatungsautomation hat bei erreichen einer zu hohen Differenzspannung rechtzeitig abgeschaltet bevor das BMS abgeschaltet hätte.

Die eigentliche Überschussladungsautomation is recht simpel und unten in 2 Schritten abgebildet:

Was passiert hier: Jedesmal, wenn ein neuer Wert vom Stromzähler da ist und wenn grundsätzlich der schalter energiemanagement ein ist und der kleinspeicher nicht abgeschaltet ist dann wird bei mir jede Sekunde eine der folgenden optionen abgeklopft:

Wenn das ladegerät aus ist und nicht gerade ausgeschaltet wurde (charger coooldown ist ein timer der verhindert, dass man zu schnell an oder ausschaltet) und wenn auch die Batterie noch nicht ganz voll ist und wir mehr als 10 Watt einspeisen (Bezug ist negativ) dann wird das Ladegerät eingeschaltet, ein cooldown time gestartet fürs einschalten und der Ladestrom festgelegt.

Wie wird der Ladestrom genau festgelegt?

Dies passiert mit dem Wert Template oben in der Automation. Vom Wert in Watt, der eingespeist wird abgezogen was jetzt schon geladen wird (current*voltage), dann kommt noch ein Faktor 1.1 drauf (10% mehr) damit man lieber zu viel lädt und auf keinen Fall einspeist bei kleinen Schwankungen und dann wird das ganze wieder durch die Spannung geteilt um die Watt zu ermitteln, mit denen geladen werden soll. Da das 450Watt Ladegerät von mir nur 4.5 A minimal kann begrenze ich die Ladeleistung auf mindestens 4.5 A was etwa 100W entspricht.

Die Ladung wird abgeschaltet wenn der Bezug wieder über 0W steigt (Hysterese 10W) oder wenn die Batterie voll ist. Ausserdem wird der Ladestrom immer wieder erhöht oder erniedrigt wenn sich der Bezug ändert. Das wars schon. Ja, ich gebe zu, das ist nicht trivial in Home Assistant aber dafür habt Ihr die volle Kontrolle über alle Parameter aus Home Assistant heraus und könnt das Laden mit Entladen (über z.Bsp Open DTU und Hoymiles Wechselrichter) und mit ein- und ausschalten von anderen Lasten kombinieren.

Wie sieht das Ergebniss des Überschussladens dann konkret aus?

Als letztes Bild habe ich ein Beispiel dabei, wie gestern dynamisch geladen wurde:

Zu Beginn konnten etwa 100W geladen werden, dann hat sich irgend ein Gerät im Haus ausgeschaltet und es waren 500W die geladen werden konnten und am Schluss sogar als mehr als 700 Watt.

Tja, im Nachhinein wäre ein Ladegerät mit 1600 Watt vielleiht besser gewsen aber dann hätte ich alle Kabel auf höhere Ströme auslegen müssen und ich habe viele Verbraucher im Haus (Entfeuchter 500W, Poolwärmepumpte 900W, Elektroauto 1500W bzw 3000W) die ich stattdessen aktivieren kann.

Falls ihr Fragen zu diesem setup hab gerne hier Kommentar oder im jeweiligen Forum oder Video wo dieser Artikel gepostet wurde.

An den Links, die zu Amazon führen, verdiene ich als Amazon Partner ein wenig Geld – also gerne benutzen, wenn ihr die Komponenten kauft.

Schreibe einen Kommentar