«Si la puerta lleva abierta 5 minutos», «espera 30 segundos», «solo si la luz lleva encendida una hora». Muchas automatizaciones dependen de un tiempo, y Home Assistant lo escribe siempre igual, esté donde esté. Si dominas los formatos, evitarás la trampa más común: un "01:30" que no dura lo que crees.
Dónde aparece una duración
- Durante al menos (
for:) en los disparadores: la puerta tiene que llevar abierta ese tiempo antes de que la automatización arranque. - Durante al menos (
for:) en las condiciones: la luz tiene que llevar encendida ese tiempo en el momento en que se comprueba. - La acción Retardo (
delay:) y el tiempo límite (timeout:) de las acciones de espera.
En el editor visual se introduce en horas, minutos y segundos. El retardo y las esperas admiten también milisegundos.
Cómo cuenta «Durante al menos»
El reloj arranca con el cambio y tiene que llegar al final sin interrupciones. Si la puerta se cierra a los 3 minutos, no se acumula nada: al volver a abrirse empieza de cero. Ojo: un reinicio de Home Assistant o un unavailable de unos segundos también lo ponen a cero. Lo explicamos a fondo en Cómo reaccionan las automatizaciones a los cambios.
Los formatos en YAML
Una duración acepta:
- Un número de segundos:
300son 5 minutos. HH:MM:SSentre comillas:"00:01:30"es un minuto y medio.HH:MM:"01:30"es una hora y media. Son horas y minutos, nunca minutos y segundos.- Un mapa con
days,hours,minutes,secondsomilliseconds, los que necesites:
for:
minutes: 5
seconds: 30
Dos detalles que conviene saber:
- Los disparadores y condiciones de dispositivo solo aceptan el mapa.
- En los disparadores y condiciones específicos, como «Puerta abierta»,
forno va en la raíz, sino dentro deoptions:. La página de cada disparador lo muestra en su ejemplo:
triggers:
- trigger: door.opened
target:
entity_id: binary_sensor.puerta_entrada
options:
for:
minutes: 5
Duraciones con plantilla
Una plantilla permite que el tiempo lo decidas tú desde el panel, por ejemplo con un ayudante numérico. Se admite en:
- Durante al menos de los disparadores Estado cambió, Umbral numérico y Plantilla. En el editor, elige Plantilla en lugar de Duración.
- Durante al menos de la condición Estado.
- La acción Retardo y el tiempo límite de Esperar a una plantilla y Esperar a un disparador.
La plantilla puede devolver cualquiera de los formatos anteriores, también un número de segundos:
for: "{{ states('input_number.espera_en_segundos') | int }}"
En un mapa, cada valor puede ser una plantilla por separado. Los disparadores específicos, como «Puerta abierta» o «Temperatura cruzó un umbral», todavía no aceptan plantillas en «Durante al menos».
Lo que el editor visual no sabe mostrar
Algunas duraciones funcionan, pero el editor no puede dibujarlas y cambia automáticamente a YAML:
- En el disparador Estado cambió y la condición Estado: un mapa con
milliseconds, o un mapa con una plantilla en alguno de sus valores. - En la acción Retardo: cualquier plantilla.
No es un error. Edítalas en YAML y seguirán funcionando.
En resumen
Usa el formato que te resulte más legible: "00:05:00" o el mapa minutes: 5 se entienden de un vistazo. Desconfía de cualquier "01:30" y recuerda que solo unas pocas opciones aceptan plantilla. Tienes todos los formatos listos para copiar en el manual Duraciones: los formatos más habituales.
Fuente: documentación oficial de Home Assistant, Durations in automations and scripts.