Tuto : Automatisation allumage et extinction d'une lampe avec détecteur de mouvement

Après avoir galéré tout dimanche pour automatiser l’allumage d’une ampoule avec un détecteur de mouvement et surtout l’extinction, je vais vous faire part de mon automatisation.

Le détecteur de mouvement est un module zigbee Hue motion appairé sous Z2MQTT.
Il est réglé avec un timeout de 20s : en cas de détection, il reste sur « occupation » pendant au moins 20s même s’il ne détecte plus rien. Le réglage sous Z2M est « occupancy timeout » :

L’éclairage étant un lustre led, j’utilise un contacteur ON/OFF zigbee de la marche Sonoff appairé aussi sous Z2MQTT.

Dans l’automatisation, je mets comme déclencheur un changement d’état du détecteur :

Ensuite pour que le lampe ne s’éclaire pas lorsqu’il fait jour, je mets une condition sur la valeur de l’éclairement, autorisant de continuer que si je suis inférieur à 40 lux.

Enfin, j’ai 2 actions sous condition :

  • si le détecteur est occupé, j’allume la lampe
  • si le détecteur est non occupé (il passera à non occupé 20s après la dernière détection), j’éteins la lampe.

Et bien, ca ne MARCHE PAS !!!
J’allumais bien la lampe, mais elle ne s’éteignait jamais…

On dit que la nuit porte conseil… Ca a été vrai pour mon cas ;).
Mon problème venait de la position de la condition de l’éclairement dans mon scénario. Là où il était placé, l’automatisation faisait le test à chaque fois, or, lorsque l’allumais la lampe, la pièce étant suffisamment éclairée, le scénario s’arrêtait.

Il fallait mettre la condition uniquement avant l’action d’allumage et pas sur celle d’extinction.

voici donc le bon scénario :

alias: Allumage Buanderie
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.capteur_presence_buanderie_occupancy
conditions: []
actions:
  - if:
      - condition: state
        entity_id: binary_sensor.capteur_presence_buanderie_occupancy
        state: "on"
      - condition: numeric_state
        entity_id: sensor.capteur_presence_buanderie_illuminance
        below: 40
    then:
      - type: turn_on
        device_id: 242d41b628ed0783a41e7ae07e67478f
        entity_id: f183c586765bfc7638f2ba7f698b30ce
        domain: switch
  - if:
      - condition: state
        entity_id: binary_sensor.capteur_presence_buanderie_occupancy
        state: "off"
        for:
          hours: 0
          minutes: 0
          seconds: 0
    then:
      - type: turn_off
        device_id: 242d41b628ed0783a41e7ae07e67478f
        entity_id: f183c586765bfc7638f2ba7f698b30ce
        domain: switch
mode: single

J’espère avoir aidé quelques uns.
Stéphane