Offene Fenster und Türen

Hallo ich brauche Hilfe bei meiner Automation…

alias: Automatisierung offene Fenster und Türen

</>

description: ""
trigger:
  - type: opened
    platform: device
    device_id: aadcad20844eb77aa467bbf7355e9f69
    entity_id: ee28d1c111d18885fcb090ffc43f38b0
    domain: binary_sensor
    id: Küche
  - type: opened
    platform: device
    device_id: 5c4642852c5ca18b88cdb98f32a2a1f7
    entity_id: 17f9ac515cfef0a8d871742bcf6d88bd
    domain: binary_sensor
    id: Esszimmer
  - type: opened
    platform: device
    device_id: d1aeb1919387e4ad20f76f01f1b53f70
    entity_id: ba3016c393f8f0b979c0d019a1562098
    domain: binary_sensor
    for:
      hours: 0
      minutes: 8
      seconds: 0
    id: WC
  - type: opened
    platform: device
    device_id: 6e05205fac29161ea7ca19941bb348e6
    entity_id: aec6e3514244ff8378d83ba8a7be42fa
    domain: binary_sensor
    for:
      hours: 0
      minutes: 8
      seconds: 0
    id: Bad
  - type: opened
    platform: device
    device_id: ed02b3f0386a7c8c10370a13c5091faf
    entity_id: 3fd95645342a70cab7ceecc8dbc92c7c
    domain: binary_sensor
    for:
      hours: 0
      minutes: 8
      seconds: 0
    id: Dachfenster
  - type: opened
    platform: device
    device_id: 228e8b57904074ffe1aa1221cb71a3e8
    entity_id: add094ab1a6d338e8b4f613a89f7feb0
    domain: binary_sensor
    for:
      hours: 0
      minutes: 8
      seconds: 0
    id: Julian
  - type: opened
    platform: device
    device_id: e5a4f89bf51526dda5a19e2dff9f2f8c
    entity_id: 6aa16932380d1d7294980127eba93521
    domain: binary_sensor
    for:
      hours: 0
      minutes: 8
      seconds: 0
    id: Jannik
condition:
  - condition: numeric_state
    entity_id: sensor.0xa4c13827c1f137f6_temperature
    below: 15
action:
  - if:
      - condition: trigger
        id:
          - Küche
    then:
      - service: notify.alexa_media_echo_dot_kuche
        data:
          message: Terrassentüre in der Küche bitte schließen!!
          data:
            type: tts
      - repeat:
          sequence: []
          until:
            - type: is_not_open
              condition: device
              device_id: aadcad20844eb77aa467bbf7355e9f69
              entity_id: ee28d1c111d18885fcb090ffc43f38b0
              domain: binary_sensor
mode: single

Ich möchte gerne, dass die Alexa mir sagt welches Fester noch geöffnet ist und es solange wiederholt wird bis das jeweilige Fenster geschlossen ist.
Oder ist es besser für jedes Fenster eine eigene Automatisierung zu erstellen?
Gruß Alex

:crayon:by HarryP: Codezeilen formatiert (bitte immer </> verwenden)

Entweder so wie machen, wie du angefangen hast mit If / Then, dann aber die Aktion in den repeat setzen

action:
  - if:
      - condition: trigger
        id:
          - Küche
    then:
      - repeat:
          sequence:
            - service: notify.alexa_media_echo_dot_kuche
              data:
                message: Terrassentüre in der Küche bitte schließen!!
                data:
                  type: tts
          until:
            - type: is_not_open
              condition: device
              device_id: aadcad20844eb77aa467bbf7355e9f69
              entity_id: ee28d1c111d18885fcb090ffc43f38b0
              domain: binary_sensor

Oder ohne If arbeiten und in die message die Trigger ID mit rein nehmen

message: Fenster {{ trigger.id  }} ist noch geöffnet, bitte schließen!!

Ich danke dir für deine Hilfe

Ich habe es mit etwas Hilfe von diesem Forum und etwas basteln so gelöst:
Leider geht seit ein paar Tagen “last_call” mit der Alexa Integration nicht mehr, weshalb ich mich nun erstmal auf das am meisten verwendete Gerät beschränken muss.

alias: Offene Fenster und Türen
sequence:
  - service: alexa_media.update_last_called
    data: {}
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 2
  - service: notify.alexa_media_echo_wohnzimmer
    data:
      data:
        method: all
        type: announce
      title: Home Assistant
      message: |-
        {% set status = expand('binary_sensor.fenster_alle')
          | selectattr('state', 'eq', 'on') 
          | map(attribute='name') 
          | list 
          | join (', ')
          | replace('Fenster- und Türkontakt - Balkontür', 'Balkontür')
          | replace('Fenster- und Türkontakt - Wohnzimmer', 'Wohnzimmer')
          | replace('Fenster- und Türkontakt - Haustür', 'Haustür')
          | replace('Fenster- und Türkontakt - Dominik', 'Dominik')
          | replace('Fenster- und Türkontakt - Küche', 'Küche')
          | replace('Fenster- und Türkontakt - Spielzimmer', 'Spielzimmer')
          | replace('Fenstergriffsensor Jonas', 'Jonas')
          | replace('Fenster- und Türkontakt - Schlafzimmer', 'Schlafzimmer')%}
          {% if status == '' %}            
          {{ status|replace("", "Alle Fenster und Türen sind geschlossen!") }}       
           
           {% else %}           
               {{status}}       
           {% endif %}
mode: single
icon: mdi:window-open-variant

Das Skript muss dann nurnoch an Alexa übergeben werden auf Geräten mit Bildschirm mit Anzeige. Allerdings muss ich Alexa selber Fragen. Dafür habe ich eine Routine erstellt.

Hallo zusammen,

das mit der Fenstergruppe funktioniert mit einem normalen Kontakt prima, ich habe allerdings auch noch die Dreh-Fensterkontakte von Homematic, diese werden als sensor und nicht als binary_sensor angelegt, weil sie drei Status closed,open und tilted haben. Wie kann ich hier mehrere Fenster gruppieren und mit einem entsprechenden Script das jeweils offene Fenster ausgeben?

Dafür legst du dir einen Schalter an und trägst dieses in die configuration.yaml um den Sensor zu wechseln

template:
  - binary_sensor:     
    - name: "Fenster-Jonas-Status"
      unique_id: fenster-jonas
      icon: mdi:icon
      device_class: window
      state: >
          {{states('input_boolean.fenster_jonas_status') }}

Sowie als Automation

alias: Fenster-Jonas-offen
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.hmip_srh_0007dd899e2a8c
    from: closed
    to: open
condition: []
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.fenster_jonas_status
  - wait_for_trigger:
      - platform: state
        entity_id:
          - sensor.hmip_srh_0007dd899e2a8c
        from: open
        to: closed
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.fenster_jonas_status
mode: single

Damit wird der Sensor zum “On” und “Off” Sensor.

Super, auch eine Lösung, vielen Dank :slight_smile:
Ich habe gerade diese Lösung gefunden

{{ states.sensor | selectattr(‘state’, ‘eq’, ‘open’) | map(attribute=‘name’) | join(', ')}}

Das funktioniert auch schon sehr gut, es wird das offene Fenster mit Namen ausgegeben, allerdings würde ich die Ausgabe nun noch auf nur die Fenster die ein “EG” im Namen haben beschränken, aber das habe ich noch nicht hinbekommen.