Kurz Beschreibung des Wunsches:
Electric Level soll mind. einmal alle 14 Tage 100% erreichen.
Wenn Electric Level 100% erreicht hat, soll MaxSoc auf 85% gesetzt werden
Prüfung dann bei 100% in letzten 14 Tage, lass oder stelle MaxSoc auf 85%
sonst stelle MaxSoc auf 100%
Mein Code geht nicht auf leider. ChatGPT erstellt.
Er hat zwar auf 85% gestellt, aber der Überprüfung heut morgen 03:00 hat er wieder auf 100% gestellt, obwohl Electric Level gestern 100% hatte.
Die Abfrage der letzten 14 Tage scheint nicht zu funktionieren, aber ich bin leider zu unwissend um hier weiter dran zu arbeiten.
alias: SOC Maximum automatisch setzen basierend auf Electric Level
description: >-
Setzt number.hyper_2000_soc_maximum auf 85% oder 100%, abhängig davon, ob der
sensor.electriclevel in den letzten 14 Tagen 100% erreicht hat.
triggers:
- at: "03:00:00"
trigger: time
conditions: []
actions:
- alias: Prüfe ob der Electric Level in den letzten 14 Tagen 100% erreicht hat
choose:
- conditions:
- condition: template
value_template: >
{% set entries = state_attr('sensor.electriclevel', 'history') %}
{% set now = now() %} {% set cutoff = now - timedelta(days=14) %}
{% for entry in entries %}
{% if entry.state | float == 100 and as_datetime(entry.last_changed) > cutoff %}
{{ true }}
{% endif %}
{% endfor %} {{ false }}
sequence:
- target:
entity_id: number.hyper_2000_soc_maximum
data:
value: 85
action: number.set_value
default:
- target:
entity_id: number.hyper_2000_soc_maximum
data:
value: 100
action: number.set_value
mode: single