Home Assistant – Un timer paramétrable sur une lumière

Je vous propose aujourd’hui un article qui vous expliquera comment éteindre la lumière automatiquement dès qu’un délai paramétrable sera dépassé.
Cerise sur la gâteau, ce délai est paramétrable directement depuis l’interface de Home Assistant.

Si vous vous demandez à quoi cela peut servir, je vais vous donner un exemple : imaginez que vos enfants n’éteignent jamais la lumière de l’escalier, et bien, cela le fera à leur place !

Pour mettre cet automatisme en place, on va d’abord configurer  l’objet qui va servir à paramétrer le timer.

input_number:
#**********************************************************
#* Timer de la cage d'escalier (minutes)
#**********************************************************
  timer_escalier:
    name: Timer escalier
    icon: mdi:timer
    initial: 2
    min: 1
    max: 10
    step: 1

Le script qui va être déclenché sur détection de l’évènement « on a allumé la lumière ». Le script se sert de la valeur du timer fixée par le curseur.

script:
#**************************************************************      
#* Eteindre le Rez-de-chaussée et allumer la cage d'excalier
#**************************************************************      
  timer_escalier:
    alias: "Timer Cage Escalier"
    sequence:
      - delay: '00:{{ states.input_number.timer_escalier.state | int }}:00'
      - service: homeassistant.turn_off
        data:
          entity_id: light.level_5

Le scénario d’automatisation qui va lancer ou stopper le script de gestion du timer suivant que l’on allume la lumière de l’escalier ou qu’on l’éteint.

automation:
#**************************************************************
# Gestion du timer des lumières de la cage d'escalier
#**************************************************************
  - alias: "Escalier: extinction automatique"
    trigger:
      - platform: state
        entity_id: light.level_5
        to: 'on'
    action:
      - service: script.turn_on
        entity_id: script.timer_escalier
  - alias: "Escalier: extinction manuelle"
    trigger:
      - platform: state
        entity_id: light.level_5
        to: 'off'
    action:
      - service: script.turn_off
        entity_id: script.timer_escalier

Enfin, voici comment déclarer le groupe qui porte l’interrupteur et le curseur pour régler le délai.

group:
  escalier:
    name: Cage d'escalier
    view: no
    entities:
    - light.level_5
    - input_number.timer_escalier

Et au final, cela vous donnera l’interface de pilotage suivante :