¿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