El lenguaje de serialización de datos YAML es conocido por su simplicidad y facilidad de lectura. Sin embargo, es importante entender que YAML no tiene un concepto directo de «variables» como lo conocemos en otros lenguajes de programación. En cambio, lo que comúnmente se refiere como «variables» en YAML son valores que se pueden reutilizar en el contexto de aplicaciones específicas o en combinación con otros lenguajes de programación.
A pesar de no ser una característica nativa de YAML, el concepto de «variables» puede ser implementado en ciertos contextos. Por ejemplo, al utilizar YAML para definir configuraciones en herramientas de orquestación de contenedores como Kubernetes, es posible definir valores que luego se pueden referenciar en múltiples partes de la configuración. Esto puede verse como un equivalente a una «variable».
Beneficios de usar variables en YAML
Utilizar variables en tus archivos YAML tiene varias ventajas:
- Reutilización de valores: Evita la necesidad de repetir constantemente valores en tu archivo de configuración. Si un valor cambia, solo tendrás que actualizar la variable correspondiente.
- Simplificación del mantenimiento: Facilita la actualización y el mantenimiento de tus archivos YAML, ya que solo tendrás que modificar un valor en lugar de múltiples instancias del mismo.
- Mejora la legibilidad: Al usar variables en lugar de valores literales, es más fácil entender el propósito y la función de cada elemento en tu archivo YAML.
Sintaxis de definición de variables en YAML
Para definir una variable en YAML, se utiliza la sintaxis de clave-valor, donde el nombre de la variable es la clave y el valor asignado es el valor. Por ejemplo:
color_favorito: azul
En este ejemplo, hemos creado una variable llamada «color_favorito» y le hemos asignado el valor «azul».
Ejemplos de definición de variables en YAML en Home Assistant
A continuación, mostramos un ejemplo práctico de cómo definir y utilizar variables en YAML en el contexto de Home Assistant.
Supongamos que tienes varios dispositivos en tu hogar que utilizan el mismo tema de color. Podrías definir una variable para el tema de color y usarla en cada dispositivo:
tema_color: "color_primario"
light:
- platform: hue
name: "Luz sala"
color_theme: !var tema_color
switch:
- platform: tplink
name: "Enchufe cocina"
color_theme: !var tema_color
En este ejemplo, hemos creado una variable llamada «tema_color» y la hemos asignado al valor «color_primario». Luego, utilizamos la directiva !var para referenciar la variable en las configuraciones de luz y interruptor. De esta manera, si deseas cambiar el tema de color, solo tendrás que modificar la variable en lugar de cambiar cada instancia del valor en el archivo YAML.
Cómo utilizar variables en YAML
Una vez que hayas definido una variable en YAML, puedes utilizarla en otras partes de tu archivo de configuración o en otros archivos YAML, dependiendo del alcance de la variable.
Sintaxis de uso de variables en YAML
Para utilizar una variable en YAML, debes referenciarla con la directiva !var
, seguida del nombre de la variable. Por ejemplo:
nombre: "Sala de estar"
descripcion: !var nombre
En este ejemplo, hemos creado una variable llamada «nombre» y le hemos asignado el valor «Sala de estar». Luego, utilizamos la directiva !var
para referenciar la variable en la clave «descripcion». Esto asigna el valor de la variable «nombre» a «descripcion».
Ejemplos de uso de variables en Home Assistant
Aquí hay otro ejemplo de cómo utilizar variables en YAML en el contexto de Home Assistant para automatizaciones:
variables:
temperatura_umbral: 25
automation:
- alias: "Ventilador encendido cuando la temperatura supera el umbral"
trigger:
- platform: numeric_state
entity_id: sensor.temperatura_sala
above: !var temperatura_umbral
action:
- service: switch.turn_on
target:
entity_id: switch.ventilador_sala
- alias: "Ventilador apagado cuando la temperatura está por debajo del umbral"
trigger:
- platform: numeric_state
entity_id: sensor.temperatura_sala
below: !var temperatura_umbral
action:
- service: switch.turn_off
target:
entity_id: switch.ventilador_sala
En este ejemplo, hemos creado una variable llamada «temperatura_umbral» y le hemos asignado el valor 25. Luego, utilizamos la directiva !var
para referenciar la variable en los triggers de las automatizaciones. Si deseas cambiar el umbral de temperatura, solo tendrás que modificar la variable en lugar de cambiar cada instancia del valor en el archivo YAML.
Índice del capítulo 4 | Capítulo anterior | Siguiente capítulo