Regelmäßige Wiederholung einer Benachrichtigung solange sich der Zustand nicht ändert

Hallo,
im Konkreten geht es darum, dass ich solange regelmäßig benachrichtigt werden möchte, dass die Haustür offen ist, bis diese geschlossen wird…
Mein Problem bei meinem unten stehenden Code ist, dass die Benachrichtigung 9x ausgegeben wird obwohl ich längst die Tür geschlossen habe!

alias: HaustürOffen
description: ""
trigger:
  - type: opened
    platform: device
    device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    entity_id: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 7
condition: []
action:
  - repeat:
      while:
        - condition: state
          entity_id: binary_sensor.eve_door_a61d_haustur
          state: "on"
          for: "00:00:03"
      sequence:
        - service: notify.alexa_media_zuhorenbitte
          data:
            message: Vorsicht die Haustür ist offen
            title: Haustür
            data:
              type: announce
              methode: all
        - service: notify.mobile_app_MeinHandy_local
          data:
            message: Vorsicht die Haustür ist offen
            title: HaustürOffen-Handy
mode: single

Für jede Hilfe vielen Dank

Zum einen ist Code schwierig zu lesen, wenn er nicht als Code formatiert ist.

Und wieso prüfst Du in der while Schleife noch, dass länger als X geöffnet ist? Wenn getriggert wurde ist dies ja der Fall. Also die Zeit Prüfung braucht es nicht.

Und wieso einmal Gerät und einmal Entität? Wenn Du beides mal die Entität prüfst, ist dies deutlich einfacher / sinnvoller.

Mal eben aus der Hüfte geschossen:

alias: "Tür Benachrichtigung "
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.wohnungstur_door_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 10
    to: "on"
condition: []
action:
  - repeat:
      sequence:
        - service: notify.mobile_app_iphone_13_pro
          data:
            message: Tür zu, es zieht!
        - delay:
            hours: 0
            minutes: 0
            seconds: 10
            milliseconds: 0
      until:
        - condition: state
          entity_id: binary_sensor.wohnungstur_door_sensor
          state: "off"
mode: single

Wenn meine Wohnungstüre länger als 10 Sekunden offen steht, erhalte ich alle 10 Sekunden eine Benachrichtigung, bis die Türe wieder geschlossen wurde.

Das dürfte sein, was Du möchtest, oder?

Entitäten usw. musst Du anpassen. Habe es nur schnell getippt.

1 „Gefällt mir“

Sorry für die Formatierung…

Na ja ich kann eigentlich nicht programmieren! ich habe diesen Code mit “+ Automatisieren erstellen” in Home Aassistant" und als YAML-bearbeiten geöffnet und kopiert.

Alles gut. Unter dem Zahnrad, wenn Du auf mobil bist, bei größeren Displays direkt, siehst Du die Option „Vorformatierter Text“. Damit wird Dein Code so dargestellt, wie Du ihn einfügst.

Siehst Du ja an meinem Beispiel oben. Habe es nicht anders gemacht und es schnell am Handy über die App gemacht.

Benachrichtigungen kommen bei mir gerade aufs Handy. Aber hier gibt es keine Alexa. (Nur eine Aleksandra, aber die ist gerade arbeiten und würde mich eher doof anschauen, wenn sie alle zehn Sekunden etwas wiederholen soll… :wink:)

Wenn Du eine neue Automatisierung anlegst, diese als yaml bearbeitest, den vorhandenen Code löschst, meinen Code einfügst, in die visuelle Bearbeitung wechselst und die Entitäten änderst und aus der Aktion ne Alexa Ansprache machst, sollte es funktionieren.

Super es hat funktioniert.

Vielen vielen Dank

1 „Gefällt mir“

Sehr sehr gerne. Vor allem, wenn es so einfach geht. :wink:

Als Tipp: Arbeite nicht mit Geräten sondern im besten Fall mit Entitäten. Der große Vorteil ist, dass wenn Du mal ein Gerät austauschen musst, weil es z.B. defekt ist, kannst Du es genau so benennen und es hat die selbe Entität. Dann läuft die Automatisierung nach Austausch weiter.

Wenn Du das Gerät verwendest, ist es auf dieses Gerät festgelegt. Selbst wenn Du es gegen das baugleiche Modell ersetzt, ist es ein anderes Gerät.
Eine Automatisierung ändern ist möglich. Zehn Automatisierungen ändern ist nervig. Wenn es mehr werden potenziert sich diese Nervigkeit. :wink:

Und ja, es sind noch wenige Automatisierungen. Aber wir haben alle mal mit „nur diese Kleinigkeit“ angefangen. :stuck_out_tongue_winking_eye:

1 „Gefällt mir“

Perfekt und bis zum nächsten mal, hoffentlich mit mehr Erfahrung in dieser für mich neuen großen Welt :slight_smile:

Das Forum lebt von Fragen und dem Austausch.

Ich überlege jetzt gerade, dass es sinnvoll wäre so eine Automatisierung bei mir einzureichen, auch wenn es (eigentlich) nicht vorkommt, dass die Türe offen bleibt.

Aber für Fälle die nicht vorkommen sollten, ist es um so sinnvoller, dass man entsprechend vorsorgt. :thinking:

Mir geht es gerade genauso, man holt sich hier so einige Ideen … die man so nie brauchen würde :rofl:

Auch die Geburtstagserinnerung aus dem anderen Thread :innocent:

1 „Gefällt mir“

Ok… jetzt muss ich danach gucken. Ich haben es geschafft den 18. meiner Schwester und sogar schon meinen eigenen Geburtstag zu vergessen. :stuck_out_tongue_winking_eye:

Na ja bei mir geht es um die Katze, die uns so schon mal so entlaufen ist

Vielleicht kennt das jemand hier:
Frau kommt hektisch nach Hause und muss dringend aufs Klo…
Der Schlüssel bleibt in der Tür stecken und die Tür bleibt offen
…und schon ist die Katze weg :slight_smile:

Hallo Zusammen,

ich klinke mich hier ein.
Irgendwo habe ich gelesen, dass wenn der Trigger seinen Zustand nicht verändert wird keine neue Benachrichtigung losgetreten.

Meine Automation sieht so aus und sollte, beim Messen des Abstands >40cm eine Nachricht auf Handy schicken.
Heute ist es wohl soweit, dass die Messung über 40cm ergab.
Nur, ich habe bereits 100Benachrichtigungen aufs Handy gekriegt.
Ich bräuchte aber lediglich nur eine, damit ich weiss, ich muss den Salz in die Anlage nachfüllen.
Wie kann ich das anstellen?:

alias: Enthaertungsanlage. Salzstand
description: Meldet Salzmangel in der BWT-Enthärtungsanlage
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.bwt_bwt_salzstand
    above: 0.4
condition: []
action:
  - service: notify.mobile_app_m2007j20cg
    metadata: {}
    data:
      message: Salz nachfüllen
      title: BWT
      target: notify.mobile_app_m2007j20cg
mode: single

Danke und VG

Alex.

Die Automatisierung sieht gut aus. Ich vermute aber, dass der Abstand ganz knapp bei 40cm liegt und immer wieder drüber und drunter meldet. Schau mal bei Verlauf nach dem sensor.bwt_bwt_salzstand

Edit:
Wenn dich z. B. nur 1x am Tag solch eine Meldung interessiert, könntest du eine Condition/Bedingung setzen

1 „Gefällt mir“

Danke Sirector,

leider ist das mir eine Nummer zu hoch.
Aber der Beitrag hat mich auf die Idee gebracht, mit einem Helfer zu arbeiten,
der Beim Auslösen der Nachricht auf ON gesetzt wird und dessen OFF Zustand das Absenden erlaubt.
Ich muss mir noch überlegen, wie ich ihn zurücksetzen kann wenn das Salz nachgefüllt wurde…

alias: Enthaertungsanlage. Salzstand
description: Meldet Salzmangel in der BWT-Enthärtungsanlage
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.bwt_bwt_salzstand
    above: 0.4
condition:
  - condition: state
    entity_id: input_boolean.helfer_enthaertungsanlage
    state: "off"
action:
  - service: notify.mobile_app_m2007j20cg
    metadata: {}
    data:
      message: Salz nachfüllen
      title: BWT
      target: notify.mobile_app_m2007j20cg
  - service: switch.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: input_boolean.helfer_enthaertungsanlage
mode: single

Schau mal hier

Habe exakt so umgesetzt (glaube ich) nur speichern kann ich es so leider nicht:

description: Meldet Salzmangel in der BWT-Enthärtungsanlage
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.bwt_bwt_salzstand
    above: 0.4
condition: template
value_template: >-
  {{
  (as_timestamp(state_attr('automation.notify.mobile_app_m2007j20cg,'last_triggered')) | int) + 600 <= now().timestamp() | int }}
action:
  - service: notify.mobile_app_m2007j20cg
    metadata: {}
    data:
      message: Salz nachfüllen
      title: BWT
      target: notify.mobile_app_m2007j20cg
mode: single

Der gleiche Fehler wie hier

condition: template
value_template: >-
  {{
  (as_timestamp(state_attr('automation.notify.mobile_app_m2007j20cg','last_triggered')) | int) + 600 <= now().timestamp() | int }}

Und die 600 sind Sekunden, also 10 Min. Ich würde es mind. auf 1h setzen

Leider auch mit Hochkomma lässt es sich leider nicht speichern:

description: Meldet Salzmangel in der BWT-Enthärtungsanlage
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.bwt_bwt_salzstand
    above: 0.4
condition: template
value_template: >-
  {{
  (as_timestamp(state_attr('automation.notify.mobile_app_m2007j20cg','last_triggered')) | int) + 3600 <= now().timestamp() | int }}
action:
  - service: notify.mobile_app_m2007j20cg
    metadata: {}
    data:
      message: Salz nachfüllen
      title: BWT
      target: notify.mobile_app_m2007j20cg
mode: single

So musst du die Condition schreiben


condition:
  - condition: template
    value_template: >-
      {{ (as_timestamp(state_attr('automation.notify.mobile_app_m2007j20cg','last_triggered')) | int) + 3600 <= now().timestamp() | int }}

Und das kann mMn nicht stimmen

automation.notify.mobile_app_m2007j20cg

Da gehort der Name/Slug der Automation rein. Ich vermute also

automation.meldet_salzmangel_in_der_bwt-enthartungsanlage

Danke.

Ich meine Du hattest bereits irgendwo erklärt, wie/wo man den Namen nachsehen kann?