Anclas y alias en YAML

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.

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
(Visited 285 times, 1 visits today)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ads Blocker Image Powered by Code Help Pro

¡Hemos detectado un bloqueador de anuncios!

Parece que estás utilizando un bloqueador de anuncios. Nunca vamos a cobrar para ofrecer el contenido, pero sí dependemos de la publicidad para financiar y mantener activo este sitio web. Si disfrutas del contenido que ofrecemos, por favor, añade tecnoyfoto.com a la lista blanca de tu bloqueador de anuncios para seguir accediendo a nuestro contenido.

¡Gracias por tu apoyo!