Notification actionnable à double actions - Ne marche qu'a moitié!

Bonjour à tous,

Je me retrouve confronter à un problème avec une de mes automatisations. Le but de celle-ci est, lorsque j’ouvre le garage, de me proposer 2 choix:

  • Soit de le laisser ouvert pour travailler dehors (action: UNLOCK) puis de se refermer automatiquement au couché du soleil
  • Le fermer au bout de 5 minutes (action: AUTOMATION).

Seulement la fonction AUTOMATION fonctionne correctement.
Voici mon code. Auriez-vous une explication ?

- id: '1691938933031'
  alias: 06-sensor porte garage Ouverte
  description: ''
  trigger:
  - type: opened
    platform: device
    device_id: cc20d73781ba5843b53fdfb85e3e4d48
    entity_id: binary_sensor.sensor_door_garage_contact
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 1
  condition: []
  action:
  - service: notify.notify
    data:
      message: La porte du garage a été détectée avec le statut OUVERT.
      title: HA - Info Porte Garage
      data:
        actions:
        - action: UNLOCK
          title: Laisser le garage ouvert
        - action: AUTOMATION
          title: Fermeture le garage automatique
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
    enabled: false
  - condition: state
    entity_id: binary_sensor.sensor_door_garage_contact
    state: 'on'
    enabled: false
  - service: notify.notify
    data:
      title: HA - Info Porte Garage
      message: La porte du garage a été détectée avec le statut OUVERT.
    enabled: false
  - if:
    - condition: state
      entity_id: binary_sensor.sensor_door_garage_contact
      state: 'on'
      for:
        hours: 0
        minutes: 1
        seconds: 0
    then:
    - service: switch.toggle
      data: {}
      target:
        device_id: 584cedf6f5119c7256807cecc6e6e177
    enabled: false
  - service: notify.notify
    data:
      message: La porte de garage a été fermé par automatisation
      title: Info HA Automatisation
    enabled: false
  - wait_for_trigger:
    - platform: event
      event_type: mobile_app_notification_action
      event_data:
        action: AUTOMATION
    timeout:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
    continue_on_timeout: false
  - delay:
      hours: 0
      minutes: 5
      seconds: 0
      milliseconds: 0
    enabled: true
  - service: switch.toggle
    data: {}
    target:
      entity_id: switch.porte_de_garage
  - service: notify.notify
    data:
      message: Vous avez demandé de fermé le Garage
  - wait_for_trigger:
    - platform: event
      event_type: mobile_app_notification_action
      event_data:
        action: UNLOCK
    timeout:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
    continue_on_timeout: false
  - wait_for_trigger:
    - platform: sun
      event: sunset
      offset: 0
  - service: switch.toggle
    data: {}
    target:
      entity_id: switch.porte_de_garage
  mode: single

Merci d’avance pour vos réponses. :slightly_smiling_face:

Salut,

faire tout ça dans une seule automatisation c’est pas facile.
Là seulement ton action AUTOMATION marche, c’est logique, car un « Wait for trigger » c’est bloquant… donc quand tu as envoyé ta notification, il ne continuera pas avant d’avoir reçu l’action AUTOMATION en réponse… et ce qui vient après ne sera en fait jamais vraiment fait…

Toute ton automatisation est trop séquentielle en fait… toutes les actions se passent l’une après l’autre… il faut, soit ajouter plus d’actions logiques ou morceler le travail.

De plus ta logique « UNLOCK » qui garde la porte ouverte jusqu’au coucher du soleil c’est aussi hasardeux, généralement faudrait essayer d’éviter d’avoir des automatisations qui restent active trop longtemps avec des wait for trigger sans timeout.

Pour commencer je partirais sur :

  • 1 automatisation qui s’occupe d’envoyer la notification.
  • 1 automatisation qui aura 2 trigger, 1 pour chaque réponse. Avec une action logique « Choisir » pour séparer les actions spécifiques à chaque réponse.
1 « J'aime »

Indices:
Pour chacun des déclencheurs on peut ajouter un ID:

Ensuite dans la partie action.
On peut prendre un « Choisir ». Et mettre dans les conditions « Déclenché par »
Qui va donner la liste des ID des déclencheurs. Ce qui va permettre de faire les actions de façon séparées.

1 « J'aime »