Automatisierung des Monats März

👉 Direkt auf YouTube schauen und abonnieren:
Smart Home & More auf YouTube

Home Assistant offene Fenster erkennen – meine beste Automatisierung für mehr Sicherheit

Ich bin nach Hause gekommen und habe etwas gesehen, das eigentlich nicht passieren sollte:
Ein Fenster war offen – im Erdgeschoss. Und niemand war zuhause.

Gerade wenn man sich intensiv mit Smart Home beschäftigt, ist das genau der Moment, in dem man merkt:
Das lässt sich besser lösen.

Genau daraus ist diese Automatisierung entstanden.

In diesem Beitrag zeige ich dir Schritt für Schritt, wie ich in Home Assistant eine Lösung umgesetzt habe, die mich zuverlässig warnt, wenn ich das Haus verlasse und noch Fenster offen sind – und zwar dynamisch, ohne starre Gruppen und ohne Wartungsaufwand.


Warum klassische Lösungen oft nicht funktionieren

Viele setzen Automatisierungen so um:

  • Fenster einzeln prüfen
  • mehrere Bedingungen hintereinander
  • manuelle Pflege bei neuen Geräten

Das Problem dabei:

Das Ganze skaliert nicht.
Jedes neue Gerät bedeutet zusätzliche Arbeit.
Und unterschiedliche Anforderungen lassen sich nur schwer abbilden.

Ich wollte eine Lösung, die automatisch funktioniert, sich selbst erweitert und langfristig wartungsarm bleibt.


Die Lösung: Labels statt Gruppen

Der entscheidende Unterschied in meinem Setup ist der Einsatz von Labels.

Statt feste Gruppen anzulegen, vergebe ich meinen Sensoren einfach ein Label, zum Beispiel:

Fenster

Damit kann ich später alle relevanten Sensoren dynamisch abfragen, ohne sie einzeln definieren zu müssen.



Wichtig:
Der Name muss exakt so auch im Template verwendet werden.


Der Trigger: Haustür als Auslöser

Die Automatisierung startet genau in dem Moment, in dem sie gebraucht wird:

Wenn ich das Haus verlasse.

Das erkenne ich über den Türsensor an der Haustür.


Trigger-Konfiguration

  • Zustand: geschlossen → geöffnet
  • Gerät: Haustür

Die zentrale Logik: Dynamisches Template

Jetzt kommt der wichtigste Teil.

Ich prüfe alle Entitäten mit dem Label „Fenster“ automatisch. D.h. , als Bedingung dient, dass tatsächlich auch eines der Fenster geöffnet ist.


{{ expand(label_entities('Fenster'))
| selectattr('state', 'eq', 'on')
| list | count > 0 }}

Was passiert hier genau

  • label_entities(‚Fenster‘) holt alle Sensoren mit diesem Label
  • expand() erweitert die Liste
  • selectattr filtert nur geöffnete Fenster
  • count > 0 stellt sicher, dass nur bei Bedarf ausgelöst wird

Der große Vorteil:
Neue Fenster werden automatisch berücksichtigt, ohne dass du etwas anpassen musst.


Benachrichtigung mit konkreten Fenstern

Ich bekomme nicht nur eine Warnung, sondern direkt eine Liste der offenen Fenster.


{{ expand(label_entities('Fenster'))
| selectattr('state', 'eq', 'on')
| map(attribute='name')
| list | join(', ') }}

alias: "Benachrichtigung: Offene Fenster beim Verlassen"
description: >-
  Sendet eine Push-Nachricht, wenn die Haustür geöffnet wird und noch Fenster
  (Label: Fenster) offen sind.
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.haustur_eg_contact
    to:
      - "on"
    from:
      - "off"
conditions:
  - condition: template
    value_template: |-
      {{ label_entities('Fenster') 
               | expand 
               | selectattr('state', 'eq', 'on') 
               | list | count > 0 }}
actions:
  - action: notify.mobile_app_iphone_tobias
    metadata: {}
    data:
      title: Fenster noch offen!
      message: |-
        Folgende Fenster sind noch auf:         
        {{ 
        label_entities('Fenster') 
        | expand             
        | selectattr('state', 'eq', 'on')             
        | map(attribute='name')             
        | list | join(', ') 
        }}
mode: single

Ergebnis

Die Nachricht enthält konkret die Namen der offenen Fenster, zum Beispiel:

„Folgende Fenster sind noch offen: Küche, Wohnzimmer, Büro“



Companion App einrichten

Für die Benachrichtigung nutze ich die Home Assistant Companion App.

Vorgehen:

  1. App installieren (iOS oder Android)
  2. Mit Home Assistant verbinden
  3. Gerät erscheint automatisch als Ziel für Benachrichtigungen

Alternativ kannst du auch andere Geräte nutzen, zum Beispiel Media Player oder Sprachassistenten.


Testen und Debugging

Ich teste Automatisierungen grundsätzlich vor dem produktiven Einsatz.


Vorgehen

  1. Entwicklerwerkzeuge öffnen
  2. Zustand eines Sensors manuell ändern
  3. Automatisierung auslösen


Warum diese Lösung so gut funktioniert

Diese Automatisierung hat sich bei mir im Alltag absolut bewährt.


Vorteile

  • dynamisch
  • wartungsarm
  • skalierbar
  • flexibel erweiterbar
  • sauber strukturiert

Was ich bewusst vermeide

  • statische Gruppen
  • harte Verdrahtung einzelner Sensoren
  • komplexe und unübersichtliche Automationen

Erweiterungsmöglichkeiten

Die Lösung lässt sich leicht ausbauen:

  • nur prüfen, wenn niemand zuhause ist
  • Verzögerung einbauen
  • Integration in Alarmanlage
  • Sprachausgabe
  • Anzeige im Dashboard

Mein nächstes Projekt

Mein aktuelles Home Assistant System ist über Jahre gewachsen.

Das führt dazu, dass sich viele Altlasten angesammelt haben:

  • nicht mehr genutzte Automationen
  • alte Variablen
  • unnötige Komplexität

Deshalb plane ich

Ein komplett neues Setup – ohne Backup.

Ziel ist ein sauberer Neustart mit:

  • klarer Struktur
  • minimaler Komplexität
  • besserer Wartbarkeit

Vorgehen

  • paralleles System aufsetzen
  • schrittweise Migration
  • bestehende Geräte weiter nutzen

Wenn dich das interessiert, schreib gerne „#Umzug“ in die Youtube Kommentare.

Effizient und Individuell: Home Assistant Blaupause in nur 20 Minuten erstellen!

Smart ohne Stress: Deine individuelle Home Assistant Blaupause in 20 Minuten – Keine Programmierkenntnisse erforderlich! Bonus: Lade den Blueprint von meiner Blog-Seite herunter, wenn du dir die Arbeit sparen möchtest!

Diese ZigBee Produkte verwende ich* :

Die Anleitung zu den Home Assistant Selectors findest du hier:

Selectors – Home Assistant (home-assistant.io)

Verwendete Automatisierungsvorlage:

alias: Bewegung_Blueprint
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.bewegungsmelder_buro_kuhlschrank_occupancy
    to: "on"
    id: Bewegung erkannt
  - platform: state
    entity_id:
      - binary_sensor.bewegungsmelder_buro_kuhlschrank_occupancy
    to: "off"
    for:
      hours: 0
      minutes: 2
      seconds: 0
condition: []
action:
  - if:
      - condition: trigger
        id:
          - Bewegung erkannt
      - condition: numeric_state
        entity_id: sensor.bewegungsmelder_buro_kuhlschrank_illuminance_lux
        below: 50
    then:
      - service: light.turn_on
        metadata: {}
        data: {}
        target:
          entity_id:
            - light.buro_klavinova_oben
      - service: switch.turn_on
        target:
          entity_id: switch.sonoff_octo_print
        data: {}
    else:
      - service: light.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: light.buro_klavinova_oben
      - service: switch.turn_off
        target:
          entity_id: switch.sonoff_octo_print
        data: {}
mode: single

Beispiel Blueprint :

Wenn du die Blaupause verwenden möchtest, würde ich mich sehr darüber freuen, wenn du meinen Kanal abonnierst. Danke 🙂

blueprint:
  name: Bewegungserkennung
  description: Schaltet Lichter ein, wenn Bewegung erkannt wird und eine Helligkeit unterschritten ist
  domain: automation
  author: smart home & more
  input:
      lichter_input:
        name: Lichter
        default: {}
        selector:
            entity:
              domain:
                - light    
      schalter_input:
        name: Schalter
        default: {}
        selector:
            entity:
              domain:
                - switch
      bewegungsmelder_input:
        name: Bewegungsmelder
        selector:
            entity:
              domain:
                - binary_sensor
              device_class: motion
      lichtsensor_input:
        name: Licht Sensor
        selector:
          entity: 
            domain:
              - sensor
            device_class: illuminance
      lichtsensor_value_input:
        name: Licht Intensität
        description: Licht wird eingeschaltet, wenn der Wert unter dem Eingabewert liegt
        default: 400
      triggerzeit_input:
        name: Einschalt-Zeit
        description: Zeitspanne , wie lange das Licht eingeschaltet sein soll
        selector:
          number:
            min: 0
            max: 60
            unit_of_measurement: minutes
mode: single
trigger:
  - platform: state
    entity_id: !input bewegungsmelder_input
    to: "on"
    id: Bewegung erkannt
  - platform: state
    entity_id: !input bewegungsmelder_input
    to: "off"
    for:
      hours: 0
      minutes: !input triggerzeit_input
      seconds: 0
condition: []
action:
  - if:
      - condition: trigger
        id:
          - Bewegung erkannt
      - condition: numeric_state
        entity_id: !input lichtsensor_input
        below: !input lichtsensor_value_input
    then:
      - service: light.turn_on
        target:
          entity_id: !input lichter_input
      - service: switch.turn_on
        target:
          entity_id: !input schalter_input
    else:
      - service: light.turn_off
        target:
          entity_id: !input lichter_input
      - service: switch.turn_off
        target:
          entity_id: !input schalter_input