Verständnis Modbus Automation

Hallo zusammen,

ich fange gerade mit Home Assistant an und habe eine Verständnisfrage.

Ich habe eine PV Anlage mit Fronius Gen24 Umrichtern und einer BYD HVS Batterie. Da die Batterie regelmäßig den höchsten, bzw. niedrigsten Ladestand sehen muss, um das Balancing zu starten, und weil ich den Ladestrom begrenzen möchte, möchte ich hier eine Automatisierung einsetzen.

Das Verhalten wird über Modbus Register gesteuert die im Fronius Umrichter gesetzt werden.

Ich frage mich jetzt zum einen ob diese Modbus Register Ihren Zustand behalten wenn ich sie geschrieben habe, oder ob andere Mechanismen sie ändern, z.B. der Umrichter selber. In dem Fall müsste ich sie ja regelmäßig prüfen und ggf. neu schreiben.

Ich bin mir auch nicht sicher ob die verschiedenen Automationen die ich benötige evtl. gegeneinander arbeiten.

Grundsätzlich soll immer wenn die Batterie geladen wird der Ladestrom begrenzt werden - je voller die Batterie, desto geringer der Ladestrom.

Im Winter soll einmal alle 1-2 Wochen die Entladung gesperrt, die Batterie komplett vollgeladen werden und ein paar Stunden in diesem Zustand stehen bleiben damit der Balancer arbeiten kann. Danach kann die Entladung wieder freigegeben werden.

Im Sommer analog zu oben, nur soll die Batterie hier regelmäßig auf 5% entladen werden.

Ich brauche also eine Automation die z.B. alle 5 Minuten den Ladezustand prüft und ein Skript aufruft das den Ladestrom auf den passenden Wert begrenzt.

Zusätzlich eine Automation die nur in den Wintermonaten läuft und die Entladung sperrt bis der 100% Balancer fertig ist. Eine weitere Automation die in den Sommermonaten läuft und die Ladung sperrt bis der 5% Balancer fertig ist.

Kommen diese Automationen sich in die Quere? Sollte ich besser drei separate Automationen für Sommer, Winter und Übergangszeit schreiben? Oder kann eine alles abdecken? Man sollte Automationen ja einfach halten…

Ach ja, und später soll noch netzdienlich geladen werden, also wenn der Wetterbericht sagt: es gibt genug Sonne heute, soll die Ladung in die Mittagszeit verlegt werden.

Bin also gerade unsicher wie man das ganze aufbauen kann. Aber vielleicht hat ja jemand schon sowas ähnliches.

Danke Euch

Der Gärtner

Moin Moin,

Willkommen im Forum :upside_down_face:

Was Modbus angeht bin ich raus.

Was die Automationen angeht bin ich guter Dinge, dass man da was gebastelt bekommt :wink:

Hast du den Wechselrichter schon eingebunden Fronius - Home Assistant

Man müsste erstmal sehen welche Entitäten deine Geräte bereitstellen. Ggf. braucht’s dann kein direktes Modbus <> HA, wenns sich das über die Entitäten steuern und auslesen lässt.

WiE möchtest du Sommer/Winter triggern? Das Datum sagt ja nix über Wetter und Co. aus…

Hallo Dampf,

danke für die nette Aufnahme.

Modbus ist bei der Steuerung der Batterie der Standard. Soweit ich das sehen kann kommt man so detailliert auch nicht mit der normalen Integration (ja, ist eingebunden) an die Steuerung. Ist aber auch kein Hexenwerk, erklärt wird alles z.B. hier.
Es gibt Leute die sich da schon was gebastelt haben, aber ich habe noch keinen gefunden der seine HA Automationen teilt.

Sommer/Winter triggern…da sagst Du was. Wird vermutlich recht komplex.
Vielleicht fange ich erstmal mit drei Automationen für Standard, Vollladen und Leersaugen an, die ich von Hand umschalte.
Evtl. kann man ja vielleicht zumindest am Ende der Voll/Leer Automation auf Standard umschalten. Automationen aus eine anderen Automation heraus an/ausschalten geht, oder?

Ich denke ich fange jetzt erst mal mit den Skripten an die den jeweiligen Ladezustand steuern.

Evtl. kannst du dir was über online Wetterdaten oder einem Außensenor basteln

Ja, es geht Automatisierung An/Aus/ neu laden / auslösen / Neustarten.

Ich glaub in HA gibts nix was nicht geht

Uh, wie zitiert man hier?

Man könnte Zähler laufen lassen. Einen der zählt wann 100% das letzte Mal gesehen wurde und einen der zählt wann 5% das letzte Mal gesehen wurde. Wenn einer der beiden >14 Tage ist startet die jeweilige Automation, kehrt nach deren Beendigung zur Standardregelung zurück und resettet den jeweiligen Zähler.
Ist mir nur jetzt noch zu kompliziert, ich habe noch keine Zeile YAML geschrieben…

Einfach den Text markieren den du zitieren möchtest, dann ploppen die Zitieren-Option daran auf.

YAML ist oftmals gar nicht nötig. Man kann mittels der Bausteine im Automatisierungseditor sehr sehr viel direkt über das UI machen. Und was du dann zusammengeklickt hast, kannst du dir anschließend als YAML Code anzeigen lassen.

Moin, ich bin auch neu und profitiere von eurer Hilfe! Hier im NordWesten scheint gelegentlich die Sonne, deswegen habe ich den Profi Fronius und BYD als Stromerzeuger gewählt.

Hier kannst Du Dich in die Register von modbus einlesen:

Wenn Du angepasste Skripte oder meine Automationen als YAML-Datei haben möchtest, give me a call …

Ich habe davon abgesehen, weil Fronius auch die Ladeintervalle mit berechnet und über den Energiekosten-Assisten habe ich das Rundumsorglospaket. Das wir dann vielleicht mal ersetzt:

Viel Spaß beim basteln!

1 „Gefällt mir“

Hi Dampf,

wie kommunizieren wir denn bezüglich Skripten und Automationen? Den YAML Code kann man hier bequem reinkopieren, ich denke das ist besser als Screenshots vom visuellen Editor, oder?

Ich habe am Wochenende etwas rumgebastelt. Zum einen habe ich mir ein Skript geschrieben, dass das Entladen der Batterie über zwei Modbus Register abschaltet. Dann ausgeführt und bis jetzt bleiben die Register gesetzt. Wenn das so bleibt ist die Frage schon mal beantwortet.

Btw. Wie erstelle ich eigentlich eine Schaltfläche die ein Skript ausführt? Habe es jetzt über das Menu ausgeführt.

Dann habe ich mir weitere Skripte geschrieben die die Ladeleistung begrenzen und die ich über die Automation aufrufen möchte. z.B:

alias: Standard 95% 0,05c
sequence:
  - data:
      slave: 1
      address: 40348
      value: 1
      hub: gen24
    action: modbus.write_register
  - data:
      address: 40356
      slave: 1
      hub: gen24
      value: 5
    action: modbus.write_register
mode: single
icon: mdi:battery-charging

Wie kann ich eigentlich Kommentare in die Skripte einfügen? Habs mit # am Anfang der Zeile versucht, aber wenn ich speichere und das Skript wieder öffne ist alles mit # weg.

Dann im visuellen Editor den Anfang der Automation zusammengeklickt aber hier als YAML eingefügt.

alias: Standard Batterie Ladestrombegrenzung
description: ""
triggers:
- type: battery_level
device_id: 1f68df770925f...
entity_id: 623545e1489a...
domain: sensor
trigger: device
below: 95
conditions: []
actions:
- action: script.standard_95_005c
metadata: {}
data: {}
mode: single

Hier habe ich nun Fragen. Die Automation soll auf verschiedene Ladzustände mit verschiedenen Skripten reagieren. Wie setze ich das am besten um? Hier habe ich nun nur auf Ladezustand <95% geprüft und führe dann das Skript aus, das den Ladestrom auf 0,05c (500W) begrenzt.
Wie bekomme ich die anderen Zustände automatisiert? Bei <90% soll das Skript für 0,1c ausgeführt werden, usw.
Arbeitet man mit IF…THEN Abfragen? Ist es hier besser auf “kleiner als” zu prüfen oder auf “größer als”. Macht die Reihenfolge der Abfragen einen Unterschied?

Danke noch an joachim-xo: Register habe ich ja und jetzt hat es mich gepackt und ich will selber wissen wie das geht.

Definitiv Yaml, mit einem Screenshot lässt sich relativ wenig anfangen.

Einfach eine Entität Karze aufs Dashboard legen mit dem Script als Entität. Oder ein Button als als Tab Aktion, dann das Script ausführen.

Wenn Du Automaionen oder Scripte in der GUI erstellen tust, gar nicht.
Du hast nur die globale Beschreibung zur Verfügung.

Du kannst aber auch altmodisch die Scripte und Automationen direkt in den Yaml Dateien erstellen.
Dann kannst Du jede einzelne Zeile kommentieren. Dann lassen sich diese aber nicht mer in der GUI bearbeiten.

Was das Thema unterschiedliche Auslöser angeht.
Du kannst mehrere Auslöser verwenden. Vergibst jedem Auslöser eine Auslöser ID

Als Aktion wählst Du dann den Baustein Auswählen.
Und für jeden Auslöser der unterschiedliche Aktionen ausführen soll, dann eine Option mit der Bedingung Ausgelöst durch.

Gruß Osorkon

1 „Gefällt mir“

Ich habe sowohl eine Entität Karte als auch eine Knopf (Button) Karte probiert. Bei beiden muss ich nach dem Drücken der Karte noch in dem sich öffnenden Menu die Aktion starten. Gibts keine Karte die beim Drücken einfach die Aktion ausführt?

Entitäten Karte

Button Karte
Unter Interaktionen auf Umschalten umstellen

Gruß Osorkon

Hmmm, Danke, aber kann es sein, dass das Skript dann immer wieder ausgeführt wird? Dauerfeuer sozusagen?

Ich hatte noch meine normale Entitäten Karte zusätzlich auf dem Dashboard. Die konnte ich aber nicht mehr benutzen nachdem ich einmal auf die “Button/Umschalten” Karte gedrückt hatte.

Nein, es wird immer nur einmalig ausgefüllt. Egal ob über die Button Karte oder die Entitäten Karte ausgeführt.

Script

Gruß Osorkon