-
-
Notifications
You must be signed in to change notification settings - Fork 720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Huawei Netzladen improvement - AC Charging Flag umschalten #17692
Comments
Magst du einfach einen PR machen? Die Änderung ist ja trivial. |
Dafür reich meine Expertise leider nicht. Ich kenne mich zwar gut mit den Huawei Komponenten und Modbus bzw Gebäudebussystemen aus, aber GO ist für mich Neuland. Könnte ihr das Implementieren? Ich Teste die Funktionalität dann gerne und gebe Feedback. |
Das hat mit Go zum Glück nichts zu tun. Register wird hier verwendet: https://github.com/evcc-io/evcc/blob/master/templates/definition/meter/huawei-sun2000.yaml#L248 |
Ich vermute Du hast Dir das so vorgestellt? 57f3fb4 |
Für mich sieht das wie ein Fehler in der Firmware aus wenn
schon auf 0 ist und trotzdem
noch das Standbyverhalten beeinflussen kann. |
This PR enhances battery control by deactivating Modbus register 47087 when stopping the charge process (case 1). This allows the inverter/battery to enter deep sleep mode and prevents standby losses. evcc-io#17692
Ich habe den Code angepasst und einen PR erstellt. Hintergrund: Die Funktion
wird bei Huawei zusätzlich verwendet, um bei einer Kaskade mit mehreren Wechselrichtern sicherzustellen, dass die Wechselrichter ohne Batterie den "Master"-Wechselrichter, an dem die Batterie gekoppelt ist, über AC versorgen können. Trotz der RS485-Bus-Verbindung untereinander wechseln alle Wechselrichter in den Deep-Sleep-Modus, mit Ausnahme des Masters, der mit der Batterie verbunden ist. |
So, ich hab das aufwecken durch Register 47087 getestet. Die Anpassung funktioniert, allerdings dauert das aufwecken aus dem Standby ab Write auf das Register ziemlich genau 30 Minuten, dies ist aber der Firmware von Huawei zuzuschreiben. vielen Dank für die Unterstützung @andig |
Hallo. Sorry aber das funktioniert so nicht. Bei mir muss AC Laden an bleiben wegen einer Kaskade (2.WR) und einem externen Balkonkraftwerk. Seit der Version 131.11 tooglet nun mein Main Wechselrichter an dem die Batterie hängt in einer Dauerschleife zwischen Starten und Standby. Ich gehe vorerst auf die Version 131.10 zurück. |
Kann ich nachvollziehen. Dein WR und Batterie sollten sich dann aber einfach in den Tiefschlaf begeben und nicht ständig booten. Ich habe 3 Kundenanlagen, wo wir bei WR Kaskade gezielt das AC-Laden deaktiviert haben, weil die 24/7 Bereitschaft mit rund 150 Watt Verlusten zu buche schlägt, die sich der laufende WR aus dem Netz genehmig. Bei den Anlagen gehen die WR auch ganz normal schlafen. Das Use Case, dass jemand das AC-Laden dauerhaft aktiviert benötigt habe ich nicht bedacht. @andig wäre es möglich ein zweites Template zu erstellen (einmal für Stand Alone WR (mit Umschaltung von Register 47087) und einmal für WR-Kaskaden (hier sollte 47087 dauerhaft auf 1 bleiben)) oder diese Funktion über die evcc.yaml konfigurierbar? |
Hallo. Und die Kunden verzichten dann auf Batterieladen vom 2. WR in der schlechteren Jahreshälfte? Ich glaube da wäre es mal interessant auszurechnen, ob der Verlust der AC-Ladung oder die 150W sich stärker auswirken. Ich bin hier froh das ich AC vom Balkon und vom 2. WR in den Akku bekomme. Klar wäre es schön, dass wenn der Akku leer abends/nachts ist, das ganze dann in den Deep Stand By geht, das kann Huawei aber nicht, da er ja jederzeit AC Ladung erwarten könnte. Aber das Ganze ist ja nur für Technikexperten. Aber die sind wir ja hier ;-) Aber so wie du es beschreibst, eigenes Template oder konfigurierbar würde hier helfen, dann kann man selbst entscheiden. |
@MucheteWO die Erzeugung aus den Kaskaden WR landen i.d.r gleich in der Grundlast des Hauses (teilweise bis zu 1kW durch z.b. IT Homelabs) und im Sommer reicht das DC Laden ohne Probleme um den Speicher zu füllen. Ich hab mir eben die Struktur des Templates nochmal angeschaut und habe meine ich verstanden, wie man über die evcc.yaml Konfigurierbare Optionen im Template programmiert. Ich setzte mich mal heut Abend dran und starte ggf. nen Pull Request für die Anpassung wenn ich erfolgreich bin. |
Naja, bei Süd Anlagen ja. Ich habe aber Ost/West jeweils 8kwp. Da macht es Sinn AC Laden an zu haben, da ansonsten der Akku nur in der einen Tageshälfte geladen wird. Aber ja, auch eine Milchmädchenrechnung. Glaube, das geht mit dem Verlust auf null auf. Zumindest im Dezember und Januar. |
@MucheteWO hab den PR gerade eingereicht. Standardmäßig wird das AC-Laden in dem PR nun deaktiviert. Über das Konfig-UI bzw. über die evcc.yaml kann man bei Battery die Variable "cascade: true" eingesetzt werden, damit bleibt das AC-Laden dauerhaft aktiv. |
Eine Frage hierzu: |
Moin, geht die Luna die ganze Nacht nicht mehr an trotz charging Mode? Huawei hat ein Delay von 30 Minuten in der Firmware bis der WR und Luna aufwacht. Das lässt sich leider nicht anpassen |
hallo, ja, sie lädt überhaupt nicht trotz eingestellten peisgeführten Lademodus. |
Das Wunder mich sehr. Bei mir läuft es seit dem commit ohne Probleme. Ich hab adhoc leider keinen Zugriff auf einen weiteren Wechselrichter/Luna zum Testen ... das folgt erst in den nächsten zwei Wochen. |
vielleicht liegt es an den Einstellungen in der Luna, welche müssen denn hier vorgenommen werden? Nutzt du eventuell Home Assistant da kann man ja auch super alles einstellen? |
In der Luna bzw. im Fusion Solar ist bei mir alles auf Werkseinstellung. Du kannst gerne mal testen, ob das AC-Laden vernünftig gesetzt wird. Hierzu einmal in der Fusion Solar App oder Web in den Parametern der Luna den Punkt "von AC-Seite laden" checken ob er auf deaktiviert steht, dann mittels evcc ein Ladevorgang planen zum aktuellen Zeitpunkt, nach ein paar Sekunden bis einer Minute sollte dann in der Fusion Solar App der Punkt "von AC-Seite laden" auf "Aktivieren" wechseln. Ich hab nen Modbus Proxy dazwischen hängen um Daten mit dem ioBroker aufzuzeichnen. Schreibend wirkt aber ausschließlich evcc auf den WR/Luna |
Hier mal der code aus meiner /etc/evcc.yaml zum abgleich, wie es aktuell konfiguriert ist bei mir. |
Hallo, ich habe zwei Fragen dazu:
@Hypo93 okay, du nutzt huawei-sun2000 - somit wird der PR auch nur das Template angepasst haben oder? |
Richtig ich habe ausschließlich das huawei-sun2000 Template angepasst @rnndchsrl die halbe Stunde einplanen würde denke ich was grundlegendes an der ladelogik in evcc ändern, da hab ich keine Aktien drin |
Genau so soll es sein und genau so läuft es auch bei mir ab. |
Laden/Entladen sollte nicht passieren. Gibts ein Logfile? |
Nein, evcc läuft als HA Addon. So viel ich weiss gibts da keine Logs, oder? |
Das ist, glaube ich, ein guter Hinweis. Das Template in evcc nutzt die Zwangsladen-Funktion und setzt, wenn ich es richtig sehe, immer wieder die Dauer auf 1 Minute. Viel besser wäre es wohl, wie du sagst, die TOU-Funktion vom sDongle zu verwenden und dann nur zwischen den Arbeitsmodi zu wechseln. Das AC-Laden muss natürlich trotzdem ein- und ausgeschaltet werden. Die Frage ist nur: Wie realisiert man dann den "Hold"-Modus, um zu verhindern, dass die gespeicherte Energie aus der Luna in das KFZ bzw. die Wallbox fließt? Oder – zukunftsgerichtet gedacht – wie kann man die Energie netzdienlich in entsprechende Hochzeiten verlagern? Der gewünschte SoC lässt sich ja leider nicht direkt schreiben, da man hier beim maximalen SoC nur einen Wertebereich von 90–100 % zur Verfügung hat. Ein Beispiel: 10 kWh Speicher, ich lade 1 h mit 2,5 kW und will die theoretisch geladenen 2,5 kWh "sichern" und nicht entladen. Mir fällt für diesen Zustand gerade keine Lösung ein. Wie könnte man das lösen? |
Einschalten geht automatisch wenn auf TOU gewechselt wird, aber auch hier mit den 30min Wartezeit.
Du lässt deine Luna einfach per TOU bis 25% laden und stellst erst auf max. Eigenverbrauch zurück wenn du die 25% nutzen möchtest.
Vorausgesetzt das TOU Ladezeitfenster "tägl. 00:00-23:59" ist einmal gesetzt im Huawei System ist dies ja gleichzeitig der Hold-Modus, da es sich um ein Ladezeitfenster handelt und somit die Batterie nicht entlädt. |
Was wäre daran schlimm? Der Akuu sollte ja kn der billigen Zeit voll bleiben! |
@LotharWoman Ich glaube, du hast da einen generellen Bug im Template aufgedeckt. Ich habe das Ganze mal mit der alten v0.131.10 getestet, sprich vor meiner Anpassung mit dem AC-Charging-Flag, und dort taucht das ständige Nachladen auch auf. @andig Im Batterymode wird der Case 2 ja verwendet zum "Halten" des SoC. Für mein Verständnis betrifft das die Funktion im UI: "Hausbatterie -> Verhindere Entladung im Schnell-Modus und bei geplantem Laden". Den ToU-Modus habe ich über Case 1 und 3 mal "quick and dirty" abgebildet, und wie im Bild zu sehen, lädt, hält und entlädt er wie gewollt. Nur kann ich über diese Funktion die Entladung nicht anhalten.
Theoretisch könnte man den Workaround aus Case 2 beibehalten und in Case 1 und 3 zurücksetzen. Das bedeutet aber, dass 6 Modbus-Register in jedem Case beschrieben werden müssten. Ich denke da an die Buslast, weil der sDongle ohnehin sehr, sehr träge ist und nur einen Befehl zur Zeit annimmt. Daher die Frage an dich: Schreibt EVCC den Wert nur einmal in die Register beim Ändern des Modus (Laden/Halten/Entladen) oder zyklisch? |
Finde ich eine sehr gute Idee. Habe ich gerade über ein modbus Tool mal eben aus der ferne getestet ... ist das Register 47077 als uint32 ... Für 5kWh Akkus 2500W und für Stacks mit mehr als einem Bat. Modul 5000W, wenn man den Wert auf 0W setzt wird das Entladen tatsächlich verhindert, geladen wird aber weiter bei PV-Überschuss ... Das ließe sich ja über die evcc.yaml bzw. UI konfigurierbar und als erforderlich einstellbar machen. Ich bastle da morgen mal was zusammen, früher komme ich da leider nicht zu. Ich baue dann denke ich auch gleich eine Option ein, dass man fest konfigurieren kann, bis wohin der Speicher via AC geladen werden soll... das ist nämlich über Register 47088 lösbar ... dann lässt sich zumindest einstellen, ob immer via AC auf 100% geladen werden soll oder man einen Puffer lässt für ggf. vorhandenen PV Überschuss. |
Das macht als fester Parameter wenig Sinn- würde ich nicht umsetzen wollen. |
Da muss ich @andig zustimmen. Der Wert muss täglich leicht änderbar bleiben und gehört meiner Meinung nach mit in die GUI neben die Preisauswahl, so dass man ihn täglich an am Folgetag zu erwartenden Ertrag anpassen kann. |
Siehe dazu auch #17806 (comment), ist hier aber völlig OT. |
Habe hier einen Kommentar zum Ursprungsthema abgegeben: #17726 (comment) |
@hstreitenberger Mich stören die ständigen nachfragen gerade selber. Man sieht ja auch wie viele Kommentare es mittlerweile unter dem PR gibt, ich werde das verhalten im nächsten PR umkehren (AC-Laden immer aktiv, außer man setzt dafür ein Parameter), so wie du es vorschlägst. |
Auch hier mal zur Diskussion für die Mitleser:
|
Weiß nicht, ob ich alles verstehe und ob ich beitragen kann, hier mal meine laienhafte Erfahrung: Also bei mir funktioniert der Modus "Forcible Charge" bis zu einem definierten SoC (GridChargeSoc, im Bild 85%) in Home Assistant sehr gut. Ich muss nur zuvor die Batterieentladesperre in evcc über Home Assistant deaktivieren, da diese Funktion nach meinem Verständnis das Ladeverhalten mit "Forcible Discharge at 0W for 1 minutes" falsch behandelt und im Weg für die Ladung steht. Nach dem Ladevorgang aktiviere ich über HA wieder die Entladesperre (siehe Bild -> Discharging at 0W for 1 minutes, da gleichzeitig ein evcc-Auto-Ladevorgang aktiv ist). Die Entladesperre sollte m.M. wie schon oben angedeutet über die Reduzierung der Entladeleistung auf 0W realisiert werden und nicht über das "Forcible Discharge". Um ein Entladen und neues Laden nach 1% Verlust über evcc zu unterbinden, könnte man auch für den Zeitraum der Batterieladung (=Unterschreitung des Preises) die Entladeleistung auf 0W setzen, dann wird Batterie geladen und pauschal in dieser Zeit aus dem Netz gezogen (was ja ebenfalls wünschenswert ist). Ich sehe das "Forible Charge" auch nicht als Wartungsfunktion, da diese Funktion auch ganz offiziell in der FusionSolar-App angeboten wird: Laden/Energie/Ziel SOC. |
Nur dass dort der Modus bei erreichen der Zielwerte verlassen wird und die Batterie in ihren normalen Arbeitsmodus zurückkehrt. Genau dies lässt aber das "Zwangs" force charge in evcc nicht zu, sondern hindert den Akku bis Ende des Zeitraums daran zurück zu wechseln. In der Folge kommt es dann zu ständigem Laden/Entladen.
Schaut mal ob hier Infos dazu entnehmen könnt: https://github.com/wlcrs/huawei_solar/wiki/Time-of-Use-control |
Um hier nochmal klarzustellen, dass die Funktion forced charge/discharge eine Wartungsfunktion ist (ja, sie ist für jeden zugänglich) Im Handbuch der Luna wird Sie auf Seite 141 erklärt. Auf meinem Zertifizierungslehrgang bei Huawei wurde uns dieser Modus genau so erklärt, er ist nur dafür da um die Luna auf einen definierten Ladezustand zu bringen, sei es zur Lagerung damit sie nicht tiefentlädt, für den Wiederverkauf oder zu Wartungszwecken um die Funktion des Akkus zu testen. Im SUN2000-Handbuch wird auch nochmal erklärt auf Seite 327 und 328, dass der ToU Modus dafür da ist, um die Lade und Entladestunden festzulegen. Forced charge/discharge wird nicht weiter beschrieben, aber es wird der Hinweis gegeben, was wir ja durchs logging gesehen haben, dass der "charge" modus beim erreichen des eingestellten SoC (default 100%) verlassen wird und der Akku automatisch wieder in den entlademodus geht. Über das Register 47255 kann man wohl die ToU Pläne erstellen ... Ich muss mir nur das Datenformat nochmal anschauen und es testen... dann bringe ich es in code form für ein template |
Selbiges passiert bei mir immer. Seit dem Update des Template geht meine LUNA in den Standby, die rote LED bilnkt am WR und der Fehler 2068 wird gemeldet. |
Ich hab mir letzte Woche noch nen neues Template geschrieben für die ToU Funktion. Bedarf aber ein wenig mehr an Konfiguration (einmaliges Zeitplan anlegen + Festlegen der Entladeleistung) Das läuft seit dem ohne Fehler bei mir. Den Standby Fehler hatte ich aber im alten Template auch nicht... welche Firmware habt ihr installiert? Hier |
Standby Fehler hatte ich auch aller paar Tage mal seit 16x Wechselrichter und 6xx Batterie Firmware. Dies scheint mir aber mit aktuellen Updates nun endgültig behoben zu sein. |
Liest sich erst einmal top! Kompliment und vielen Dank. Muss ich unbedingt bei Gelegenheit ausprobieren. Dein Template lässt sich doch so ohne weiteres einbinden und jeder kann über den Parameter maxdischargepower seine Entladeleistung einstellen. Für ToU müsste mann doch nur noch den Plan einbinden (siehe unten) und mit dem Parameter holdaccharging wären auch alle Bedürfnisse an AC Laden on/off abgedeckt. Edit: |
@mucki12 mein Ziel war es eig. den Zeitplan über ModBus zu erstellen, dafür gibt es auch ein ModBus Register (47255), allerdings habe ich es darüber nicht hinbekommen, weder über Anpassung im Template noch über eine ModBus Software. Die Anpassung sind aktuell nur in meinem Fork/Branch gemacht und nicht in das Hauptprojekt übernommen... ich würde gerne erst eine Doku erstellen, bevor ich das anstoße damit beschrieben ist, was alles Eingestellt werden muss und wie man den Zeitplan erstellt. Du könntest dir mein Fork aktuell nur selber kompilieren. |
@Hypo93 Konnte bisher nur kurz das Netzladen des LUNA testen und das hat schon einmal wunderbar geklappt. Als nächstes teste ich mal das Schnellladen um auch den case 2: hold Fall zu testen. |
Könntest du eventuell diese Anpassungen der evcc.yaml posten?! Bzgl. der Firmwares, da habe ich jetzt auf die aktuellesten Version geupdate. Der Sleep-Fehler und der Fehler-Code 2068 scheinen jetzt passé zu sein. |
@snookerap
Edit: |
@Hypo93 |
Problembeschreibung:
Beim AC-Laden des Huawei LUNA2000-S0 wird das Modbus-Register 47087 ("Charge from grid") auf 1 gesetzt, sobald das Netzladen aktiviert ist. Nach Abschluss des Ladevorgangs wird dieses Register jedoch nicht automatisch auf 0 zurückgesetzt.
Dies führt dazu, dass der Akku und der Wechselrichter nicht in den Deep-Sleep-Modus wechseln, wenn der Akku den minimalen SoC erreicht hat. Stattdessen verbleiben sie in einem Zustand der AC-Ladebereitschaft und verbrauchen ca. 150 Watt aus dem Netz.
Vorgeschlagene Lösung:
Während des Netzladens sollte evcc das Modbus-Register 47087 auf 1 setzen, sobald der vom Nutzer definierte Zeitraum für das Netzladen beginnt.
Nach Abschluss des Netzladens (Verlassen des definierten Zeitfensters) sollte das Modbus-Register 47087 wieder auf 0 zurückgesetzt werden, um unnötigen Energieverbrauch zu vermeiden.
Alternative:
Eine alternative Lösung könnte sein, das Register 47087 auf 1 zu setzen, sobald ein Netzladeereignis innerhalb der nächsten 24 Stunden ansteht. Falls kein Zeitfenster für Netzladen definiert ist (z. B. weil der Strompreis nie unter die festgelegte Schwelle fällt), kann 47087 auf 0 gesetzt bleiben.
Zusätzlicher Kontext:
Dieses Verhalten betrifft das Template Huawei-sun2000.
The text was updated successfully, but these errors were encountered: