Temperaturabhängiger Fensteralarm

Hallo Leute,

ich komme von free@home und habe dort schon jede Menge Automationen gebaut. Mit den Automationen in HA tue ich mich aber extrem schwer.

Ich will mir folgende Automation bauen:
Wenn en Fenster geöffnet wird soll geprüft werden, wie hoch die Außentemperatur ist, entsprechend sollen dann Aktionen durchgeführt werden.

12°C => keine Aktion
zwischen 5 und 12°C => Hinweis geöffnetes Fenster x nach 10 Minuten
<5°C => Hinweis geöffnetes Fenster x nach 5 Minuten
Wurde Fenster rechtzeitig wieder gestartet => Ende der Automation

Ich finde leider nicht mal einen Ansatz, wie man so eine Automation bauen könnte. Vielleicht kann mir hier jemand auf die Sprünge helfen? Ich erwarte keine fertigen Lösungen, Denkanstöße würden mir schon mal helfen.

Danke und Gruß
Thomas

Auslöser → Fenster von geschlossen zu geöffnet.

Wenn < 12 && > 5 Grad → 10 Minuten warten → Fenster offen → Benachrichtigung

Oder wenn < 5 Grad → 5 Minuten warten → Fenster offen → Benachrichtigung

Danke für die Antwort, aber so richtig hilft sie mir leider nicht weiter.
Ich bin mit Logik-Bausteinen durchaus vertraut, finde aber hier deren Anwendung nicht.

Das “Wenn” und “Oder wenn” aus deiner Antwort ist ja das “Dann” in einer Automation, richtig? Darin finde ich als Baustein “Wenn-dann”, in welche ich dann Aktionen einbauen kann. Aber ich finde nirgends ein “oder”.

Hast du vielleicht ein Yaml-Code-Beispiel, mit dem ich das nachvollziehen kann?

Ich würde es so machen:

alias: Fenster offen
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.wnd_bad_eltern_contact
    for:
      hours: 0
      minutes: 5
      seconds: 0
    id: 5min
    to: "on"
  - trigger: state
    entity_id:
      - binary_sensor.wnd_bad_eltern_contact
    for:
      hours: 0
      minutes: 10
      seconds: 0
    id: 10min
    to: "on"
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - 5min
          - condition: numeric_state
            entity_id: sensor.tmp_bad_eltern_temperature
            below: 5
        sequence:
          - action: notify.mobile_app_larss_iphone
            metadata: {}
            data:
              message: 5 Minuten und unter 5°C
      - conditions:
          - condition: trigger
            id:
              - 10min
          - condition: numeric_state
            entity_id: sensor.tmp_bad_eltern_temperature
            below: 12
            above: 5
        sequence:
          - action: notify.mobile_app_larss_iphone
            metadata: {}
            data:
              message: 10 Minuten und unter 12°C, über 5°C
mode: single

Gruß, Lars

Ein oder brauchst du ja nicht. Denn wenn das erste IF nicht stimmt, geht er ja automatisch weiter zum 2. IF.

2 „Gefällt mir“

VIelen Dank, das schau ich mir mal näher an!

Mach das und gib mal Rückmeldung, ob es klappt.

Ich habe das mal für mich angepasst, erhalte aber den Fehler “Message malformed: required key not provided @ data[‘actions’]” beim Versuch zu speichern!

alias: Fensteralarm temperaturabhaengig
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.dachfenster_buro_buro
    for:
      hours: 0
      minutes: 5
      seconds: 0
    id: 5min
    to: "on"
  - trigger: state
    entity_id:
      - binary_sensor.dachfenster_buro_buro
    for:
      hours: 0
      minutes: 10
      seconds: 0
    id: 10min
    to: "on"
conditions: []

actions:
  - choose:
      - conditions:
          - condition: trigger
            id: 
              - 5min
          - condition: numeric_state
            entity_id: sensor.temperatursensor_special_snowflake_temperature
            below: 5
        sequence:
          - action: notify.mobile_app_tpmobile14
            metadata: {}
            data:
              message: 5 Minuten und unter 5°C
              title: Test
      - conditions:
          - condition: trigger
            id: 
              - 10min
          - condition: numeric_state
            entity_id: sensor.temperatursensor_special_snowflake_temperature
            below: 12
            above: 5
        sequence:
           - action: notify.mobile_app_tpmobile14
              metadata: {}
              data:
                message: 10 Minuten und unter 12°C, über 5°C
                title: Test
           
mode: single

Schaul mal hier:

image

Da hast du eine falsche Einrückung - kontrolliere noch genau die Anzahl der Leerzeichen.

alias: Fensteralarm temperaturabhaengig
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.dachfenster_buro_buro
    for:
      hours: 0
      minutes: 5
      seconds: 0
    id: 5min
    to: "on"
  - trigger: state
    entity_id:
      - binary_sensor.dachfenster_buro_buro
    for:
      hours: 0
      minutes: 10
      seconds: 0
    id: 10min
    to: "on"
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - 5min
          - condition: numeric_state
            entity_id: sensor.temperatursensor_special_snowflake_temperature
            below: 5
        sequence:
          - action: notify.mobile_app_tpmobile14
            metadata: {}
            data:
              message: 5 Minuten und unter 5°C
              title: Test
      - conditions:
          - condition: trigger
            id:
              - 10min
          - condition: numeric_state
            entity_id: sensor.temperatursensor_special_snowflake_temperature
            below: 12
            above: 5
        sequence:
          - action: notify.mobile_app_tpmobile14
            metadata: {}
            data:
              message: 10 Minuten und unter 12°C, über 5°C
              title: Test
mode: single

1 „Gefällt mir“

Au man, du hast natürlich recht. Das hatte ich übersehen! Die Formatierung in YAML macht mich fertig, als PowerShell Scripter bin ich da einfach verwöhnt…

Danke dir!!!

Ist jetzt drin, ich werde testen und berichten.

Du wirst es dir sicherlich gedacht haben: es klappt super!
Vielen Dank, dass du mir auf die Sprünge geholfen hast.

Habe die Automation jetzt noch so angepasst, dass alle Fenster überwacht werden, das betroffene Fenster und die Temperatur gemeldet werden und auch über Alexa eine Info ausgegeben wird. Jetzt habe ich mit einer einzigen Regel alles überwacht und super Notifications. Besser als bei free@home, aber halt auch deutlich komplexer.

:pencil2: by tarag: Beiträge zusammengeführt

Hallo Leute. Habe eine ähnliche Automatisierung. Nur nicht Temperatur sondern Luftfeuchtigkeits abhängig. Ich sehe das die Automation auslöst. Nur bekomme ich keine Benachrichtigung auf Alexa und Smartphone. Wenn ich die Automation per Hand starte funktioniert sie.

alias: Fenster im Badezimmer ist noch offen
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.fenster_badezimmer_contact
    for:
      hours: 0
      minutes: 0
      seconds: 0
    to: "on"
conditions: []
actions:
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.badezimmer_temp_und_luftfeuchte_luftfeuchtigkeit
            below: 55
        sequence:
          - action: notify.alexa_media_erdgeschoss
            metadata: {}
            data:
              message: Das Fenster im Badezimmer ist noch geöffnet!
              title: Fenster Badezimmer
              data:
                type: announce
                method: all
          - action: notify.mobile_app_iphone_16_pro
            metadata: {}
            data:
              message: Das Fenster im Badezimmer ist noch geöffnet!
              title: Fenster im Badezimmer
mode: single

Hat da evtl einer ne Idee woran es liegen könnte?

Gruß

Was sagt denn der Trace-Verlauf?

Ist denn in dem Moment, wo du das Fenster öffnest die Luftfeuchtigkeit unter 55 ?

@LvS21 der Trace-Verlauf sieht meinermeinung nach gut aus.
grafik

@maxe nein die ist über 55 und soll bescheid geben wenn sie unter 55 gefallen ist. Habe ich da einen Gedankenfehler?

Edit: Wenn ich das Fenster öffne und der Wert liegt unter 55 schreit Alexa hier rum.

Ja hast du. Dein Trigger ist die Fensteröffnung und nicht die Luftfeuchtigkeit.

Du müsstest Trigger und Bedingung eher umdrehen.
Wenn Luftfeuchtigkeit unter 55 fällt und Bedingung Fenster offen, dann soll Alexa schreien.

1 „Gefällt mir“

Danke dir. So funktioniert es :+1:t3:

Mit Trigger und Bedingungen komme ich oft durcheinander. Das will einfach nicht in meinen Kopf, egal wie oft ich das versuche zu verstehen :man_facepalming:t3:

So, nachdem die Automation jetzt super läuft besteht natürlich auch gleich der Wunsch nach Verbesserungen :wink:
Ich würde nun noch gerne eine zusätzliche Erinnerung erzeugen. Wenn also ein Fenster trotz der Notification weitere x Minuten nicht geschlossen wird, dann soll eine weitere Notification erfolgen. Ich habe jetzt einfach mal mit einer Pause + Info experimentiert, die wird dann aber auch noch versendet, wenn das Fenster geschlossen wurde. Ist es auch machbar, hier nochmals eine Prüfung einzubauen oder aber eine getriggerte Automation abzubrechen, wenn der Trigger selbst nicht mehr vorhanden ist?

Sowas kannst du z.B. mit "Wiederholen bis Fenster geschlossen " machen

repeat:
  sequence:
    - action: notify.mobile_app_maxe
      metadata: {}
      data:
        message: Fenster schließen
    - delay:
        hours: 0
        minutes: 5
        seconds: 0
        milliseconds: 0
  until:
    - condition: state
      entity_id: binary_sensor.fenster
      state: "off"

3 „Gefällt mir“

Super, vielen Dank!!!

Du könntest auch mit Statistik Helfern arbeiten. Dann kannst du abhängig davon um wie viel Grad die Temperatur im Zimmer fällt alamieren.

Z.B. wenn die temperature in 15 min zum 2 Grad fällt, Spachausgabe in allen Räumen in denen Präsenz registriert wurde.
Und natürlich auf den Handys.

Guck mal hier: :blue_book: Home Assistant Helfer Kompendium 2/? :calling: [ Statistik] – smarthome & more