Home Assistant #22: Como usar el Timer para mantener una luz encendida mientras hay movimiento

Home Assistant #22: Como usar el Timer para mantener una luz encendida mientras hay movimiento

Después de pelearme bastante tiempo con Timer una herramienta de Home Assistant que nos permite hacer algo sin tener que esperar un evento o, al menos, controlar el tiempo hasta que sucede, de hecho, sin tener que repetir automatizaciones, podemos hacer que esté funcionando de forma continuada.

Os explico lo que quería hacer para entender el funcionamiento de Timer en mi caso:

Tengo una luz en la cocina bajo la encimera (tengo pendiente publicar el cambio que le hice a la luz) que usando un sensor de movimiento, en mi caso un sensor de movimiento Aqara para poder controlar la luminosidad, enciende la luz cuando detecta movimiento, siempre que tenga menos luz de la indicada para que se encienda solo cuando empieza a faltar luz en la cocina.

La automatización, podría hacerse de forma sencilla usando el estado del sensor de movimiento, pero, al minuto y medio, la luz se apagaría si no detecta movimiento de continuo, algo molesto cuando estás haciendo algo en la cocina y, por tanto, había que mejorar ese comportamiento.

Estuve mirando como hacerlo y tenía pensado hacerlo por medio de algún indicador binario para saber cuando apagar o no la luz, pero, encontré los Timers y aunque me ha costado llegar a lo que creo que es la solución, lo tengo en pruebas, pero, seguro que a más de uno le puede ayudar a mantener la luz siempre encendida mientras sea necesario.

Declaración de Timer en configuration.yaml

Lo primero que tendremos que hacer es en nuestro configuration, declarar el Timer que queremos, que, en mi caso lo he puesto de 2:20 para dar un tiempo prudencial para confirmar que nos hemos ido:

timer:
  cocina:
    duration: '00:02:20'

Automations con Timer en Home Assistant

Una vez hecho eso necesitaremos 3 automations:

  • Encendido de la luz la primera vez que entramos a la cocina y se detecta movimiento, activando también el timer para que empiece a contar. Encendemos la luz cuando cocinaPIR_occupancy (el sensor de Aqara) siempre que la luminosidad en cocinaPIR_illuminance sea inferior a 12 lx:
- id: '1539039314913'
  alias: Cocina LED ON
  trigger:
  - platform: state
    entity_id: binary_sensor.cocinaPIR_occupancy
    from: 'off'
    to: 'on'
  condition:
  - below: '12'
    condition: numeric_state
    entity_id: sensor.cocinaPIR_illuminance
  action:
  - service: switch.turn_on
    data:
      entity_id: switch.LEDCocinaEncimera
  - service: timer.start
    data:
      entity_id: timer.cocina
  • Reseteo de la cuenta para que el Timer vuelva a contar desde el principio, en caso de que la luz esté encendida y el sensor de movimiento pase de off a on de nuevo (dejó de detectar movimiento, pero ha vuelto a detectar movimiento):
- id: '15390123123913'
  alias: Cocina LED Timer
  trigger:
  - platform: state
    entity_id: binary_sensor.cocinaPIR_occupancy
    from: 'off'
    to: 'on'
  condition:
  - condition: state
    state: 'on'
    entity_id: switch.LEDCocinaEncimera
  action:
  - service: timer.start
    data:
      entity_id: timer.cocina
      duration: '00:02:20'
  • Por último, la automation que apagará la luz, cuando el Timer llegue a cero y el sensor de movimiento esté en off, es decir, ya no se detecta movimiento:
- id: '1011'
  alias: Apagado LED Cocina
  trigger:
  - platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.cocina
  condition:
  - condition: state
    state: 'off'
    entity_id: binary_sensor.cocinaPIR_occupancy
  action:
  - service: switch.turn_off
    data:
      entity_id: switch.LEDCocinaEncimera

Cada vez que iniciamos un Timer, si se estaba ejecutando, reinicia su duración a la que tenga por defecto, o a la que le especificamos en el momento de llamarlo. Para determinar si un Timer ha terminado, podemos verlo por medio del evento finished o bien si la hemos parado por medio de cancelled.

Es un tutorial sencillo, pero como me ha costado dejarlo en su sitio, lo comparto para aquellos que quieran controlar una luz u otro objeto de casa por medio de un temporizador. Si necesitáis más información de los Timer en Home Assistant, podéis verlo aquí.

¿Lo habéis podido poner?

IMPORTANTE: Con el fin de ayudaros de una forma más directa, he creado un grupo en Telegram de Home Assistant en Español donde podemos ayudarnos todos así como evitar que os quedéis atascados, si tenéis Telegram podéis pulsar aquí para uniros y si no lo tenéis, os recomiendo que os lo instaléis ya que lo usaremos en el tutorial para notificarnos.

La entrada Home Assistant #22: Como usar el Timer para mantener una luz encendida mientras hay movimiento se publicó primero en Domótica en Casa.

Eduardo Ruiz

Informático de vocación, apasionado de la tecnología y blogger desde hace mucho tiempo, escribo de lo que me entretiene y disfruto con ello. Si deseas seguirme, usa el rss del blog o en mi perfil de .