Ich habe Simons YT Video “Marstek - GÜNSTIGER PV Speicher für Home Assistant? (100LOKAL über MQTT!
)“ gesehen und den dazugehörigen Blogeintrag gelesen und scheitere trotzdem bei der Einrichtung.
Ich habe den Marstek B2500 erfolgreich in den lokalen Modus geschaltet und erhalte seine Werte in HA. In Simons Template habe ich meine Shelly Daten eingegeben. In der Automation habe ich ebenfalls, sofern ich das beurteilen kann, überall meine Daten eingefügt. Aber die Automation will einfach nicht gespeichert werden. Ich erhalte beim Speichern immer die Fehlermeldung:
“fehler: Automation-Einrichtung fehlgeschlagen Neue(s) Automation wurde gespeichert, aber das Warten auf die Einrichtung ist abgelaufen. Dies kann an Fehlern beim Parsen deiner Datei configuration.yaml liegen. Bitte überprüfe die Konfiguration in den Entwicklerwerkzeugen. Dein(e) Automation wird nicht angezeigt, bis dies korrigiert und die Automationen neu geladen wurden. Änderungen an Bereich, Kategorie oder Beschriftungen wurden nicht gespeichert und müssen erneut angewendet werden.“
Nachdem ich mich jetzt 2 Tage lang von ChatGPT habe gaslighten lassen, wende ich mich verzweifelt an euch. Soll ich mal meine Configuration.yaml und automations.yaml hier einfügen?
Ich benutze keinen Lesekopf, sonder einen Shelly pro3em
Nachtrag:
Automations.yaml
# yaml
- id: '1757841834711'
alias: Marstek B2500-D Nulleinspeisung (also so halbwegs)
description: ''
triggers:
- entity_id:
- sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt
trigger: state
id: Energy
- trigger: numeric_state
entity_id:
- sensor.hame_energy_hma_1_2419720d2b1e_battery_percentage
below: 11
alias: LowBat
id: LowBat
conditions:
- condition: or
conditions:
- alias: Energie-Bedingungen
condition: and
conditions:
- condition: trigger
id:
- Energy
- condition: not
conditions:
- condition: state
entity_id: sensor.hame_energy_hma_1_2419720d2b1e_battery_capacity
state: unknown
alias: Gerät ist nicht "unbekannt"
- condition: not
conditions:
- condition: state
entity_id: sensor.hame_energy_hma_1_2419720d2b1e_battery_capacity
state: unavailable
alias: Gerät ist nicht "nicht verfügbar"
- alias: 'Nicht: Max ist bereits gesetzt und es würde mehr benötigt werden'
condition: not
conditions:
- condition: and
conditions:
- alias: 800W gesetzt
condition: numeric_state
entity_id: number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value
above: 799
- alias: Min-Wert ist um mind. 10% größer
condition: template
value_template: '{{(float(states(''number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value''))
* 1.10 ) <= states(''sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt'')
| float}}'
- alias: 'Nicht: Speicherprio ist gesetzt und es würde weniger benötigt werden'
condition: not
conditions:
- condition: and
conditions:
- condition: state
entity_id: select.hame_energy_hma_1_2419720d2b1e_charging_mode
state: Fully Charge Then Discharge
- alias: Min-Wert ist um mind. 5% kleiner
condition: template
value_template: '{{ float(states(''number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value''))
>= (states(''sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt'')
| float * 1.04 )}}'
- alias: Ist & Bedarfs-Werte vergleichen (oder)
condition: or
conditions:
- condition: and
conditions:
- alias: Nur, wenn nicht innerhalb der letzten 3 Minuten getriggert wurde
(hierfür muss der Aktionsblock erreicht worden sein)
condition: template
value_template: '{{ state_attr("automation.marstek_b2500_d_nulleinspeisung_also_so_halbwegs",
"last_triggered") == None or ( as_timestamp(now()) - as_timestamp(state_attr("automation.marstek_b2500_d_nulleinspeisung_also_so_halbwegs",
"last_triggered")) |int(0) ) > 180 }}'
- alias: Min-Wert ist um mind. 10% größer
condition: template
value_template: '{{(float(states(''number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value''))
* 1.10 ) <= states(''sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt'')
| float}}'
alias: Mehr Energie wird benötigt & letzter Lauf ist mind. 3 Minuten her
- alias: Weniger Energie wird benötigt & letzter Lauf ist mind. 15 Sekunden
her
condition: and
conditions:
- alias: Min-Wert ist um mind. 3% kleiner
condition: template
value_template: '{{ float(states(''number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value''))
>= (states(''sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt'')
| float * 1.02 )}}'
- alias: Nur, wenn nicht innerhalb der letzten 15 Sekunden getriggert wurde
(hierfür muss der Aktionsblock erreicht worden sein)
condition: template
value_template: '{{ state_attr("automation.marstek_b2500_d_nulleinspeisung_also_so_halbwegs",
"last_triggered") == None or ( as_timestamp(now()) - as_timestamp(state_attr("automation.marstek_b2500_d_nulleinspeisung_also_so_halbwegs",
"last_triggered")) |int(0) ) > 15 }}'
- condition: not
conditions:
- condition: and
conditions:
- condition: state
entity_id: select.hame_energy_hma_1_2419720d2b1e_charging_mode
state: Fully Charge Then Discharge
- condition: numeric_state
entity_id: sensor.hame_energy_hma_1_2419720d2b1e_battery_percentage
below: 15
- condition: trigger
id:
- LowBat
alias: LowBat
actions:
- choose:
- conditions:
- condition: trigger
id:
- LowBat
sequence:
- action: select.select_option
metadata: {}
data:
option: Fully Charge Then Discharge
target:
entity_id: select.hame_energy_hma_1_2419720d2b1e_charging_mode
- action: number.set_value
metadata: {}
data:
value: '50'
target:
entity_id: number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.hame_energy_hma_1_2419720d2b1e_time_period_1_enabled
- stop: Akku erschöpft
alias: Wenn LowBat dann Energiemodus umstellen
- conditions:
- condition: numeric_state
entity_id: sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt
above: 29
value_template: ' {{( (float(states(''sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt''))
* 2) + float(states(''sensor.wohnung_leistungsbedarf_gesamt_mittelwert_5min_watt'')))
/ 3}}'
enabled: true
- condition: numeric_state
entity_id: sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt
value_template: ' {{( (float(states(''sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt''))
* 2) + float(states(''sensor.wohnung_leistungsbedarf_gesamt_mittelwert_5min_watt'')))
/ 3}}'
below: 801
sequence:
- alias: Vermittelten Wert aus Min (doppelt gewichtet) & Durchschnitt einstellen
metadata: {}
data:
value: '{{( (float(states(''sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt''))
* 2) + float(states(''sensor.wohnung_leistungsbedarf_gesamt_mittelwert_5min_watt''))
) / 3}}'
action: number.set_value
target:
entity_id: number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value
- if:
- condition: or
conditions:
- condition: state
entity_id: switch.hame_energy_hma_1_2419720d2b1e_time_period_1_enabled
state: 'off'
- condition: state
entity_id: select.hame_energy_hma_1_2419720d2b1e_charging_mode
state: Fully Charge Then Discharge
then:
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.hame_energy_hma_1_2419720d2b1e_time_period_1_enabled
- action: select.select_option
metadata: {}
data:
option: Simultaneous Charging/Discharging
target:
entity_id: select.hame_energy_hma_1_2419720d2b1e_charging_mode
alias: Wenn Deaktiviert, wieder aktivieren
- conditions:
- condition: numeric_state
entity_id: sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt
value_template: ' {{( (float(states(''sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt''))
* 2) + float(states(''sensor.wohnung_leistungsbedarf_gesamt_mittelwert_5min_watt'')))
/ 3}}'
below: 30
- condition: not
conditions:
- condition: state
entity_id: select.hame_energy_hma_1_2419720d2b1e_charging_mode
state: Fully Charge Then Discharge
sequence:
- alias: Vermittelten Wert aus Min (doppelt gewichtet) & Durchschnitt einstellen
metadata: {}
data:
value: '30'
action: number.set_value
target:
entity_id: number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value
alias: Set Min Watt if not Set
- conditions:
- condition: numeric_state
entity_id: sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt
value_template: ' {{( (float(states(''sensor.wohnung_leistungsbedarf_gesamt_min_5min_watt''))
* 2) + float(states(''sensor.wohnung_leistungsbedarf_gesamt_mittelwert_5min_watt'')))
/ 3}}'
above: 800
- condition: not
conditions:
- condition: numeric_state
entity_id: number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value
above: 799
sequence:
- metadata: {}
data:
value: '800'
action: number.set_value
target:
entity_id: number.hame_energy_hma_1_2419720d2b1e_time_period_1_output_value
- if:
- condition: or
conditions:
- condition: state
entity_id: switch.hame_energy_hma_1_2419720d2b1e_time_period_1_enabled
state: 'off'
- condition: state
entity_id: select.hame_energy_hma_1_2419720d2b1e_charging_mode
state: Fully Charge Then Discharge
then:
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.hame_energy_hma_1_2419720d2b1e_time_period_1_enabled
- action: select.select_option
metadata: {}
data:
option: Simultaneous Charging/Discharging
target:
entity_id: select.hame_energy_hma_1_2419720d2b1e_charging_mode
alias: Wenn Deaktiviert, wieder aktivieren
alias: Set Max Watt if not Set
- alias: Graveyard
choose: []
enabled: true
mode: single
Configuration.yaml:
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Text to speech
tts:
- platform: google_translate
template:
- sensor:
- name: "Netzeinspeisung" # <- Nur nötig, um die Entität vom SML-Lesekopf in HA auszuwählen
state_class: total_increasing
device_class: energy
icon: mdi:home-export-outline
unit_of_measurement: kWh
state: "{{ states('sensor.shellypro3em_2cbcbba72bcc_total_active_returned_energy')|float}}"
availability: "{{ is_number(states('sensor.shellypro3em_2cbcbba72bcc_total_active_returned_energy')) }}"
- name: "Netzbezug" # <- Nur nötig, um die Entität vom SML-Lesekopf in HA auszuwählen
state_class: total_increasing
device_class: energy
icon: mdi:home-import-outline
unit_of_measurement: kWh
state: "{{ states('sensor.shellypro3em_2cbcbba72bcc_total_active_energy')|float}}"
availability: "{{ is_number(states('sensor.shellypro3em_2cbcbba72bcc_total_active_energy')) }}"
- name: "Wohnung Leistungsbedarf gesamt (Watt)" # <- Berechnet den Leistungsbedarf für die Wohnung in Watt, damit wir das in der Automation nutzten können
unique_id: "WohnungLeistungsbedarfgesamtWatt"
unit_of_measurement: W
device_class: energy
state_class: measurement
state: "{{ (states('sensor.shellypro3em_2cbcbba72bcc_total_active_power') | float + states('sensor.hame_energy_hma_1_2419720d2b1e_micro_inverter_power') | float ) }}"
sensor:
- platform: statistics # <- 5 Minuten stimmt zwar nicht mehr (auf 2 geändert), aber so muss ich nicht die ganze Automation nochmal bearbeiten 😅
name: "Wohnung Leistungsbedarf gesamt Mittelwert 5Min (Watt)" # <- Mittel-Wert
entity_id: sensor.wohnung_leistungsbedarf_gesamt_watt
state_characteristic: mean
max_age:
minutes: 2
# Da die Automation schon nach 3 Minuten wieder nachjustiert, muss dieser Wert kleiner sein
sampling_size: 1200
percentile: 90
- platform: statistics # <- 5 Minuten stimmt zwar nicht mehr (auf 2 geändert), aber so muss ich nicht die ganze Automation nochmal bearbeiten 😅
name: "Wohnung Leistungsbedarf gesamt Min 5Min (Watt)" # <- Min-Wert
entity_id: sensor.wohnung_leistungsbedarf_gesamt_watt
state_characteristic: value_min
max_age:
minutes: 2
# Da die Automation schon nach 3 Minuten wieder nachjustiert, muss dieser Wert kleiner sein
sampling_size: 1200
percentile: 90
Nachtrag2:
Mir ist gerade aufgefallen, dass ich dieselbe Fehlermeldung auch bei ganz simplen Automationen erhalte. Ich hab gerade versucht einzustellen, dass wenn Shelly Total active Power über 700Watt registriert, dann soll Time Period Output Value auf 700Watt eingestellt werden. Ich habe die Geräte direkt im Automationsmodul ausgewählt. Ich weiß leider nicht, was das Problem ist.