
Actualizado el 29 de enero de 2026
Si gestionas una configuración de Home Assistant que ha crecido con el tiempo, es probable que tu archivo configuration.yaml esté lleno de repeticiones. Mismos parámetros para luces, mismas acciones en automatizaciones, mismas condiciones… Esto no solo hace que el archivo sea enorme, sino que mantenerlo se convierte en una pesadilla. Un pequeño cambio implica buscar y reemplazar en múltiples sitios, con el riesgo de olvidar alguno.
Aquí es donde las anclas y alias en YAML se convierten en una herramienta indispensable. En esta guía definitiva de 2026, te enseñaré no solo qué son, sino cómo dominarlas para optimizar tu configuration.yaml, hacerlo más legible y, sobre todo, mucho más fácil de mantener.
¿Qué son las anclas y alias en YAML?
En YAML, las anclas y los alias son mecanismos nativos del lenguaje diseñados para reutilizar contenido y evitar la duplicación. Piensa en ellos como una forma de «definir una vez y usar muchas veces» dentro de un mismo archivo.
- Un ancla se define con el operador
&seguido de un nombre único (ej:&mi_ancla). Marca un bloque de código (un valor, una lista o un mapa completo) para su posterior reutilización. - Un alias se define con el operador
*seguido del nombre del ancla (ej:*mi_ancla). Actúa como una referencia que inserta el contenido completo del ancla en su lugar.
Veamos un ejemplo básico fuera de Home Assistant para entender el concepto puro:
# Definimos una lista de colores base con un ancla
colores_base: &colores_primarios
- rojo
- amarillo
- azul
# Reutilizamos esa lista exacta en otra clave
configuracion_led:
colores_disponibles: *colores_primarios
# Otro ejemplo con un valor simple
configuracion_general:
usuario_defecto: &usuario_admin admin
permisos:
- leer
- escribir
responsable: *usuario_adminEn este caso, configuracion_led.colores_disponibles tendrá exactamente la misma lista que colores_base. Y responsable tendrá el valor ‘admin’. Si necesitamos cambiar el nombre del usuario o añadir un color, solo lo hacemos en un sitio.
La clave del éxito: El «Merge Key» (`<<`)
Usar un alias por sí solo reemplaza todo el valor, pero la verdadera magia para la configuración de Home Assistant reside en el «Merge Key» o clave de fusión: <<. Este operador especial te permite fusionar el contenido de un ancla (que debe ser un mapa o diccionario) en otro mapa.
Esto es fundamental para reutilizar configuración YAML de forma eficiente. Imagina que tienes una configuración base para todas tus luces Zigbee:
# Ancla con ajustes comunes para luces
light_defaults: &light_settings
transition: 1
brightness: 180
color_temp: 350
# Aplicamos estos ajustes a luces específicas
light:
- platform: zigbee
name: "Luz Salón"
# El merge key fusiona las claves del ancla aquí
<<: *light_settings
- platform: zigbee
name: "Luz Cocina"
<<: *light_settingsEl operador <<: *light_settings le dice a YAML: «coge todas las claves y valores del ancla light_settings e insértalas aquí». El resultado final es como si hubiéramos escrito esto:
# Resultado final después de que YAML procese los alias
light:
- platform: zigbee
name: "Luz Salón"
transition: 1
brightness: 180
color_temp: 350
- platform: zigbee
name: "Luz Cocina"
transition: 1
brightness: 180
color_temp: 350Sobrescribiendo valores: La clave de la flexibilidad
¿Qué pasa si la luz de la cocina necesita un brillo diferente? Aquí es donde el merge key demuestra su poder. Puedes sobrescribir cualquier valor heredado del ancla simplemente definiéndolo de nuevo. La clave local siempre tiene prioridad sobre la clave fusionada.
Siguiendo el ejemplo anterior, si queremos que la luz de la cocina sea más brillante:
light_defaults: &light_settings
transition: 1
brightness: 180
color_temp: 350
light:
- platform: zigbee
name: "Luz Salón"
<<: *light_settings
- platform: zigbee
name: "Luz Cocina"
<<: *light_settings
# Sobrescribimos el brillo solo para esta luz
brightness: 255 Esta técnica es la base para crear plantillas de configuración robustas y flexibles dentro de tus archivos YAML.
Ejemplos avanzados de anclas y alias en Home Assistant (2026)
Ahora que entendemos la mecánica, veamos algunos ejemplos de anclas YAML aplicados a casos reales y más complejos en Home Assistant.
Reutilizar acciones en automatizaciones y scripts
Una de las aplicaciones más potentes es la reutilización de secuencias de `action`. Imagina que tienes varias automatizaciones que deben enviar la misma notificación detallada a tu móvil.
# Definimos una acción de notificación reutilizable
ha_actions:
notificar_movil_critico: ¬ificar_critico
service: notify.mobile_app_mi_telefono
data:
title: "⚠️ Alerta Crítica en Casa"
message: "{{ message }}" # Usamos una variable para el mensaje
data:
ttl: 0
priority: high
channel: "alarms"
# La usamos en una automatización de fuga de agua
automation:
- alias: "Detección de Fuga de Agua"
trigger:
- platform: state
entity_id: binary_sensor.sensor_fuga_agua
to: 'on'
action:
# Fusionamos la acción base
- <<: *notificar_critico
# Y le pasamos el mensaje específico
data:
message: "¡Se ha detectado una fuga de agua en el baño!"
- alias: "Sensor de Humo Activado"
trigger:
- platform: state
entity_id: binary_sensor.sensor_humo_salon
to: 'on'
action:
- <<: *notificar_critico
data:
message: "¡Alarma de humo en el salón! Revisa las cámaras."En este ejemplo, definimos una notificación de alta prioridad una sola vez. Luego, en cada automatización, la reutilizamos con <<: *notificar_critico y simplemente sobrescribimos el campo message. Si en el futuro cambiamos de móvil o queremos ajustar el canal de notificación, solo lo modificamos en el ancla ¬ificar_critico.
Anclas vs. `!include`: ¿Cuándo usar cada uno?
Una pregunta común es: ¿por qué usar anclas si Home Assistant tiene las directivas !include? Ambas sirven para organizar el código, pero resuelven problemas diferentes. He creado una tabla para aclarar sus casos de uso:
| Característica | Anclas y Alias | Directivas !include |
| Ámbito | Dentro de un único archivo. Un ancla definida en automations.yaml no se puede usar en scripts.yaml. | Permite dividir la configuración en múltiples archivos y carpetas. |
| Caso de Uso Principal | Reutilizar pequeños bloques de código repetitivos dentro del mismo contexto (ej: mismos parámetros para 5 sensores en el mismo archivo). | Organizar y estructurar la configuración general. Separar luces, sensores, automatizaciones, etc., en sus propios archivos. |
| Complejidad | Ideal para la «micro-optimización» y mantener la coherencia en configuraciones locales. | Esencial para la «macro-organización» de una instancia grande de Home Assistant. |
| Ejemplo | Definir un &trigger_at_sunset para usarlo en 3 automatizaciones dentro de automations.yaml. | Tener automation: !include_dir_merge_list automations/ en tu configuration.yaml. |
La mejor estrategia es usar ambos. Utiliza las directivas !include para dividir tu configuración en archivos manejables y, dentro de esos archivos, usa anclas y alias para eliminar la redundancia interna.
Errores Comunes y Buenas Prácticas YAML en 2026
Aunque son potentes, un mal uso de las anclas puede generar más confusión que claridad. Aquí te dejo algunas buenas prácticas YAML que he aprendido tras años de experiencia:
- Define las anclas arriba: Coloca tus anclas más comunes en la parte superior del archivo. Esto las hace visibles y actúa como una cabecera de «variables» o «plantillas» para el resto del documento.
- Nombres descriptivos: Usa nombres de ancla claros y descriptivos.
&common_light_settingses mucho mejor que&anc1. - Cuidado con la indentación: Un ancla incluye todo el nodo al que está adjunto, respetando su indentación. Un error de un espacio puede hacer que el alias se inserte en el nivel equivocado.
- No abuses de ellas: Si te encuentras anidando anclas dentro de otras anclas en múltiples niveles, tu código se volverá ilegible. A veces, es más simple repetir un par de líneas o dividir la lógica en un script aparte.
- El Merge Key es para mapas: Recuerda que
<<solo funciona para fusionar mapas (diccionarios con clave-valor). No puedes usarlo para fusionar listas/secuencias.
Dominar anclas, alias y la clave de fusión es un paso fundamental para pasar de un usuario principiante a un administrador avanzado de Home Assistant. Te permitirá mantener una configuración limpia, escalable y, sobre todo, fácil de entender y modificar en el futuro.
