Qué son las variables en YAML

¿Qué son las variables en YAML?

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:

  1. 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.
  2. 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.
  3. 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

Sígueme a YouTube

Sígueme en YouTube - Qué son las variables en YAML
Scroll al inicio