BYD Speicher Laden/Entladen via Home Assistant per Automation oder Schaltfläche

Grüß Euch,

Da das mein erster Post ist, möchte ich mich kurz vorstellen:

Mein Name ist Emanuel, bin 29 Jahre alt, und komme aus Wien (oder nähe Wien) in Österreich. Ich habe mein Eigenheim 2021 selbst in Eigenleistung gebaut und haben uns für KNX System entschieden. Im Zuge dessen ist dann auch die Liebe für Home Assistant irgendwann gekommen und so bin ich hier gelandet. :slight_smile:

Nun zu meinem Projekt:

Ich möchte meinen BYD HVS10.2 Speicher per Automation aus dem Netz Laden/Entladen. In Österreich darf man das, allerdings fehlen mir hier die richtigen Entitäten. Ich habe auf Yout… gesehen das es bereits jemand mit iobroker geschafft hat, allerding nicht mit HA. Weiß hier jemand wie es gehen könnte?

LG Emanuel :slight_smile:

Hi,

bei mir wird der BYD über den Sungrow WR gesteuert. Über die Sungrow Einbindung bin ich in der Lage den BYD zu entladen oder auch zu laden.
Was hast du für einen WR?

Gruß
Basti

Moin,

hast du denn die normale Integration deiner Batterie schon fertig? Erstmal den 1. Schritt und dann den 2. oder?
Der Wechselrichter muss das Laden aus dem Netz ja bestimmt unterstützen, da die Batterie ja nur durch den Wechselrichter mit den Netz verbunden ist.
Vielleicht bietet die Integration deines Wechselrichters ja auch schon passende Entitäten an. Zeig doch mal.

VG

Ich hab den Fronius GEN24 10.0 Plus mit BYD HVS10.2 und habe bereits alle Entitäten ausprobiert. Ich habe lediglich Batterie NOC, Kapazität, Zellenspannung, Zellentemperatur, Entladeleistung, Ladeleistung etc.

Die Fronius-Integration gibt schon recht viele Entitäten her, allerdings keine Möglichkeiten zu Entladen bzw. Ladung aus dem Netz.

Wie hast du den WR eingebunden?
Meine Sundgrows sind über Modbus eingebunden und da gibts den Befehl “force charge” oder “force discharge”

image

Ich denke nicht, dass es mit der normalen Integration von Fronius funktioniert. Ich habe mir die Docu angesehen und es gibt nichts was darauf hindeutet.

Was man evtl. stattdessen machen könnte. (denke es geht um dynamische Stromverträge?)
Den Min Soc in Phasen niedriger Strompreise auf einen Wert über den aktuellen Soc stellen. Das würde zu den Zeiten zumindest das entladen des Speichers verhindern.
Bei meinem Kostal ist es z.b. auch so, dass wenn ich auch an trüben Tagen eine höheren Min Soc einstelle, der Akku vorrangig mit PV Energie geladen wird und diese nicht ans Hausnetz abgegeben wird.
Mit diesen Beiden Einstellungen ließe sich evtl. etwas basteln - auch für den Winter, falls Letzteres auch beim Fronius funktioniert.

@basti242:
Über Modbus,allerdings hat die Fronius Integration keine Möglichkeit diese zu ändern.
→ siehe Fronius Integration HA

Hallo Basti, ich habe das selbe System mit 2 Sungrow Wechselrichtern und BYD Batterie. Wäre es möglich das du mir die default Werte der Batterieeinstellung schickst. Ich habe ein wenig rumgespielt, leider sind mir meine Notizen abhanden gekommen. Ich hatte mir alles aufgeschrieben.
Viele Grüße
Hoffi

Klar. Bin gerade im Urlaub und sind wieder zu Hause.

Hallo,
hab gerade das selbe Problem. Gibt es schon eine Lösung für HA den Lade- Entladevorgang über HA zu steuern?

Hab es gefunden. Falls noch jemand danach sucht hier der Link:
https://www.libe.net/byd-modbus

2 „Gefällt mir“

Hi.
Ich hab das selbe Problem gehabt mit einem BYD HVM Speicher und einem Fronius Gen24. Falls wen die Lösung intressiert, bitte schreiben.
Ich sags aber gleich, ich bin kein Techniker, ich übernehm da keine Verantwortung :wink:

Hi.
Hätte Interesse an der Lösung. Habe BYD HVM Speicher und Fronius Gen 23

Also ich habe 2 Python Scripts erstellt, eines für den Start des Ladens und eines fürs Stoppen. Und die dann mit Hilfe von Pyscript in Home Assistant integriert. Die erscheinen dann als Entität und man kann sie einfach ausführen.

Das ist das Skript für den Start vom Laden

from pymodbus.client import ModbusTcpClient
from datetime import datetime, timedelta

# Verbindung zum Modbus-Client herstellen
client = ModbusTcpClient('IP Adresse vom Fronius Gen24', port=502)

# Funktion zum Starten der erzwungenen Ladung
@service  ###-->@service muss da stehen, damit das Skript in HA ausführbar ist
def start_forced_charging():
    try:
        # Setze die Register für die erzwungene Ladung
        client.write_register(40360, 1)  # ChaGriSet: Ladung aus dem Netz erlaubt
        client.write_register(40348, 2)  # StorCtl_Mod: Speicherbetrieb aktiv
        client.write_register(40355, 62000)  # OutWRt: Ausgangsleistung auf -40 55536       client.write_register(40356, 10000)  # InWRte: Eingangsladung
        client.write_register(40350, 9400)  # MinRsvPct

        print("Erzwungene Ladung gestartet")
        


    except Exception as e:
        print(f"Fehler beim Starten: {str(e)}")

start_forced_charging()

und das ist das Skript zu Stoppen

from pymodbus.client import ModbusTcpClient

# Verbindung zum Modbus-Client herstellen
client = ModbusTcpClient('IP Adresse vom Gen24', port=502)

# Funktion zum Stoppen der erzwungenen Ladung
@service ###muss da stehen damits in HA ausführbar ist
def stop_forced_charging():
    try:
        # Setze die Register zum Stoppen der Ladung
        client.write_register(40360, 0)  # ChaGriSet: Ladung aus dem Netz deaktiviert
        client.write_register(40348, 0)  # StorCtl_Mod: Zurücksetzen auf neutralen Modus
        client.write_register(40356, 0)  # InWRte: Eingangsladung zurücksetzen
        client.write_register(40355, 10000)  # OutWRt: Ausgangsleistung zurücksetzen
        client.write_register(40350, 1000)  # MinRsvPct

        print("Erzwungene Ladung gestoppt")
    except Exception as e:
        print(f"Fehler beim Stoppen: {str(e)}")

# Beispielaufruf zum Stoppen der Ladung
stop_forced_charging()

Diese Lösung ist sicher nicht ideal, ich bin kein Techniker und kein Programmierer, ich hab da KI Hilfe gehabt. Den Input hab ich hauptsächlich von da erhalten: Gen24 + HVM + Tibber: per Modbus Laden aus Netz nur mit maximal 500W möglich ? - Fronius - Datenkommunikation - Photovoltaikforum

Ich hab die Funktionen etliche Male manuell gestartet und im Fronius Interface beobachtet und angepasst. Man muss bedenken, dass man in die interne Steuerung eingreift, deswegen garantier ich da natürlich für nichts, das ist nur als input zu betrachten.

In Home Assistant habe ich dann eine input.datetime erstellt und eine Automation, die zu Beginn der eingestellten Zeit das Skript fürs Laden startet und nach ablauf der eingestellten Zeit das Skript fürs Stoppen ausführt. Und mir ist einmal aufgefallen, dass nach dem Neustart von Home Assistant der HVM lädt, also scheinbar ist beim Neustart von HA das Start Skript ausgeführt worden. Drum hab ich jetzt eine zusätzliche Automation, die 1 min nach jedem Neustart das Stopp Skript ausführt, einfach als Absicherung.

Grundsätzlich geht das natürlich nur für manuelle Steuerungen, für eine Automation die das ans Wetter und die Strompreise koppelt bin ich zu dumm und zu feig.

Ahja und im Wechslerichter muss man glaube ich auch den Modbus aktivieren, oder externen Zugriff, irgend sowas…

Ich bin auch für kontruktive Kritik zu haben, wenn sich da jemand besser auskennt, und mir erklärt dass ich damit den Speicher potentiell in Flammen setz, wär ich dankbar für den Hinweis.

LG

:crayon: by HeikoBauer: Code formatiert. Bitte mit </> einfügen.

Danke.
Hab dann noch viel Arbeit vor mir. Meiner ist per Wlan angebunden.
Modbus zwischen Smartmeter und Fronius.

Hallo ihr Lieben,

es freut mich, dass das Thema auf so großes Interesse stößt.

Ich bin noch auf einen “möglichen” Bug gestoßen und möchte diesen mit euch teilen, um eventuell ähnliche Vorfälle bei euch zu vergleichen:

Situation A:
Der Wechselrichter lädt/entlädt und ist noch nicht auf seinem min. SOC:
Sendet man hier per Modbus den Befehl “force charge” und wählt eine bestimmte Ladeleistung (z.B.: Laden mit 2000W), dann führt er diese korrekt aus.

Situation B:
Der Wechselrichter befindet sich seit mehreren Stunden auf dem min. SOC (z.B. 5%) und erhält per Modbus den Befehl, eine “Zwangsladung” auf 99% mit 7500W Ladeleistung durchzuführen. Dann ignoriert er anscheinend die eingestellte Ladeleistung von 7500W und schießt auf 9200W hoch, was er maximal kann.

Da ich meine Batterie aber nicht mit der maximalen Ladeleistung laden möchte, sondern sie “schonender” laden möchte, suche ich nach einer Lösung. Meistens sind diese Ladezeiten um 4 Uhr morgens und man kann nicht wirklich etwas machen, weil man schläft.

Hat jemand schon ähnliche Erfahrungen gemacht? Oder bin ich der Einzige, der sich Sorgen um die Lebensdauer seiner Batterie macht?

Liebe Grüße :slight_smile:

Was auch immer an 7kW schonender ist :slight_smile:

Schau dir mal das hier an

Und dann wirst du feststellen das je nach maximaler Zellspannung selbst 1kW schon nicht mehr schonend ist.

Am einfachsten (schönsten) ist definitiv die Windowsvariante die dir die Zellspannung zu jeder einzelnen Zelle des Speichers anzeigt.
Praktischer ist natürlich am Ende eine commandline version die dir die relevantesten Parameter per MQTT zur Verfügung stellt.

Damit kann man zumindest sinnvollere Laderegelungen bauen als wenn man eine auf den gewürfelten SOC von BYD aufbaut, denn dann kann man die Ladeleistung auch direkt per randomn generieren lassen.

Such mal im HACS nach der “Fronius Modbus” Integration. Damit kannst du dann nachträglich via Automationen wunderbar dein Akku zeitlich und im Ladestrom triggern. Die Integration ist gestaltet wie am Wechselrichter selber. Du hast verschiedene Modi’s welche du mittel automation regeln kannst.