Publicado y última revisión: 23/09/2026

Automatizaciones en Home Assistant con YAML: triggers, conditions y actions (2026)

Una automatización de Home Assistant son tres piezas encadenadas: algo ocurre (trigger), compruebas si se cumple una condición, y ejecutas una acción. Esta guía copia los tres bloques con ejemplos que puedes pegar y modificar.

Mesita de noche inteligente con sensor de movimiento, reloj digital y lámpara de tono cálido, montaje típico de una automatización de presencia
Foto de Jakub Zerdzicki en Pexels. Imagen de apoyo de banco de imágenes; no muestra la interfaz de Home Assistant.

La estructura mínima

En YAML, una automatización se escribe dentro de la clave automation: como una lista. Los tres bloques van siempre en este orden:

automation:
  - alias: "Encender la luz del pasillo al atardecer"
    triggers:
      - trigger: sun
        event: sunset
    conditions:
      - condition: state
        entity_id: person.alice
        state: "home"
    actions:
      - action: light.turn_on
        target:
          entity_id: light.pasillo
        data:
          brightness_pct: 70

Cada bloque es una lista. Puedes tener varios triggers, varias conditions y varias actions. Si no necesitas condiciones, deja conditions: [] o quita ese bloque.

La documentación oficial de Home Assistant usa esta misma estructura, con los plurales triggers, conditions y actions. Ejemplos de esta guía están contrastados contra la documentación oficial consultada hoy, 23/09/2026.

Flujo de una automatización: trigger, conditions, actions TRIGGER CONDITIONS ACTIONS
Diagrama propio: primero se evalúa el trigger, después las condiciones y, si todo se cumple, se ejecutan las acciones.

Triggers: qué dispara la automatización

El trigger es el suceso que arranca la automatización. Puedes poner varios; se comportan como un O lógico: basta con que uno se dispare para evaluar el resto.

Tipos de trigger más habituales en YAML
TriggerPara qué sirveEjemplo mínimo
stateCuando una entidad cambia a un estado concretoto: "on"
timeA una hora fija o con cadenciaat: "23:00:00"
sunSalida o puesta de sol, con offsetevent: sunset
numeric_stateCuando un sensor cruza un valor numéricoabove: 25
templateCuando una plantilla evalúa a truevalue_template: "{{ is_state('binary_sensor.puerta_entrada', 'on') }}"
eventEventos emitidos por integracionesevent_type: state_changed

La clave to indica el estado al que debe llegar, y from el estado del que viene. No hace falta usar ambas: si solo quieres que salte cuando la puerta pase a abierta, usa to: "on".

triggers:
  - trigger: state
    entity_id:
      - binary_sensor.puerta_entrada
    to: "on"
    id: "puerta"
  - trigger: time
    at: "23:00:00"
    id: "noche"

Referenciar un trigger por su id

Cuando una automatización tiene varios disparadores, casi siempre te interesa saber cuál saltó. La plantilla trigger.id te da el id que asignaste. Se combina con choose en las acciones.

actions:
  - choose:
      - conditions: "{{ trigger.id == 'puerta' }}"
        sequence:
          - action: notify.notify
            data:
              message: "Se abrió la puerta de entrada"
      - conditions: "{{ trigger.id == 'noche' }}"
        sequence:
          - action: light.turn_off
            target:
              entity_id: light.salon

Conditions: cuándo no debe ejecutarse

Las condiciones se evalúan después del trigger. Si falla una, la automatización no ejecuta acciones (salvo que uses choose con secuencias distintas). Para combinar varias condiciones usa and, or y not.

conditions:
  - condition: and
    conditions:
      - condition: state
        entity_id: person.alice
        state: "home"
      - condition: time
        after: "16:00:00"
        before: "23:00:00"

Condiciones útiles: state, numeric_state, template, time y zone. Las más usadas en domótica local son state (¿hay alguien en casa?) y numeric_state (¿la batería está por debajo del 20%?).

Actions: qué se ejecuta

Las acciones son llamadas a servicios. Puedes encadenar varias y controlar el flujo con choose, repeat, delay o if. Un patrón muy común es esperar un minuto y apagar la luz, evitando que quede encendida por error.

actions:
  - action: light.turn_on
    target:
      entity_id: light.pasillo
    data:
      brightness_pct: 70
  - delay: "00:01:00"
  - action: light.turn_off
    target:
      entity_id: light.pasillo

Plantilla completa copiable

Esta automatización enciende la luz del pasillo al atardecer si hay alguien en casa, y la apaga a los cinco minutos. Cámbiala por tus entidades y pruébala antes de darla por buena.

automation:
  - alias: "Luz del pasillo al atardecer"
    triggers:
      - trigger: sun
        event: sunset
        offset: "-00:15:00"
    conditions:
      - condition: state
        entity_id: person.alice
        state: "home"
    actions:
      - action: light.turn_on
        target:
          entity_id: light.pasillo
        data:
          brightness_pct: 60
      - delay: "00:05:00"
      - action: light.turn_off
        target:
          entity_id: light.pasillo

Qué comprobé antes de publicar

Contrasté la sintaxis con la documentación oficial de Home Assistant (Automation basics y páginas de triggers, conditions y actions) a fecha 23/09/2026. El uso de trigger.id con choose aparece reflejado en la documentación oficial; no es un atajo no documentado. No he podido probar esta automatización en una instalación real hoy, así que si encuentras una entidad con nombre distinto, ajusta entity_id y pruébala antes de fiarte del todo.

Última revisión: 23/09/2026