Flujo de automatización en SVG reutilizable
El diagrama base para explicar cualquier automatización de Home Assistant: qué la dispara, qué condición decide y qué hace después, incluidas las cuatro ramas que aparecen una y otra vez en YAML: choose, repeat, wait e if/else.
Pieza 5 del backlog de diseño. Se inserta tal cual en una guía junto al bloque de código YAML (pieza 2); el lector ve el flujo y el YAML lado a lado.
Diagrama
El diagrama vive en un contenedor con scroll horizontal en pantallas estrechas, así el texto no se encoge hasta ser ilegible. Es SVG propio, sin dependencias externas.
YAML que acompaña al diagrama
alias: Luz del salón al detectar presencia
description: Enciende la luz si es de noche; si no, solo avisa.
mode: single
trigger:
- platform: state
entity_id: binary_sensor.presencia_salon
to: "on"
condition:
- condition: sun
after: sunset
action:
- choose:
- conditions:
- condition: state
entity_id: input_select.modo_casa
state: "cine"
sequence:
- service: light.turn_on
target:
entity_id: light.salon
data:
brightness_pct: 12
- conditions:
- condition: numeric_state
entity_id: sensor.lux_salon
below: 40
sequence:
- service: light.turn_on
target:
entity_id: light.salon
data:
brightness_pct: 60
default:
- service: notify.mobile_app_telefono
data:
message: "Presencia detectada de día: no enciendo la luz."
Ejemplo con choose + default, la rama que más consultas genera. Sintaxis estable del motor de automatizaciones de Home Assistant; sin confirmar en fuente viva a fecha de 28/09. El turno diario actualiza este bloque si una release note cambia algo.
Cómo se usa en un artículo
- Se copia la etiqueta
<svg>...</svg>completa desde este componente y se pega dentro del contenedor.fj-svg-scroll(o su equivalente en la plantilla de artículo). - El YAML va en el bloque de código copiable, al lado del diagrama, tal como se muestra aquí.
- En una guía de
choosese usa el módulochoose; en una de reintentos, el derepeat. El diagrama completo es la vista de referencia, no hay que incluir siempre todo.
Cuándo usar cada rama
Regla rápida para no elegir la rama equivocada en el YAML:
choose: varias condiciones excluyentes, cada una con su secuencia, más una rama por defecto.repeat: repetir una secuencia mientras se cumpla una condición, hasta que se cumpla otra, o un número fijo de veces.wait: pausar la automatización hasta que llegue un trigger o se cumpla una plantilla, con timeout opcional.if/else: una sola condición con dos salidas; es elchoosede una sola rama.