Homeassistant - Gekippte Fenster erkennen
Einleitung
Einer meiner Hauptwünsche für mein Smarthome war und ist die erkennung von gekippten Fenstern, da ich durchaus auch Fenster für längere Zeit gekippt lasse und bevor ich gehe, wissen möchte, welche Fenster offen sind und welche gekippt, da ich gekippte Fenster aufgrund der eingebauten Sicherung durchaus mal offen lasse…
Dementsprtechend habe ich mich nach Lösungen umgesehen, jedoch wurde ich nur sehr begrenzt fündig, da gekippte Fenster eher ein Deutsches? Ding zu sein scheinen…
Es gibt durchaus Lösungen, die das erkennen können, wie der ELV Homematic IP Fenstersensor. Dies wäre auch die optisch schönste Lösung. Da ich aber kein Homematic IP einsetzen möchte, habe ich nach günstigen und zuverlässigen Lösungen gesucht und bin schlussendlich auf den AEOTEC Zigbee Multipurpose Sensor gestoßen, welchen ich dann auch direkt 15x gekauft habe… bei einem Preis von ca. 30€ pro Sensor, halten sich diese preislich durchaus im angemessenen Rahmen und haben weiterhin ein paar nette erweiterungen, wie ein Gyroskop, einen Vibrationssensor und ein Thermometer.
Einrichtung in Homeassistant
Die Einrichtung geht über das ZigBee Addon in HASS ziemlich einfach, jedoch bekommt man lediglich 3 Sensoren
- Thermometer (Temperatur)
- IAS Zone (Magnetsensor)
- Accelormeter (Boolean -> Benannt mit isMoving)
Diese Werte können mir zeigen, ob ein Fenster auf oder zu ist, aber nicht ob es gekippt ist. Dementsprechend müssen wir die Werte des Gyros auslesen und das machen wir wie folgt:
Setup Helpers:
Zuerst benötigen wir 2 Helper -> Diese erstellen wir unter SETTINGS > DEVICES & SERVICES > Helpers
- Helper for Tiltvalue from sensor (Dieser Helper wird den Wert des Sensors beinhalten)
 TYPE: Number
 MIN: 0
 MAX: 200
 INFO: Im normalfall können diese Werte von -1400 bis +1400 reichen, jedoch reichen bei “normalen” Fentern diese Ranges
- Helper for isTilted boolean value (Dieser Helper wird als Boolean 
defineirt und zeigt, ob das Fenster gekippt ist oder nicht (zur 
Verwendung in einem Picture Elements Dashboard – wenn dieses nicht 
benötigt wird, braucht der Sensor nicht hinzugefügt werden)
 Type: Toggle
Toggle Sensor - Shows if the window is tilted or not (only needed for lovelace picture elements dashboard)
- Numeric Sensor - This Sensor holds the gyro value from the sensor
Setup Automation
Als nächstes müsssen wir eine Automation erstellen, welche die Werte 
vom Sensor an die Helper gibt, dafür erstellen wir eine neue Automation 
unter SETTINGS > Automations & Scenes > Automations
Kleine
 Info: Eine Automation kann anders als ein Script automatisch ausgeführt
 werden, ein Script muss manuell gestartet werden z.B. durch einen 
Button auf dem Dashboard. Daher müssen wir hier eine Automation nutzen.
Die Automation in YAML:
alias: GetTiltFromFensterKontaktBad
description: Setzt den FensterKippWert (X Achse) vom Bad
trigger:
  - platform: event
    #under this event the data are send (may vary when you use another sensor
    event_type: zha_event
    event_data:
      #your device ID -> under Setings > devices
      device_ieee: 28:6d:97:00:01:xx:xx:xx
condition: []
action:
  - service: input_number.set_value
    data:
      value: '{{ trigger.event.data.args.value }}'
    #change this ID to your helper ID
    entity_id: input_number.fensterkontaktbadneigungx
  - choose:
      - conditions:
          - condition: numeric_state
            #change this ID to your helper ID
            entity_id: input_number.fensterkontaktbadneigungx
            above: '0'
            below: '100'
        sequence:
          - service: input_boolean.turn_off
            data: {}
            target:
              #change this ID to your helper ID
              entity_id: input_boolean.fensterkontaktbadistgekippt
      - conditions:
          - condition: numeric_state
            #change this ID to your helper ID
            entity_id: input_number.fensterkontaktbadneigungx
            above: '100'
            below: '200'
        sequence:
          - service: input_boolean.turn_on
            data: {}
            target:
              #change this ID to your helper ID
              entity_id: input_boolean.fensterkontaktbadistgekippt
    default: []
mode: singleZuletzt kann man diese Daten jetzt noch in ein Dashboard integrieren, dafür kannst du dir folgenden Beitrag ansehen [Link]
Back…