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.