Skip to content

Anclas y alias en YAML: Optimización y reutilización

¿Qué son las anclas y alias en YAML?

En YAML, las anclas y los alias son herramientas que nos permiten reutilizar contenido y evitar la duplicación innecesaria de los datos.

Un ancla se define usando el operador & seguido de un nombre único, y se coloca junto al elemento que queremos reutilizar. El nombre del ancla es arbitrario y se utiliza para referenciar el contenido en otras partes del documento.

Un alias se define usando el operador * seguido del nombre del ancla que queremos reutilizar. Los alias actúan como referencias a las anclas y nos permiten insertar el contenido marcado por el ancla en otras partes del documento.

Por ejemplo, si tienes una lista de colores que se repite varias veces en tu documento YAML, podrías definir la lista una vez con un ancla y reutilizarla con un alias en lugar de tener que escribir la lista completa cada vez. Esto se vería algo así:

colores: &mi_lista_de_colores
  - rojo
  - azul
  - verde

primarios: *mi_lista_de_colores
secundarios:
  - naranja
  - violeta

En este ejemplo, &mi_lista_de_colores define un ancla llamada «mi_lista_de_colores» para la lista de colores primarios. Luego, *mi_lista_de_colores utiliza un alias para reutilizar esa lista de colores en la clave «primarios». El resultado es que «primarios» y «colores» tendrán exactamente la misma lista de valores.

Estas, son especialmente útiles cuando se trabaja con grandes archivos YAML, ya que nos permiten mantener la coherencia de los datos, reducir la redundancia y hacer que los archivos sean más manejables y legibles.

Puedes ver la página principal del curso o el temario del tercer capítulo.

Sintaxis básica de anclas y alias en YAML

La sintaxis básica para las anclas y los alias en YAML se reduce a definir las anclas con & y reutilizarlas con *. Esto puede ayudar a mantener tus archivos YAML organizados y fáciles de leer, especialmente cuando estás trabajando con datos complejos o repetitivos.

Índice de contenido

    Ejemplos de anclas y alias en YAML para Home Assistant

    Reutilizando la configuración de dispositivos en Home Assistant

    Si tiene varios dispositivos con configuraciones similares en Home Assistant, puede utilizar alias y anclas para reutilizar partes de la configuración y mantenerla más ordenada:

    light_common_settings: &light_settings
      transition: 2
      brightness: 150
    
    light:
      - platform: hue
        name: "Living Room Light"
        <<: *light_settings
      - platform: hue
        name: "Bedroom Light"
        <<: *light_settings
    

    Reutilizando la configuración de automatizaciones en Home Assistant

    Las anclas y los alias en YAML pueden ser especialmente útiles al configurar automatizaciones en Home Assistant, ya que permiten reutilizar partes de la configuración en varias automatizaciones, reduciendo la redundancia y haciendo que la configuración sea más manejable.

    Imagina que tienes varias automatizaciones que se disparan a la misma hora cada día. En lugar de repetir la misma configuración de tiempo para cada automatización, puedes usar un ancla para definir la configuración de tiempo una vez y luego usar un alias para referenciarla en cada automatización. Aquí te muestro cómo se podría hacer esto:

    trigger_common: &trigger_common
      platform: time
      at: '08:00:00'
    
    automation:
      - alias: 'Automatización 1'
        trigger: 
          <<: *trigger_common
        action:
          ...
    
      - alias: 'Automatización 2'
        trigger: 
          <<: *trigger_common
        action:
          ...
    
      - alias: 'Automatización 3'
        trigger: 
          <<: *trigger_common
        action:
          ...
    

    En este ejemplo, &trigger_common es un ancla que define una configuración de disparo común. Luego, <<: *trigger_common se usa en cada automatización para insertar esta configuración de disparo. El operador << es una forma de insertar todos los pares clave-valor del ancla en el mapa actual.

    Así, en lugar de tener que repetir la misma configuración de disparo para cada automatización, puedes definirla una vez y reutilizarla. Esto no solo ahorra tiempo y reduce errores, sino que también facilita los cambios en la configuración: si alguna vez necesitas cambiar la hora del disparo, solo tienes que hacerlo en un lugar.

    Este es solo un ejemplo de cómo puedes usar las anclas y los alias para reutilizar la configuración en Home Assistant. Con un poco de creatividad, encontrarás muchas otras maneras de aplicar estas herramientas para hacer que tu configuración sea más eficiente y manejable.

    Uso avanzado de anclas y alias en YAML

    Combinando anclas y alias con mapeos y secuencias

    Estas, pueden combinarse con mapeos y secuencias para lograr una configuración de Home Assistant más flexible y fácil de mantener:

    sensor_defaults: &sensor_defaults
      delay: 30
      icon: mdi:temperature-celsius
    
    sensor:
      - platform: dht
        name: "Living Room Temperature"
        <<: *sensor_defaults
      - platform: dht
        name: "Bedroom Temperature"
        <<: *sensor_defaults
    

    Índice del capítulo 3 | Capítulo anterior | Siguiente capítulo

    Sígueme a YouTube

    Sígueme en YouTube - Anclas y alias
    Ajustes