Fronius & BYD Akku über Modbus steuern, Home Assistant
Für den direkten API-Zugriff auf den Fronius-Wechselrichter kann Modbus als Alternative zur Rest-API-Schnittstelle (Solar-API) verwendet werden. Modbus TCP ermöglicht es die Daten über das Netzwerk auszulesen und bestimmte Einstellungen zu ändern. So kann zum Beispiel das Laden oder Entladen erzwungen werden, oder eine Lade bzw. Entladebegrenzung eingestellt werden. Warum? Um noch mehr aus der Anlage heraus zu holen.
Voraussetzung Modbus-Setup:
Schnittstelle am Wechselrichter aktivieren
Für Modbus gibt es zwei verschiedene SunSpec Model Type: "int + SF" und "float":
Mit der aktuellen Firmware wurden die Begriffe etwas umbenannt: "Master" / "Slave" wurde zu "Modbus Client und "Modbus Server":
Alle in diesem Artikel erwähnten Register beziehen sich auf den SunSpec Model Type "int + SF".
Home Assistant - Setup
Damit sich Home Assistant auf die Modbus-Schnittstelle verbindet, habe ich folgende Zeilen in der configuration.yaml hinzugefügt.
modbus:-type:tcp# Put your Gen24 IP address herehost:192.168.1.137port:502name:gen24sensors:-name:reading_battery_settingsslave:1count:24address:40345scan_interval:5data_type:customstructure:">10H2h4H8h"
✓
Wer den SunSpec Model Type auf "float" gesetzt hat, muss zu den hier verwendeten Registern 10 addieren. z.B ist die Start-Adresse für das Lesen der Batterie 40345 für "int + SF", bei "float" müsste 40355 als Adresse verwendet werden: "address: 40355". +10 gilt für alle in diesem Artikel erwähnten Register.
Der Sensor "sensor.reading_battery_settings" liest alle relevanten Modbus-Register ein und dient als Basis für die später erwähnten Template-Sensoren:
Aus dem Sensor "reading_battery_settings", können die einzelnen Werte über ein value_template extrahiert werden:
{% set storCTL_mod= states('sensor.reading_battery_settings').split(',')[3] | int%}
{{ "in" if storCTL_mod == 1 else
"out" if storCTL_mod == 2 else
"in and out" if storCTL_mod == 3
else "auto" }}
MinRsvPct
40350
Sollwert für die maximale Entladungsrate. Standard ist MaxDisChaRte
Damit die Register in HA einzeln angezeigt werden können, habe ich für jeden der Register im Menü "Einstellungen", "Helfer" jeweils einen Template-Sensor erstellt: "BYD.StorCTL_Mod", "BYD.MinRsvPct", "BYD.OutWRte", "BYD.InWRte". Der Inhalt für den Template-Sensor kann aus der vorigen Tabelle entnommen werden.
Um mehrere Register in einem Ablauf zu ändern, habe ich Skripte für die einzelnen Aktionen angelegt:
Home Assistant Skripts
Ladeeinstellungen auf Standard setzen
Folgende Register setzten das Ladeverhalten auf die Standardwerte:
Register
Wert
Beschreibung
StorCTLMod
40348
0
keine Begrenzung
MinRsvPct
40350
500
Setzt MinRsvPct auf 5,0 % WChaMax
OutWRte
40355
10000
setzt outwrte auf 100%
InWRte
40356
10000
setzt inwrte auf 100%
Für das Setzen der Register bietet sich ein Skript an: "Einstellungen", "Automatisierungen & Szenen", "Skripte", "NEUES SKRIPT ERSTELLEN":
Um etwas mehr Reservekapazität im Akku zu behalten, können die Standardwerte leicht angepasst werden, indem der Wert für MinRsvPct auf z.B. 3000 für 30% Ladereserve gesetzt wird. Der gesetzte Wert über Modbus konkurriert mit den Einstellungen in der Fronius Weboberfläche: Der höhere Wert gewinnt:
Folgende Register setzten das Ladeverhalten auf die Standardwerte mit 30% Ladereserve (SoC):
Register
Wert
Beschreibung
StorCTLMod
40348
0
keine Begrenzung
MinRsvPct
40350
3000
Setzt MinRsvPct auf 30,0 % WChaMax
OutWRte
40355
10000
setzt outwrte auf 100%
InWRte
40356
10000
setzt inwrte auf 100%
Für das Setzen der Register kann ein zusätzliches Skript angelegt werden: "Einstellungen", "Automatisierungen & Szenen", "Skripte", "NEUES SKRIPT ERSTELLEN":
Um die Batterie unabhängig vom aktuellen Stromverbrauch oder der aktuellen PV-Leistung zu laden, können die folgenden 3 Register wie folgt gesetzt werden. Damit die Ladeleistung über das Lovelace-Dashboard geändert werden kann, habe ich vorab einen Input-Helfer erstellt:
Eingebunden im Dashboard kann die Ladeleistung komfortabel in der Oberfläche angepasst werden:
Hier die notwendigen Register-Einstellungen für ein erzwungenes Laden:
Dieses Verhalten kann durch Limitierung der maximalen Ladeleistung auf 0% erreicht werden => resultiert in Fenster [0 W, 3300 W]
Register
Wert
Beschreibung
StorCTLMod
40348
1
Bit 1 schaltet Ladegrenzwert aktiv, Bit-Muster: 01
OutWRte
40355
ist in diesem Fall nicht relevant
InWRte
40356
0
setze Ladelimit auf 0% von WchaMax
Weder Laden noch Entladen erlauben
Dieses Verhalten kann durch Limitierung der maximalen Ladeleistung auf 0% und Limitierung der maximalen Entladeleistung auf 0% erreicht werden => resultiert in Fenster [0 W, 0 W]
Laden und Entladen mit maximal 50% der nominalen Leistung
Dieses Verhalten kann durch Limitierung der maximalen Ladeleistung auf 50% und Limitierung der maximalen Entladeleistung auf 50% erreicht werden => resultiert in Fenster [-1650 W, 1650 W]
Laden im Bereich von 50% bis 75% der nominalen Leistung
Dieses Verhalten kann durch Limitierung der maximalen Ladeleistung auf 75% und Limitierung der maximalen Entladeleistung auf -50% erreicht werden => resultiert in Fenster [1650 W, 2475 W]
Register
Wert
Beschreibung
StorCTLMod
40348
3
schalte beide Grenzwerte aktiv, Bit-Muster: 11
OutWRte
40355
-50
setze Entladelimit auf -50% von WchaMax
InWRte
40356
75
setze Ladelimit auf 75% von WchaMax
Der Batteriestatus in Fronius Solar.web wechselt zu „Erzwungene Nachladung“
Dieses Verhalten kann durch Limitierung der maximalen Ladeleistung auf -50% und Limitierung der maximalen Entladeleistung auf 50% erreicht werden => resultiert in Fenster [-1650 W, -1650 W] 44
Einsatz in der Praxis: Home Assistant - Automatisierung
Um im Winter eine Restkapazität von 30 % im Akku zu behalten und damit im Notfall den PV-Point nutzen zu können und zudem möglichst keine Akkukapazität zu verschwenden, habe ich mir folgende Automatisierung überlegt:
Sollte der Akku voll geladen werden, soll auch die komplette Kapazität des Akkus zur Verfügung stehen, entsprechend soll das Ladelimit beim Erreichen eines Füllstands von 100 % auf den Standardwert von 5 % gesetzt werden.
Damit die eventuell gesetzte 30 % Ladereserve an sonnigen Tagen nicht verschenkt wird, könnte das Limit anhand der PV-Vorhersage in der Nacht auf den Standardwert von 5 % gesetzt werden: Die 30 % Ladereserve könnten dadurch noch konsumiert werden, bevor die PV-Anlage Strom produziert und den Akku wieder befüllt.
Zusätzlich, Daten auslesen: Home Assistant über SunSpec verbinden
Sunspec ist ein offener Standard für das Auslesen von Energiedaten. Das gleichnamige HACS-Repository "SunSpec" ermöglicht es per Modbus Daten vom Wechselrichter abzufragen:
Normalerweise funktioniert die automatische Eigenverbrauchs-Optimierung von Fronius für nahezu alle Alltagssituationen.
Ein Grund, warum ich dennoch in das Ladeverhalten eingreifen wollte, war die Tatsache, dass meine PV-Module zu Spitzenzeiten mehr DC-Leistung liefern könnten, als der Wechselrichter AC-seitig verarbeiten kann. Leider ist der Gen24 DC-seitig aber limitiert. Auch wenn die maximale Panel-Leistung des Gen24 10.0 Plus mit 15kW angegeben ist, kann der Gen24 nur ein klein wenig mehr DC Leistung verarbeiten als AC: bei insgesamt 11kW DC ist trotz Batterieladung Schluss.
Ohne Batterieladung ist bei ca. 10,3 KW DC Schluss.
Hallo Bernhard
Gibt es eine Möglichkeit die obere Barriere der %Batterie-Ladung zu setzen? Im GUI ist das "Maximaler Ladezustand". (Also quasi das Gegenstück zu MinRsvPct)?
Ich habe da nichts gefunden, was ich setzen könnte.
Vielleicht ist eine Umgehung möglich? zB. ich löse aus im HomeAssistant wenn die Barriere von 80% von unten her überschritten wird und verbiete das weitere Laden?
40348 = 1 && 40356 = 0 (&& 40355 belassen) .. ich seh grad das entspricht dem Bsp oben "Nur Entladen des Energiespeichers erlauben", korrekt?
Danke & Gruss
CMB
B
Bernhard
Hallo cmb,
ja, das sehe ich auch so. Zumindest im von Fronius dokumentierten Basic Storage Control Model gibt es meines Wissens kein direktes Gegenstück zu MinRsvPct für den maximalen SoC.
Deine Umgehung sollte aber passen:
40348 (StorCtl_Mod) = 1
40356 (InWRte) = 0
Das entspricht laut Fronius genau „Nur Entladen des Energiespeichers erlauben“. OutWRte ist in diesem Fall nicht relevant und kann unverändert bleiben.
Du könntest also in Home Assistant bei z.B. >= 80 % SoC die Ladebegrenzung aktivieren und bei einer etwas niedrigeren Schwelle, z.B. < 78 %, wieder auf Normalbetrieb (StorCtl_Mod = 0) zurückstellen. Die Hysterese würde verhindern, dass die Steuerung ständig um die 80-%-Grenze wechselt.
Ganz identisch mit dem im Fronius-GUI eingestellten „Maximalen Ladezustand“ ist das allerdings nicht: Du bildest die Grenze damit extern über Home Assistant nach.
LG
Bernhard
J
Jakob
Hallo Bernhard,
vielen Dank für diese Arbeit – das ist genau das, was ich gesucht habe.
Für alle, die einen Fronius Verto Wechselrichter mit einem BYD HVM+ (und vermutlich auch mit anderen BYD-Akkus) nutzen:
Ich habe jetzt einige Tage damit verbracht, das Setup aus diesem Blogbeitrag nachzubauen – leider zunächst ohne Erfolg. Erst vor ein paar Minuten hat es endlich funktioniert. An dieser Stelle auch vielen Dank an alle in den Kommentaren, die ebenfalls einen Verto verwenden. Diese Hinweise waren sehr hilfreich.
Die Lösung:
Die Ursache scheint recht einfach zu sein:
Wie bereits von anderen erwähnt, stimmen die Modbus-Adressen beim Verto nicht mit denen des GEN24 überein.
Der Hinweis mit 40364 war schon fast richtig – bei mir war jedoch 40365 korrekt.
Das bedeutet: Beim Fronius Verto müssen die Register-Adressen offenbar um +20 gegenüber dem GEN24 verschoben werden.
Sobald ich diese Adresse in der config.yaml angepasst hatte, wurden auch die richtigen Werte in den Helpern bzw. Sensoren angezeigt:
in der config.yaml: (nicht wundern ich habe alle HUB Namen bei mir von gen24 auf verto geändert, kann man aber auch so lassen, das ist nur für mich schöner da es ein verto ist)
Wichtig:
Damit die Skripte beim Verto auch korrekt schreiben, müssen alle Register-Adressen ebenfalls um +20 erhöht werden.
Sobald man das macht, reagiert das System sauber auf Änderungen – zum Beispiel bei Forced Charging.
Falls also jemand mit einem Fronius Verto und BYD-Akku kämpft und sich wundert, warum nichts funktioniert:
👉 Beim Verto scheinen die relevanten Modbus-Adressen um +20 verschoben zu sein.
Bei mir funktioniert es damit jetzt endlich.
Vielleicht hilft das jemandem und spart ein paar Stunden Fehlersuche. 🙂
R
raimo
Hallo Bernhard,
danke für deine Ausführungen. Ich habe seit ein paar Tagen einen Verto Plus mit einer BYD HVM. Kann es sein, dass die Adresse 40345 bei int&SF beim Verto Plus nicht die richtige ist? (Einstellungen im Verto Plus sind analog zu deiner Anleitung. Bloß mit dem aktuellen UI halt.) Ich bekomme da nur Kauderwelsch auf den Helfern raus. Welcher Wert aus welcher Doku liegt denn deiner 40345 zugrunde? Ich bemerke nämlich auch, wenn ich randon die Adresse in der configuration.yaml ändere, dann bekomme ich logischerweise auch andere Werte.
Der Fronius Support möchte nicht so richtig raus mit der Sprache was das anbelangt. Klar, die wollen halt ihren Energiekostenmanager verkaufen mit ihrer Premium Funktionalität. Ich kann mir aber beim besten Willen nicht vorstellen, dass das Schreiben via Modbus nicht mehr möglich ist, wie er beteuert. Im Verto kann ich explizit "Steuerung erlauben" anwählen...
Danke für deine Antwort.
R
raimo
edit:
Die richtige Adresse für einen Verto Plus ist 40364. Davon ausgehend kann man die ganzen Werte auslesen indem man lt. deiner Anleitung addiert. Leider macht das schreiben in ein Register wie z.B. StorCTL_Mod garnichts. Keine Ahnung wie die Ansteuerung hier läuft. Das reine value schreiben via Skript scheint es nicht zu tun bzw. sind die Werte offensichtlich nicht richtig...Hat einer eine Ahnung wie man da rankommt? Ich nutze momentan die "Verto_Inverter_Register_Map_3MPPT_Int&SF_storage_ROW" aus dem "gen24-modbus-api-external-docs" von Fronius direkt. Da habe ich auch die 40364 gefunden. Im Falle von StorCTL_Mod ist das aber ein "Bitfield". Wie steuert man sowas aus HA an?
A
anonym
Hi Raimo,
danke für deinen Kommentar. Mit der Addresse 40364 bzw. der Info, auch allen anderen Storage Registern 20 zu addieren hat es bei mir mit dem steuern des Verto Plus endlich geklappt!
Ich habe letztlich auf die callifo/fronius_modbus integration zurückgegriffen, da hier keine Skripte zum ändern der Werte notwendig waren. Das Repository habe ich manuell per HACS hinzugefügt bzw. geforkt um die Register (+20) anzupassen. Wenn die Register dabei noch automatisch erkannt werden würden, wie bei der SunSpec integration, wäre es ideal!
Grüße Peter
A
anonym
Hallo Raimo,
ich habe auch einen Verto Plus mit einer Reserva Batterie am laufen und würde auch gerne das ganze per modbus anbinden.
Ist deine geforkte allifo/fronius_modbus Integration irgendwie verfügbar oder kannst du mir beschreiben wie die Originalintegration anpassen muss?
Gruß
Jan
A
anonym
Hallo Bernhard,
vielen Dank für die sehr detaillierte Darstellung. Als Home Assistant Newby bin ich sehr gut damit zurechtgekommen. Ich besitze einen Gen24Plus. Softwarestand ist der letzte von Fronius veröffentliche. Die 4 Helfer sind angelegt (Register: 40348/ 40350/ 40355/ 40356) und nehmen die Werte aus den Deinen im Bereich "Home Assistant Skripts" vorgeschlagenen Skripte an. Die Skripte sind aus meiner Sicht auch korrekt in HA erstellt wurden (Einstellungen > Automation & Szenen > Skripte). Mit Start der jeweiligen Skripte passiert beim WR jedoch leider nichts. Mit Versionsupdate des SW-Standes hat sich die Maske bei "Kommunikation" > "Modbus" leicht verändert. Modbus Port/ SunSpec sowie Zähleradresse-Offset entsprechen Deinem Screenshot. Master/ Slave Auswahl ist jedoch im neuen SW nicht mehr vorhanden. Ist im Vergleich zu den Skipten jedoch mit "1" gesetzt. Hast Du eine Idee wie ich meinen WR überzeugt bekomme das zu machen was Home Assistant vorgibt? Danke und Liebe Grüße, Kalle
R
raimo
Ich hänge mich da mal mit meine verto plus dran.
Mit meiner hacs Senspec Integration kann ich die Werte ohne Probleme auslesen. Es scheint die Adresse in der configuration.yaml ist falsch… hat jemand Infos dazu?
S
Steffen Fasig
Moin Raimo, ich habe Kalla eine Antwort geschickt, die auch dein Problem lösen könnte.
Gruß Steffen
A
anonym
Hallo,
gibt es hier etwas Neues? Bei mir hat es seit fast einem Jahr an meinem Symogen24 ohne Probleme funktioniert, jetzt leider nicht mehr. Der Speicher wird nicht mehr richtig aus dem Netz geladen.
S
Steffen Fasig
Moin anonym,
ich hatte die gleiche Problematik und hatte diverse Foren durchforstet.
Ich war sogar kurz davor, den Firmwarestand zurück zu setzen.
Der heilige Gral bei dieser Sache ist zunächst zu überprüfen, ob in den Einstellungen der Batterie „Ladezustand Einstellungen“
„Batterieladung aus anderen Quellen“ der Punkt (aus anderen Generatoren im Heimnetzwerk und aus dem öffentlichen Netz) angehakt und gespeichert ist. Diese Optionen scheinen nach dem Update neu zu sein. ( Es ist Monate, wenn nicht sogar mehr als ein Jahr vergangen, dass ich da etwas einstellen musste.)
Weiterhin habe ich die Gen24 manuell neu gestartet, nachdem ich dies durchgeführt hatte, ergaben meine NodeRed Flows (lösen in Home Assistent erstellte scripte aus) wieder ein Ergebnis bei meinen Gen24.
Ich hoffe das dir und auch den anderen dies zum Erfolg führt.
VG Steffen
S
Steffen Fasig
Moin Kalle,
ich hatte die gleiche Problematik und hatte diverse Foren durchforstet.
Ich war sogar kurz davor, den Firmwarestand zurück zu setzen.
Der heilige Gral bei dieser Sache ist zunächst zu überprüfen, ob in den Einstellungen der Batterie „Ladezustand Einstellungen“
„Batterieladung aus anderen Quellen“ der Punkt (aus anderen Generatoren im Heimnetzwerk und aus dem öffentlichen Netz) angehakt und gespeichert ist. Diese Optionen scheinen nach dem Update neu zu sein. ( Es ist Monate, wenn nicht sogar mehr als ein Jahr vergangen, dass ich da etwas einstellen musste.)
Weiterhin habe ich die Gen24 manuell neu gestartet, nachdem ich dies durchgeführt hatte, ergaben meine NodeRed Flows (lösen in Home Assistent erstellte scripte aus) wieder ein Ergebnis bei meinen Gen24.
Ich hoffe das dir und auch den anderen dies zum Erfolg führt.
VG Steffen
A
anonym
Hallo Bernhard,
vielen Dank für diesen Artikel. Habe nun einen Fronius Verto Plus WR und eine Fronius Reserva Batterie. Ich habe auf gut Glück mal versucht ob deine Anleitung auch für diese Kombination funktioniert. Nachdem ich nun alle Skripte angelegt habe, sehe ich aber daß der Zustand der Sensoren InWRte und OutWEte keine Prozentwerte anzugeben scheint (aktuelle Werte -122.92 und -207.11 .. diese schwanken aber immer wieder). Nun traue ich mich die Skripte nicht auszuführen, weil ich ja nicht weiß welche Register ich überschreiben werde. 1) Weißt du ob die neue Verto-Serie die gleichen Registernummern anbietet wie Gen24? 2) Ist es egal ob es ein BYD oder ein Fronius Reserva Speicher ist, da der Wechselrichter einen Wrapper für die Batterie macht also entsprechend für den Speicher richtig mappt?
Danke und viele Grüße!
A
anonym
Woher bekommt der "Helfer Batterie mit einer bestimmten Leistung entladen (erzwingen)" den Wert mit welcher Leistung er entladen darf? Zwangsladung aus dem Netz, Ladung und Entladung Sperren und das Zurücksetzen funktionieren einwandfrei. Die Zwangsentladung macht aber einfach nichts.
B
Bernhard
Dazu wird in dem Beispiel der Wert von input_number.charging_power verwendet.
A
anonym
Das zwangsweise Laden hat bei mir bisher auch ohne diesen Helfer einwandfrei einfach mit der maximal möglichen Leistung funktioniert. Ich habe den Helfer jetzt erstellt, greift der dort eingestellte Wert dann sowohl beim zwangsweisen Laden und Entladen? Oder wird aus dem Netz automatisch immer mit der vollen möglichen Leistung geladen? Kann ich als obere und untere Grenze auch andere Werte eingeben? Mein Akku schafft auch gut 8 KW Ent-/Ladeleistung.
A
anonym
Hallo Fangemeinde, ich habe das Batterie Management Skript wie angegeben eingefügt es kommt jedoch die Meldung: Extra keys not allowed @data ‘trigger‘
Bin schon am verzweifeln
B
Bernhard
Hab die Automation gerade selbst nochmal kopiert und getestet. Ev. sind auch die Entitäten bei dir anders? Um den Fehler einzuschränken, könntest du mal versuchen Teile des Skripts zu entfernen: Trigger oder bedingte Aktion: bis der Fehler nicht mehr auftaucht ..
A
anonym
Danke für die Mühe, ich „Idiot“ hab es vorher nicht in automation Script geschrieben sondern ins normale Script
Jetz funktioniert es wie angegeben
Vielen Dank für die Informationen welche äußerst hilfreich sind und zudem eine Menge Zeit ersparen
Gruß SG aus Austria
A
anonym
Hallo zusammen,
erstmal danke für die tolle Ausarbeitung und Dokumentation.
Eine Frage hätte ich vorab. Muss man, damit das funktioniert am GEN24 im Bereich Eigenverbrauchs-Optimierung von "Automatisch" auf "Manuell" umstellen?
LG
Roman
B
Bernhard
Hallo Roman,
nein, die Eigenverbrauchsoptimierung kann auf automatisch bleiben. Wird beispielsweise die untere Ladegrenze (SOC) geändert, richtet sich die Eigenverbrauchsoptimierung nach dem geänderten Wert.
A
anonym
Hi,
ich habe ein Problem mit der Umsetzung.
Das script Force Charging habe ich so angelegt:
alias: Force charging
sequence:
- data:
slave: 1
address: 40348
value: 2
hub: gen24
action: modbus.write_register
- data:
address: 40355
slave: 1
hub: gen24
value: "{{ 65536 - (states('input_number.charging_power')|int(0) / states('sensor.wchamax')|int(1) * 10000)|int }}"
action: modbus.write_register
- data:
address: 40356
slave: 1
hub: gen24
value: "{{ (states('input_number.charging_power')|int(0) / states('sensor.reading_battery_settings').split(',')[0]|int(1) * 10000) | int }}"
action: modbus.write_register
- data:
slave: 1
address: 40350
value: 9900
hub: gen24
action: modbus.write_register
mode: single
icon: mdi:battery-charging
Ich bekomme immer beim ausfführen:
Fehler: value must be at least 0 @ data['value'][0]
Was mache ich falsch?
Vielen Dank für das script!
F
FlyByWire
Noch eine Info hierzu:
Wenn ich das script "Force charging" starte kommt im trace der Fehler "value must be at least 0 @ data['value'][0]"
Der value Wert zeigt hier "-15934464"
Ich denke das kann nicht stimmen?! Die anderen scripte, wie z.b. "Reset charging 30%" funktionieren. Hier wird auch geladen.
Auch habe ich nicht so richtig verstanden, was das script " Charge limit" tut?
B
Bernhard
Den Input-Helfer (Nummer) hast du angelegt: input_number.charging_power ?
Habs nochmal kontrolliert: Mein Script schaut identisch aus und wenn ich den Helfer auf 500 stelle, lädt mein Akku mit 500 Watt.
Charge Limit sollte die maximale Ladeleistung limitieren .. Also, wenn der Input-Helfer auf 500 wird die Ladeleistung auf 500 Watt limitiert.
F
FlyByWire
Hallo Bernhard,
ja, den Input helper habe ich angelegt. Wenn ich chargin_power verändere, änder sich auch der Wert von BYD.InWRte. Denke das funktioniert soweit?! Leider funktioniert das script Force charging aber weiterhin nicht. Bekomme immer die selbe Fehlermeldung für diese Sequenz:
Fehler: value must be at least 0 @ data['value'][0]
Wie sieht denn der value Wert bei Dir im trace von dem script aus?
A
anonym
Moin,
Ich war eben auch am basteln und stand vor der gleichen Herausforderung.
Lösung bei mir:
Der Sensor für wchamax heißt bei mir im HA „sensor.storage_wchamax“ (im Skript steht sensor.wchamax). Schau mal in deinen Entitäten, wie er bei dir heißt und ändere dies manuell im Skript ab.
F
Friedrich
Hallo Bernhard,
ich scheitere wie "anonym" am Fehler "Fehler: value must be at least 0 @ data['value'][0]" den Sensor "sensor.wchamax" habe ich angelegt (Wert ist immer 124) komme aber nicht weiter.
Ich verwende einen Fronius Symo Hybrid 5.0
Hast du vielleicht eine Idee?
LG Friedrich
F
Friedrich
Jetzt funktioniert es mit dem Fronius Symo Hybrid 5.0-3-s.
Modbus Einstellung: int + SF
Vielen Dank and Bernhard für die super Dokumentation!
A
anonym
ich bin soweot das erste Script zu erstellen. Leider kann nicht gespeichert werden
folgende Meldung:
Message malformed: extra keys not allowed @ data['sequence'][0]['mode']
hier der Yaml code: (die register sind auf den Fronius symo Hybrid angepasst)
alias: Reset charging
sequence:
- service: modbus.write_register
data:
slave: 1
address: 40309
value: 0
hub: fronius modbus
- service: modbus.write_register
data:
address: 40316
slave: 1
value: 10000
hub: fronius modbus
- service: modbus.write_register
data:
slave: 1
address: 40311
value: 500
hub: fronius modbus
- service: modbus.write_register
data:
slave: 1
address: 40317
value: 10000
hub: fronius modbus
mode: single
icon: mdi:home-battery
B
Bernhard
schaut so aus als wäre vor mode und icon eine extra Einrückung? mode und ico sollte auf der selben Ebene wie alias sein ..
A
anonym
Erstmal vielen Dank für die geniale Anleitung, ich hätte aber noch eine Frage zu dem Input-Helfer für die Ladeleistung. Und zwar wie man auf die in der Anleitung verwendeten Werte 500 bis 5000 kommt, meines Verständnisses nach müsste ja am Ende ein Prozentwert übergeben werden? Was genau wird denn mit {{ (states('input_number.charging_power')|int(0) / states('sensor.reading_battery_settings').split(',')[0]|int(1) * 10000) | int }} ausgerechnet, wenn ich den Input-Helfer wie in der Anleitung erstelle und dann z.B. 5000 einstelle? Bei mir wird dann das Register, wenn ich es richtig sehe, nämlich auf 0 gestellt.
B
Bernhard
Der Template-Sensor rechnet Prozent aus:
Ladeleistung / Akku-Kapazität * 10000
z.B. bei einer Akkukapazität von 10240Wh und einer Ladeleistung von 500Watt: 10240/500 * 10000 = 488
Sollte 4,88 % bedeuten.
A
anonym
Hallo zusammen,
meine Frage hat nur teilweise etwas mit der Steuerung des Akkus zu tun. Folgendes Problem: wen ich den Akku aus dem Netz lade, wird der Ladevorgang nicht dem Hausverbrauch (Energiedashboard in HA) zugeordnet, sodass merkwürdige Autarkiegrade angezeigt werden (z.B. -42%). Hat jemand noch das Problem, bzw. auch schon eine Lösung?
Fragen / Kommentare