Nachricht wenn Fenster zu lange auf

Ich möchte eine Automatisierung schreiben, die mich erinnert wenn unsere Fenster zu lange offen sind. Die Dauer bis die Fenster geschlossen werden sollen, soll Abhängig von der Außentemperatur sein. Hierfür hab ich mit eurer Hilfe folgendes Zustandstemplate “dauer_fensteroffnung” zusammengebaut:

{% set t = states('sensor.openweathermap_temperature') | float(0) %}
{% if t <= 0 %}
5
{% elif t > 0 and t <= 10 %}
10
{% else %}
15
{% endif %}

Die Benachrichtigung soll also kommen, wenn die Fenster entsprechend seit 5, 10 oder 15 Min offen sind.
Ich habe es einmal mit einer Automatisierung versucht:

alias: AZJ_Fenster_offen
description: Fenster im Arbeitszimmer ist offen
trigger:
  - type: opened
    platform: device
    device_id: xxx
    entity_id: xxxx
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 0
condition: []
action:
  - delay: 00:{{ states('sensor.dauer_fensteroffnung') }}
  - action: notify.pushover
    metadata: {}
    data:
      message: Fenster schließen!
      title: Fenster Arbeitszimmer Jan
mode: single

Das funktioniert soweit, jedoch kommt die Nachricht auch wenn das Fenster bereits wieder geschlossen wurde.
Die Lösung scheint die Bestätigungsfunktion mit einer Zustandsabfrage zu sein:

condition: state
entity_id: binary_sensor.FenstersensorXY
attribute: value_state
state: Offen
for:
  hours: 0
  minutes: 10
  seconds: 0

Ich bekomme jedoch meine Variable {{ states(‘sensor.dauer_fensteroffnung’) }} die beim Delay oben funktioniert nicht in die Zustandsabfrage.
Wenn ich sie einfüge:

alias: AZJ_Fenster_offen
description: Fenster im Arbeitszimmer ist offen
trigger:
  - type: opened
    platform: device
    device_id: xxx
    entity_id: xxxx
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 0
condition:
  - condition: state
    entity_id: binary_sensor.hm_sec_sco_oeq0222795
    attribute: value_state
    state: Offen
    for:
      hours: 0
      minutes: {{ states('sensor.dauer_fensteroffnung') }}
      seconds: 0
action:
  - action: notify.pushover
    metadata: {}
    data:
      message: Fenster schließen!
      title: Fenster Arbeitszimmer
mode: single

Bekomme ich den Fehler:

Message malformed: expected float for dictionary value @ data['condition'][0]['for']['minutes']

Nach der Fehlermeldung wird im YAML meine Variable in:

condition: state
    entity_id: binary_sensor.hm_sec_sco_oeq0222795
    attribute: value_state
    state: Offen
    for:
      hours: 0
      minutes:
        "[object Object]": null
      seconds: 0

geändert.

Wisst ihr was ich ändern muss? Oder habt ihr ggf. einen ganz anderen Weg parat?

Hallo, ich habe es mit diesem Video super hinbekommen (habe aber nichts mit der Temperatur gemacht). Vielleicht hilft es Dir weiter.
VG Alex

1 „Gefällt mir“

Hallo,
das sieht schon mal super aus und funktioniert statisch gut: wenn ich bei repeat eine Zahl eingebe klappt es.
Ich würde aber gern bei repeat den Wert meines Templates (ganz oben im ersten Post) einbauen und bekomme es partout nicht hin. Letzter Versuch war dieser (Auszug aus configuration.yaml):

alert:
  az_offen:
    name: Fenster im Arbeitszimmer offen
    entity_id: binary_sensor.hm_sec_sco_oeqxxxxxx
    state: "on"
    repeat: {{ states('sensor.dauer_fensteroffnung') }}
    skip_first: true
    notifiers:
      - mobile_app_handy

Laut dem Template-Editor kommt da genau das raus was ich haben möchte. Ergebnis:

alert:
  az_offen:
    name: Fenster im Arbeitszimmer offen
    entity_id: binary_sensor.hm_sec_sco_oeqxxxxxx
    state: "on"
    repeat: 15
    skip_first: true
    notifiers:
      - mobile_app_handy

Wenn ich in den Entwicklerwerkzeugen jedoch die Konfiguration prüfe kommt der Fehler:

Error loading /config/configuration.yaml: invalid key: "{"states('sensor.dauer_fensteroffnung')": None}"
  in "/config/configuration.yaml", line 19, column 0```

Du musst das Template in Anführungszeichen setzen!
Zusätzlich würde ich es noch als Integer formatieren, also ganze Zahl.

minutes: "{{ states('sensor.dauer_fensteroffnung') | int(0) }}"

Gruß
Osorkon