@adfx
Besten Dank dir für die schnelle Hilfe.
Den Timeout im WR hatte ich nicht auf dem Schirm.
Hallo,
hier ist ja schon mehrfach nach einer Schritt für Schritt Anleitung für HA Anfänger gefragt worden. Gibt es die mittlerweile irgendwo oder wird es die hier noch geben? Ich komme mit den Code Schnipseln und den Angaben im Repo einfach nicht klar.
Gruß
oelidoc
Moin oelsidoc,
Ich denke eine schritt für schritt Anleitung wird es nicht geben. Das macht auch wenig sinn, da jeder ein klein wenig anderes setup hat. Am Ende ist es auch so, dass man in die Materie eintauchen muss. Ich helfe Dir gerne. Dafür brauchen wir hier aber mehr details zu deiner Anlage und eine art ist/soll-vergleich.
Als einstieg für dich und so bin ich auch vorgegangen:
- bring die modbus-steuerung von opti zum laufen.
Das ist dreh und angelpunkt der ganzen steuerung. Ganz grob aus dem Gedächtnis: - modbus im WR aktivieren
- modbus automation in HA implementieren
- helferentitäten zu der automation erstellen und damit erst mal etwas rumspielen. ZB akku auf pause, akku mit 1000W laden/entladen usw. Wenn das funktioniert geht es weiter mit der eigentlichen automation. Und da wird es dann komplex. Einfach das von opti zu kopieren wird nicht funktionieren. Nimm das aber als anhaltspunkt und guck was davon für dich brauchbar ist. Viel erfolg und ich bin gespannt auf deine fragen
VG
OK, die wichtigste Automation wäre:
alias: Akkusteuerung
description: ""
triggers:
- entity_id:
- input_select.akkusteuerung_sma_wr
- input_number.akkusteuerung_ladestaerke_soll
- input_number.akkusteuerung_entladestaerke_soll
from: null
to: null
for:
hours: 0
minutes: 0
seconds: 1
trigger: state
- minutes: /11
enabled: true
trigger: time_pattern
- event: start
trigger: homeassistant
conditions: []
actions:
- alias: Wenn Akku schnell Laden ...
if:
- condition: state
entity_id: input_select.akkusteuerung_sma_wr
state: Akku schnell laden
then:
- data:
hub: sma
address: 40151
slave: 4
value:
- 0
- 802
action: modbus.write_register
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- data:
hub: sma
address: 40149
slave: 4
value:
- 65535
- >-
{{ 65535 - states('input_number.akkusteuerung_ladestarke_soll') |
int }}
action: modbus.write_register
- alias: Wenn Akku schnell Entaden ...
if:
- condition: state
entity_id: input_select.akkusteuerung_sma_wr
state: Akku schnell entladen
then:
- data:
hub: sma
address: 40151
slave: 4
value:
- 0
- 802
action: modbus.write_register
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- data:
hub: sma
address: 40149
slave: 4
value:
- 0
- >-
{{ states('input_number.akkusteuerung_entladestaerke_soll') | int
}}
action: modbus.write_register
- alias: Wenn Akku Pause ...
if:
- condition: state
entity_id: input_select.akkusteuerung_sma_wr
state: Akku Pause
then:
- data:
hub: sma
address: 40151
slave: 4
value:
- 0
- 802
action: modbus.write_register
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- data:
hub: sma
address: 40149
slave: 4
value:
- 0
- 0
action: modbus.write_register
- alias: Wenn Akku Automatik
if:
- condition: state
entity_id: input_select.akkusteuerung_sma_wr
state: Akku Automatisch
then:
- data:
hub: sma
address: 40151
slave: 4
value:
- 0
- 803
action: modbus.write_register
mode: single
Den Input Select als Helfer erstellen mit den Optionen:
Akku Automatik
Akku schnell laden
Akku Pause
Akku schnell entladen
erstelle 2 input-Numbers:
akkusteuerung_ladestaerke_soll
min: 0, max: maximale Ladeleistung deines Batteriewechselrichters und stelle dieses erst einmal auf Max
akkusteuerung_entladestaerke_soll:
min: 0, max: maximale Entladeleistung deines Batteriewechselrichters und stelle dieses erst einmal auf Max
Definiere außerdem deinen Batteriewechselrichter per Modbus in der configuration.yaml
Falls du einen anderen Solarwechselrichter noch hast: den brauchst du hier nicht unbedingt.
modbus:
- name: sma
type: tcp
host: 192.168.x.x #<- IP des Batteriewechselrichters
port: 502
delay: 2
message_wait_milliseconds: 60
timeout: 5
sensors:
- name: SMA_Power_AC
unique_id: SMA_Power_AC
state_class: measurement
device_class: "power"
unit_of_measurement: W
slave: 4
address: 30775
data_type: int32
- name: SMA_Power_Day
unique_id: SMA_Power_Day
state_class: total
device_class: "energy"
unit_of_measurement: Wh
slave: 4
address: 30517
data_type: uint64
min_value: 0
Ersetze in beiden Codeschnipseln die Adressen durch deine korrekten Modbus - Register
Passe ggf. die Slave-Konfiguration an.
Wie das alles geht, ist hier in den Threads öfter beschrieben.
Danach testest du mit dem Input-Select. Stelle auf Akku schnell laden und dein Akku sollte sich aus dem Grid (oder halt bei genug PV auch nur daher) laden. Bei Pause sollte der Akku gehalten werden → Netzbezug.
Bitte habe Geduld, die Wechselrichter schalten zeitverzögert. Warte also bitte ca. 30 Sekunden, bis sich ne Änderung einstellt.
Danach baust du die Automationen, die diesen Select und die Input-Numbers steuert.
Mache dir vorher Gedanken über:
→ was will ich erreichen?
→ macht das überhaupt Sinn?
Fallback option: Akku Automatik
Beispiele sind:
Automation mit Choose:
Option 1: Tibber Preis negativ oder unter gewünschter Schwelle (ggf. auch input.number manuell setzen oder berechnen (z.B. 10. Perzentil vom Preis) → Akku schnell laden
Option 2: Tibber Preis sehr teuer → Akku Automatik (Speicher wird entladen)
Option 3: Akku über 80% und gerade billig, teure Phase heute Abend erwartet: Akku Pause (bis zur teuren Phase, dann wieder Automatik)
…
uups, überschnitten
ich sollte mir nicht so viel Zeit lassen
Hallo adfx,
hallo crusader85
vielen Dank für eure Hilfe, da hab ich jetzt erstmal dran zu kauen…
Was ich schon gemacht habe:
Die sma-se-akku-steuerung.yaml hab ich der automations.yaml hinzugefügt.
Den WR habe ich in der configuration.yaml angelegt.
Den Input Select Helfer habe ich angelegt.
Da weiss ich nicht, wie das geht, weil ich nicht weiss, was das in HA ist.
Was will ich erreichen? => Den Akku netzdienlich und schonend in Abhängigkeit einer Prognose mit wechselnden Leistungen laden. Tibber interessiert mich (noch) nicht.
Mein Setup: SMA Hybridwechselrichter STP8SE, SunnyHomeManager2.0, BYD HVS 7.7kWh
Gruß und Dank
oelsidoc
Du musst Dir dafür Helfer-Entitäten erstellen:
Einstellungen->Geräte & Dienste->Dann oben Helfer->Helfer erstellen ist dann unten rechts der blaue button. Damit erstellst Du Dir dann alle benötigten Helfer wie Crusader geschrieben hat.
Baue Dir eine Karte mit den Helfern und vllt mit einigen Anzeigen. Also PV, Akku und wenn Du hast Dein Netzzähler um zu sehen, ob die ModBus-Steuerung funktioniert. Das ist auf jeden Fall das erste was Du umsetzen musst. Viel Erfolg
Das hier sind die input_numbers:
Ah ja, das hilft weiter!
Vielen Dank
Alsooo: nach Umstellung auf slave 3 funktionieren Batterie Automatik und Pause, Schnell Laden und Entladen nicht
Wo muss ich suchen?
LG
oelsidoc
Wie heißen deine Entitäten für laden und entladen? Genau wie im akkusteuerung.yaml? Der name muss identisch sein. Evtl im steuer.yaml anpassen. Ist n schuss ins dunkle. Ohne infos kann ich nicht sagen wo du suchen sollst. Sonst schick mal die enstprechenden Auszüge aus den configs
poste mal deinen Code für die Automation und die Definition vom Modbus in der configuration. yaml
Okay, ihr seid ja fix - vielen Dank!
- id: '1747911403278'
alias: Akkusteuerung
description: ''
triggers:
- entity_id:
- input_select.akkusteuerung_sma_wr
- input_number.akkusteuerung_ladestaerke_soll
- input_number.akkusteuerung_entladestaerke_soll
from:
to:
for:
hours: 0
minutes: 0
seconds: 1
trigger: state
- minutes: /11
enabled: true
trigger: time_pattern
- event: start
trigger: homeassistant
conditions: []
actions:
- alias: Wenn Akku schnell Laden ...
if:
- condition: state
entity_id: input_select.akkusteuerung_sma_wr
state: Akku schnell laden
then:
- data:
hub: sma
address: 40151
slave: 3
value:
- 0
- 802
action: modbus.write_register
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- data:
hub: sma
address: 40149
slave: 3
value:
- 65535
- '{{ 65535 - states(''input_number.akkusteuerung_ladestarke_soll'') | int
}}'
action: modbus.write_register
- alias: Wenn Akku schnell Entladen ...
if:
- condition: state
entity_id: input_select.akkusteuerung_sma_wr
state: Akku schnell entladen
then:
- data:
hub: sma
address: 40151
slave: 3
value:
- 0
- 802
action: modbus.write_register
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- data:
hub: sma
address: 40149
slave: 3
value:
- 0
- '{{ states(''input_number.akkusteuerung_entladestaerke_soll'') | int }}'
action: modbus.write_register
- alias: Wenn Akku Pause ...
if:
- condition: state
entity_id: input_select.akkusteuerung_sma_wr
state: Akku Pause
then:
- data:
hub: sma
address: 40151
slave: 3
value:
- 0
- 802
action: modbus.write_register
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- data:
hub: sma
address: 40149
slave: 3
value:
- 0
- 0
action: modbus.write_register
- alias: Wenn Akku Automatik
if:
- condition: state
entity_id: input_select.akkusteuerung_sma_wr
state: Akku Automatisch
then:
- data:
hub: sma
address: 40151
slave: 3
value:
- 0
- 803
action: modbus.write_register
mode: single
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
modbus:
- name: sma
type: tcp
host: 192.168.178.48 #<- IP des Batteriewechselrichters
port: 502
delay: 2
message_wait_milliseconds: 60
timeout: 5
sensors:
- name: SMA_Power_AC
unique_id: SMA_Power_AC
state_class: measurement
device_class: "power"
unit_of_measurement: W
slave: 4
address: 30775
data_type: int32
- name: SMA_Power_Day
unique_id: SMA_Power_Day
state_class: total
device_class: "energy"
unit_of_measurement: Wh
slave: 4
address: 30517
data_type: uint64
min_value: 0
Die Namen der drei Entitäten hab ich mehrmals gecheckt - sind gleich wie in der Automations.yaml
by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)
bei der Definition ist die slave-id auf 4. Die müsste dann auch 3 sein
bitte auch gerne einen Trace deiner Akkusteuerung mitgeben
Okay, slave-id in der Definition auf drei geändert (Mann bin ich blind…)
Leider keine Änderung.
Trace in welcher Form posten? Sorry, hab ich noch nie gemacht
Trace findest du in der jeweiligen auto oben rechts.
Ich bin nach wie vor dabei, dass die Entitäten nicht korrekt sind wenn alles andere geht. Prüfe das noch mal genau fur die beiden input_number:
Jeweils anklicken und dann auf das zahnrad. Da findest du auch n copy button um den exakten namen in die Steuerung zu kopieren. Alle Entitäten sind case-sensitiv.
Die slave adresse mit 4 würde auch nur die beiden Entitäten poer-day/power_ac “ungültig” machen. Die modbus-steuerung benutzt die korrekte adresse 3 laut deinem post. Daran liegt es nicht. Hast du mal beobachtet ob der akku auch über minuten in zB pause bleibt oder setzt der sich wieder auf automatik?
Interessant wäre noch das Modell deines Wechselrichters. Ggf. sind es andere Modbus-Register.
Model ist der 8SE also der kleine Bruder von meinem. register sollten passen
Traces sind hier oben rechts:
Steuer den Akku in alle Modi: Pause/Auto/Laden/Entladen. Innerhalb der traces kannst du dann vor und zurück gehen. bitte einen screenshot von allen 4 modi schicken:
oben im bild siehst due die beiden pfeile zu den vergangenen traces
Und mir fehlt auch noch der yaml zu den helfer. da sehen wir ob tatsächlich der name stimmt. Viel Erfolg
Okay, fange mal von hinten an:
Es ist ein Hybrid-WR von SMA STP8SE, der Akku bleibt dauerhaft im Modus Pause. Die Entitäten habe ich noch mal mittels c&p eingefügt - sollten also passen. Traces kommen gleich, hab nebenbei noch was zu tun
Hallo adfx und crusader85,
tut mir leid, aber der WR reagiert jetzt gar nicht mehr und ich habe keine Zeit mehr, weil ich jetzt übers Wochenende nach Berlin muss. Ich würde mich dann gerne Anfang nächster Woche wieder melden und einen neuen Versuch starten.
Bis hier her schon mal einen herzlichen Dank für euer Engagement und eure prompte Hilfe - ich weiß das sehr zu schätzen.
Bis nächste Woche
oelsidoc
Nimm alles mit nach Berlin, ich fahre auch morgen früh, dann machen wir das eben fix dort Allerdings darf ich im Norden über Berlin bleiben und muss diesmal nicht durch bis in den Süden. Melde Dich, ich werde über Neuigkeiten hier im thread per mail benachrichtigt… HF in Berlin
Hast Du einen Sunny HomeManager 2 in der Anlage verbaut?