Saltar al contenido

Anclas y alias YAML Home Assistant: Domínalos [Guía 2026]

22/05/2023

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.

OFERTAS · TIENDA OFICIAL

Descuentos en domótica SONOFF

Interruptores WiFi, relés, sensores, tiras LED y más. Las promociones cambian con frecuencia en la tienda oficial.

Cupón: TECNOYFOTO (10% de descuento al pagar)

Ver ofertas oficiales Enlace de afiliado · Tienda Sonoff

¿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_admin

En 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_settings

El 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: 350

Sobrescribiendo 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 &notificar_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ísticaAnclas y AliasDirectivas !include
ÁmbitoDentro 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 PrincipalReutilizar 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.
ComplejidadIdeal 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.
EjemploDefinir 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:

  1. 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.
  2. Nombres descriptivos: Usa nombres de ancla claros y descriptivos. &common_light_settings es mucho mejor que &anc1.
  3. 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.
  4. 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.
  5. 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.