Automatisation via motion IR pour lumières

Hello,

Je voudrais automatiser les lumières d’une allée via un motion IR.

J’ai un HUE motion qui marche nikel, l’automatisation passe bien mais je voudrais eteindre les lumières avec XX secondes apres l’activation.
J’ai vu le blueprint HA mais il semble pas passer, quelqu’un aurait une astuce ?

La façon la plus simple: Tu utilises ton trigger, puis tu enchaine 3 actions: allumage, attente, extinction.

Exemple ci joint où le trigger c’est l’ouverture d’un contact sur le portail

Je teste dans les conditions:

  • qu’il fait nuit
  • que la lumière n’est pas déjà allumée (comme ça je n’éteint pas si elle était déjà allumée)

Salut,

Pour les temporisations, de ce type la solution de @BBE marche sans soucis.
Il faut juste être conscient du fait que les automatisations peuvent être réinitialisées en cas de redémarrage de HA ou de la machine. Du coup le délai est perdu.
Dans une tempo de 5min ça passe généralement bien, mais tu peux avoir des ca où ta lumière ne s’éteint pas toute seule.
Et tu peux avoir le cas où la lumière s’éteint alors que tu es encore dans la zone.
Idéalement il faudrait faire ça avec une timer et 2 automatisations:

  • une qui se déclenche au mouvement et qui allume la lumière et lance la temporisation. ou relance la tempo, si des nouveaux mouvement sont détectés.
  • une qui se déclenche sur l’évènement « fin » du timer qui éteint la lumière.

Je met juste les déclencheurs ici:

J’ai crée une seconde automatisation qui eteint la lumiere si pas de detection.

Cela marche bien mais j’ai un soucis :slight_smile: en fait l’activation de ma lumière se fait via un sonoff mini derriere un interrupteur. Du coup je l’actionne via HA ou via l’inter, tout marche bien.
Mais avec la detection et l’automatisation de la desactivation cela va eteindre la lumière meme si je l’ai allumé via l’inter, je voudrais bien ajouter une condition a mon code mais je vois pas comment je peux conditionner le fait que j’ai appuyé sur l’inter.

alias: MOTION IR - ENTREE - DESACTIVATION
description: ""
trigger:
  - type: no_motion
    platform: device
    device_id: fba485d1ce06f513efe30a139244493e
    entity_id: binary_sensor.motionir_occupancy
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 15
condition:
  - condition: sun
    before: sunrise
    after: sunset
action:
  - type: turn_off
    device_id: e1e1ac494b85e08d55b0303e5f5a8a18
    entity_id: light.basicminie1
    domain: light
mode: single

Ok j’ai trouvé comment faire : j’ai crée une variable input_number que j’incremente quand le motion se detecte et decremente apres xx secondes avec l’extinction des lumières.
Lors de l’automatisation d’extinction des lumières je regarde si la variable a été setée pour savoir si ca vient du motion ou pas.

1 « J'aime »

Avec le même soucis que gemalto sur une automatisation a l’ouverture d’une porte de garage, je m’en suis sorti en testant si la lumière etait ON depuis plus longtemps que le timer (ce qui est le signe d’une activation manuelle antérieure) pour couvrir ce genre de cas.

Suivant les situations il y a beaucoup de façons différentes de faire:

  • une automatisation avec un timer et extinction (qui marche bien pour les durées courtes et ponctuelles)
  • une automatisation d’allumage tempo et une d’extinction comme proposé par AlexHass (c’est la solution sans doute la plus complete)
  • une automatisation qui allume sur mouvement et une qui éteint en l’absence de mouvement durant x min (mais peut s’éteindre si les gens sont trop statiques).
  • une automatisation qui allume sur mouvement et une qui éteint en l’absence de mouvement durant x min en gérant l’activation manuelle comme le propose gemalto.
  • sans doute encore diverses façons…

Hello
Tu peux partager le code yaml de tes 2 automatisations?
Merci d’avance.

Salut,

Bon moi ce n’est pas pour une lumière, mais pour couper la télé et tout ce qui est au tour s’il ny a personne donc la logique et les conditions sont spécifiques. Notamment je relance le timer si la télé est allumée et que le compteur se termine.

alias: Télé - Détection présence
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.detecteur_mouvements_salon_occupancy
    to: "on"
condition: []
action:
  - service: timer.start
    data: {}
    target:
      entity_id: timer.delai_extinction_tele
  - if:
      - condition: numeric_state
        entity_id: sensor.tasmota_energy_power
        below: 4
    then:
      - service: switch.turn_on
        data: {}
        target:
          entity_id:
            - switch.tasmota
            - switch.tasmota2
            - switch.tasmota3
mode: single
alias: Télé - Fin Minuterie extinction
description: ""
trigger:
  - platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.delai_extinction_tele
condition: []
action:
  - if:
      - condition: numeric_state
        entity_id: sensor.tasmota_energy_power
        below: 40
      - condition: and
        conditions:
          - condition: state
            entity_id: binary_sensor.detecteur_mouvements_salon_occupancy
            state: "off"
    then:
      - service: switch.turn_off
        data: {}
        target:
          entity_id:
            - switch.tasmota
            - switch.tasmota2
            - switch.tasmota3
    else:
      - service: timer.start
        data: {}
        target:
          entity_id: timer.delai_extinction_tele
mode: single

Oui sans soucis.

J’ai crée un input_number à 0 dans la config, ensuite j’ai cette automatisation pour allumer la lumière :

alias: MOTION IR - ENTREE - ACTIVATION
description: ""
trigger:
  - type: motion
    platform: device
    entity_id: binary_sensor.motionir_occupancy
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 1
condition:
  - condition: sun
    before: sunrise
    after: sunset
  - condition: state
    entity_id: light.basicminie1
    state: "off"
action:
  - type: turn_on
    entity_id: light.basicminie1
    domain: light
  - service: input_number.increment
    data: {}
    target:
      entity_id: input_number.motionir_entree
mode: single

Puis l’automatisation pour eteindre :

alias: MOTION IR - ENTREE - DESACTIVATION
description: ""
trigger:
  - type: no_motion
    platform: device
    entity_id: binary_sensor.motionir_occupancy
    domain: binary_sensor
    for:
      hours: 0
      minutes: 0
      seconds: 40
condition:
  - condition: sun
    before: sunrise
    after: sunset
    before_offset: "00:30"
    after_offset: "00:30"
  - condition: numeric_state
    entity_id: input_number.motionir_entree
    above: 0
action:
  - type: turn_off
    entity_id: light.basicminie1
    domain: light
  - service: input_number.decrement
    data: {}
    target:
      entity_id: input_number.motionir_entree
mode: single

Ca me permet ainsi de gérer l’automatisation via le motion mais aussi via l’interrupteur sans que les lumières s’eteignent automatiquement apres 40 secondes si jamais j’ai allumé via l’interrupteur

Alternative avec Automoli (Appdaemon)

J’en ai une demi-douzaine et ça fonctionne vraiment bien.

auto_garage:
  module: automoli
  class: AutoMoLi
  room: GA
  motion_state_on: "on"
  motion_state_off: "off"  
  delay: 60
  daytimes:
    - { starttime: "07:00", name: jour, light: 100 }
    - { starttime: "20:00", name: nuit, light: 100 }
  lights:
    - light.mini_smart_switch_3_on_off
  motion:
    - binary_sensor.motion_garage_occupancy
    - binary_sensor.lk_zb_motion_01_iaszone

J’utilise également GitHub - haberda/light_automation: This appdaemon app fully automates your lights, with multiple on/off times, regular service data, and constraint options. pour des éclairages programmés

light_sunset_terrasse:
  module: light_automation
  class: light_automation
  entity_id:
    - light.shelly_25_terrasse_channel_2
  on_time: sunset - 00:15:00
  off_time: '23:00:00'