So richtig funktioniert die implementierung nicht.
um einen Besseren überblick zu bekommen. habe ich eine Benachrichtigung implementiert.
Aber auch die mach konische Sachen.
Ich würde auch gerne in der Benachrichtigung , die neu gesetzten Werte sehen. Das hat leider aber nicht funktioniert.
Die habe ich wieder zurück gebaut HA neu gestartet und bekomme jetzt solche Nachrichten:
der Yaml code:
alias: Anker Nulleinspeisung V2 (also so halbwegs)
description: ""
triggers:
- trigger: state
entity_id:
- sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt
conditions:
- condition: and
conditions:
- condition: state
entity_id: switch.mar_de_api_nutzung
state: "on"
- condition: state
entity_id: binary_sensor.system_mamohomespeicher_systemadministration
state: "on"
- condition: not
conditions:
- condition: state
entity_id: sensor.solarbank_e1600_betriebszustand
state: charge_priority
alias: Ist nicht im Ladeprioritätszustand
alias: Betriebszustandsprüfung
- alias: Prüfe Änderung der Einspeisevorgabe
condition: template
value_template: >
{{ (as_timestamp(now()) -
as_timestamp(states.number.solarbank_e1600_system_einspeisevorgabe.last_changed))
> 300 }}
- alias: Anker & Bedarfs-Werte vergleichen (oder)
condition: or
conditions:
- condition: template
value_template: >-
{{(float(states('number.solarbank_e1600_system_einspeisevorgabe')) *
1.25 ) <=
states('sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt') |
float}}
alias: Min-Wert ist um mind. 25% größer als Solarbank
- alias: Min-Wert ist um mind. 25% kleiner als Solarbank
condition: template
value_template: >-
{{ float(states('number.solarbank_e1600_system_einspeisevorgabe')) >=
(states('sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt') |
float * 1.24 )}}
- alias: Max ist gesetzt und es würde mehr benötigt werden
condition: not
conditions:
- condition: numeric_state
entity_id: sensor.solarbank_e1600_einspeisevorgabe
above: 799
below: 801
alias: 800W gesetzt
- condition: template
value_template: >-
{{(float(states('number.solarbank_e1600_system_einspeisevorgabe'))
* 1.25 ) <=
states('sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt')
| float}}
alias: Min-Wert ist um mind. 25% größer als Solarbank
- alias: Min ist gesetzt und es würde weniger benötigt werden
condition: not
conditions:
- alias: 100W gesetzt
condition: numeric_state
entity_id: number.solarbank_e1600_system_einspeisevorgabe
above: 99
below: 101
- condition: template
value_template: >-
{{ float(states('number.solarbank_e1600_system_einspeisevorgabe'))
>=
(states('sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt')
| float * 1.24 )}}
alias: Min-Wert ist um mind. 25% kleiner als Solarbank
actions:
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt
above: 49
value_template: " {{( (float(states('sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt')) * 2) + float(states('sensor.haus_leistungsbedarf_gesamt_mittelwert_5min_watt'))) / 3}}"
- condition: numeric_state
entity_id: sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt
value_template: " {{( (float(states('sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt')) * 2) + float(states('sensor.haus_leistungsbedarf_gesamt_mittelwert_5min_watt'))) / 3}}"
below: 801
sequence:
- metadata: {}
data:
value: >-
{{(
(float(states('sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt'))
* 2) +
float(states('sensor.haus_leistungsbedarf_gesamt_mittelwert_5min_watt'))
) / 3}}
target:
entity_id: number.solarbank_e1600_system_einspeisevorgabe
alias: >-
Vermittelten Wert aus Min (doppelt gewichtet) & Durchschnitt
einstellen
action: number.set_value
- action: notify.whatsapp_martin
metadata: {}
data:
message: Einspeisevorgabe geändert.
alias: Set Min 100-800W if not Set
- conditions:
- condition: numeric_state
entity_id: sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt
value_template: " {{( (float(states('sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt')) * 2) + float(states('sensor.haus_leistungsbedarf_gesamt_mittelwert_5min_watt'))) / 3}}"
above: 800
- condition: not
conditions:
- condition: numeric_state
entity_id: number.solarbank_e1600_system_einspeisevorgabe
above: 799
below: 801
sequence:
- metadata: {}
data:
value: "800"
target:
entity_id: number.solarbank_e1600_system_einspeisevorgabe
action: number.set_value
- action: notify.whatsapp_martin
metadata: {}
data:
message: Einspeisevorgabe auf 800 W geändert.
alias: Set Max 800W if not Set
- conditions:
- condition: numeric_state
entity_id: sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt
value_template: " {{( (float(states('sensor.haus_leistungsbedarf_gesamt_minimalwert_5min_watt')) * 2) + float(states('sensor.haus_leistungsbedarf_gesamt_mittelwert_5min_watt'))) / 3}}"
below: 100
- condition: not
conditions:
- condition: numeric_state
entity_id: number.solarbank_e1600_system_einspeisevorgabe
above: 99
below: 101
sequence:
- metadata: {}
data:
value: "100"
target:
entity_id: number.solarbank_e1600_system_einspeisevorgabe
action: number.set_value
- action: notify.whatsapp_martin
metadata: {}
data:
message: Einspeisevorgabe auf 100 W geändert.
alias: Set Min 100W if not Set
mode: single
Die Änderungshäufigkeit kommt mir sehr hoch vor und ist teilweise auch unter 3 Minuten
So richtig fehlt mir aber der Ansatz für die Fehlereingrenzung