Einen Sensor soll verzögert auslösen

Nabend zusammen,

ich habe einen Aquara Fenster Sensor, den ich als Trigger für meine Oldschoolklingel nutze.

Beim Klingeln wechselt er seinen Status “geschlossen” zu “offen”, über einen Helfer hab ich den Status getauscht, damit es zu einer Klingel passt:

binary_sensor:
      - name: Aqara Sensor Klingel
        icon: mdi:bell-ring-outline
        state: >
          {% if states('binary_sensor.aqara_sensor_klingel_contact') == 'on' %}
          off
          {% else %}
          on
          {% endif %}

Meine Frage: wie stelle ich es an, dass beim Klingeln der Status des Sensors (Egal ob der Aquara Kontakt oder der Helfer) den Status nicht sofort wechselt, sondern erst nach 5 Sekunden? - also verzögert.

Grund ist, dass beim Klingeln mein Tablett im Flur automatisch angeht und gleichzeitig ein Bubble Card Popup mit dem Videobild meiner Reolink. Das dies gleichzeitig passiert, öffnet manchmal das Popup nicht. Ich denke dass mit einem verzögertem Popup wird sich das Problem lösen, nur halt dass das Popup erst 5 Sek nach dem Klingeln erscheinen soll.

Anbei noch das Popup:

type: vertical-stack
cards:
  - type: custom:bubble-card
    card_type: pop-up
    hash: "#doorbell"
    button_type: state
    entity: binary_sensor.eingangstur_ding
    trigger_close: false
    trigger:
      - condition: state
        entity: binary_sensor.aqara_sensor_klingel
        state: "on"
    show_header: false
    auto_close: "30000"
    close_by_clicking_outside: false
    background_update: false
    margin_top_mobile: 40px
    margin_top_desktop: 40px
    width_desktop: 1200px
    bg_color: "#"
    margin: 7px
  - show_state: false
    show_name: false
    camera_view: live
    fit_mode: cover
    type: picture-entity
    entity: camera.kamera_einfahrt_standardauflosung_objektiv_0

Wow, Dinge gibts! Aus reiner Neugierde fragte ich ChatGPT und als ich die Antwort sah, dachte ich: Na, halluzinierst Dir wieder mal etwas zusammen ? :face_with_peeking_eye: Weil sowas kannte ich noch gar und auch hier im Forum nicht gesehen.

template:
  - binary_sensor:
      - name: "1_test_forum_delay1"
        unique_id: "1_test_forum_delay1"
        state: >
          {% if is_state('binary_sensor.aqara_fenstersensor_oben_rechts1_contact', 'on') %}
            off
          {% else %}
            on
          {% endif %}
        delay_on:
          seconds: 3
        delay_off:
          seconds: 3

Mehrfach getestet. Verzögerung geht wirklich mit binary_sensor :star_struck:

1 „Gefällt mir“

Man könnte auch einfach die Doku bemühen.
Finde, diese findet nur selten Beachtung.
Dabei ist diese TOP!

Gruß
Osorkon

3 „Gefällt mir“

War klar, einer mußte das ja sagen :zany_face:
Doku schauen ist aber ein richtiger Hinweis.

1 „Gefällt mir“

Nabend allerseits… dies werde ich mal dieses WE ausprobieren und berichten. Danke!

Die Doku zu studieren ist bestimmt eine gute Idee. Mit meinen Englischskills leider unmöglich… ich glaube, dafür ist der Zug bei mir schon abgefahren :face_with_peeking_eye:

Wenn man englisch nicht komplett versteht, nutze ich deepl.com gerne.

1 „Gefällt mir“

Moin zusammen,

ich habe es einige Tage versucht es selber herauszufinden, leider ohne Erfolg.

Bei mir funktioniert die oben beschriebene Lösung nicht :frowning:

Der Standard ohne Verzögerung läuft:

template:
    - binary_sensor:
      - name: Aqara Sensor Klingel Helfer
        icon: mdi:bell-ring-outline
        state: >
          {% if states('binary_sensor.aqara_sensor_klingel_contact') == 'on' %}
            off
          {% else %}
            on
          {% endif %}

Mit der Verzögerung läuft es nicht:

template:
    - binary_sensor:
      - name: "Klingel Verzögerung 3Sek Versuch 1"
        unique_id: "Klingel_Verzögerung_3Sek_Versuch_1"
        state: >
          {% if is_state('binary_sensor.aqara_sensor_klingel_contact', 'on') %}
            off
          {% else %}
            on
          {% endif %}
        delay_on:
          seconds: 3
        delay_off:
          seconds: 3

Hm. Das einzige was mir auffällt sind die Einrückungen. Ab binary_sensor Zeile sollte alles 2 Leerzeichen nach links und ab name wieder alles um eine Leerstelle nach rechts. Das widerspricht aber Deiner Aussage, daß ersteres geht.

template:
  - binary_sensor:
      - name: "Klingel Verzögerung 3Sek Versuch 1"
        unique_id: "Klingel_Verzögerung_3Sek_Versuch_1"
        state: >
          {% if is_state('binary_sensor.aqara_sensor_klingel_contact', 'on') %}
            off
          {% else %}
            on
          {% endif %}
        delay_on:
          seconds: 3
        delay_off:
          seconds: 3

Hast Du testweise mal mit einem anderen binary_sensor Sensor probiert?
Gleiches Ergebnis?

So ich habe es mit einem Sensor von meiner Balkontür getestet und es hat funktioniert.
Ich habe den Fehler auch schon gefunden, hätte aber noch keine Lösung.
Problem:
Es handelt sich um einen Sensor der Klingel, sprich der schaltet innerhalb einer Sekunde auf an und nachdem man den Klingelknopf los lässt auf aus (also eine Sekunde später)
Die Verzögerung löst aber nur aus, wenn der Zustand noch aktuell ist.
Ich drücke den Klingelknopf und halte den fest, 3 Sek später schaltet der Binärsensor auf AN, ich lasse nun die Klingel los und 3 Sek später schaltet der Binärsensor auf AUS.
Wie mit der Balkontür… ich öffne diese, 3 Sek später kommt der Zustand AUF, ich schließe die Tür → 3 Sek später ändert sich der Zustand auf ZU.
Öffne ich die Tür und schließe die sofort wieder, ändert sich auch bei der Balkontür nichts.

Interessantes Detail!

Dieses Phänomen wird man nicht mit delay einfangen können aber mit einem nachgelagertem Sensor

{% set klingel = 'binary_sensor.aqara_fenstersensor_oben_rechts2_contact' %}
{% set klingelstatus = states(klingel) %}
{% set last_on = states[klingel].last_changed %}
{{ klingelstatus == 'on' or (now() - last_on).total_seconds() < 5 }}

Es ist egal wie lange ich das Fenster öffne (1 s oder 5 s oder 10 s), der Sensor wird gleich TRUE und nach dem Schließen + 5 s wieder FALSE.

2 „Gefällt mir“

Du willst kein Delay einbauen in Form, Zustand muss x Sekunden andauern bis der Template Sensor diesen Zustand annimmt. Sondern du möchtest mit einer Verzögerung von xs den Zustand es Klingelt entgegen nehmen?

Nehmen wir den original Sensor:
binary_sensor.aqara_sensor_klingel_contact
Wenn es klingelt geht dieser in Zustand “OFF” Wenn die Klingel losgelassen wird in den Zustand “ON”, richtig?

Nun ein Template Sensor, der 5s nach dem die Klingel losgelassen wurde, also Zustand “on” für 5 s, den Template Sensor in den Zustand “on” schaltet und mit einer Verzögerung von 5 s in den Zustand “off”

Somit wird das Klingeln erst mit einer 5s Verzögerung durch den Template Sensor signalisiert.

template:
  - triggers:
      trigger: state
      entity_id: binary_sensor.aqara_sensor_klingel_contact
      to: "on"
      for:
        seconds: 5
    binary_sensor:
      - name: Klingel verzögert
        state: "{{ is_state('binary_sensor.aqara_sensor_klingel_contact', 'on') }}"
        unique_id: 17278860-59de-4bf4-98d9-04c94dabf374
        auto_off:
          seconds: 5

Ist es das was Du suchst?

Gruß Osorkon

2 „Gefällt mir“

So wieder da, sorry für das späte Feedback.

@Bacardi - TOP - vielen Dank für deine Unterstützung, damit funktioniert es perfekt.
@Osorkon - deine Lösung werde ich im Laufe der Woche noch ausprobieren und mich melden

Danke, danke, danke