Notification envoyée alors que toutes les conditions ne sont pas remplies

Bonjour,

Ma configuration: Home Assistant 2021.12.7 sur Raspberri Pi 3 avec hass.io

J’ai crée une simple automation pour armer l’alarme à une heure précise (trigger) selon les critères suivants :

  • toutes les portes sont fermées (condition 1) - pour cela j’utilise un template
  • aucun mouvement n’est détecté depuis 5 min (condition 2)

Si toutes les conditions sont remplies, j’arme l’alarme (action 1) et j’envoi une notification « Alarme auto test enclenchée » (action 2)

J’ai testé le cas ou les conditions sont remplies → ca fonctionne comme attendu

Ensuite j’ai testé le cas ou les conditions ne sont pas remplies (toutes les portes ne sont pas fermées). Dans ce cas là, l’alarme n’est effectivement pas armée mais je reçoit quand même la notification « Alarme auto test enclenchée »

Je ne comprends pas pourquoi la notification est envoyée car toutes les conditions ne sont pas remplies

Voici l’automation :

- id: '1642147941567'
  alias: TEST_AUTO_ALARM
  description: ''
  trigger:
  - platform: time
    at: 09:50
  condition:
  - condition: template
    value_template: '{{ states | selectattr(''entity_id'', ''in'', state_attr(''group.all_doors_windows'',''entity_id''))
      | selectattr(''state'',''in'',[''off'',''closed'']) | list | length == 11 }}'
  - type: is_no_motion
    condition: device
    device_id: d649310c388cb2104099fefe6da44652
    entity_id: binary_sensor.motion_salon
    domain: binary_sensor
    for:
      hours: 0
      minutes: 5
      seconds: 0
  action:
  - device_id: 136661cff8e6b2c698c6627434ceb3f7
    domain: alarm_control_panel
    entity_id: alarm_control_panel.alarmo
    type: arm_away
  - service: notify.notify
    data:
      message: Alarme auto test enclenchée
  mode: single

Edit : Mon template n’était pas bon. Au lieu de length >=1 il fallait mettre length == 11 (le nombre total de portes/fenêtres censées être fermées). Mais pour moi ca n’explique pas le fait que la notification ait été envoyée vu que l’alarme n’a bien pas été activée.

Merci de votre aide ! :slight_smile:

Perso j’ajouterai le « and » comme ça, avec une légère modif sur la deuxième condition :

  condition: and
  conditions:
    - condition: template
      value_template: '{{ states | selectattr(''entity_id'', ''in'', state_attr(''group.all_doors_windows'',''entity_id''))
        | selectattr(''state'',''in'',[''off'',''closed'']) | list | length == 11 }}'
    - condition: state
      entity_id: binary_sensor.motion_salon
      state: 'off'
      for:
        hours: 0
        minutes: 5
        seconds: 0

Le « and » ne s’applique donc pas par défaut ?

Edit : d’après la doc c’est censé l’être : conditions are and by default - all conditions have to be true.

Je vais quand même tester ta solution. Merci ! :slight_smile:

Bien tu me mets le doute maintenant :wink: