Saltar al contenido

Uso de variables en YAML: Cómo optimizar la configuración

18/09/2023
Uso de variables en YAML

Este artículo puede contener enlaces de afiliado. Si compras desde estos enlaces, el precio para ti es el mismo y la tienda me paga una pequeña comisión que ayuda a mantener Tecnoyfoto.

Revisión técnica: 27 de octubre de 2026. Esta es una guía complementaria procedente del curso anterior, no un capítulo numerado del nuevo. Para seguir el itinerario, consulta el curso actual de YAML en Home Assistant.

Reutilizar valores reduce repeticiones y facilita el mantenimiento, pero YAML no tiene variables de programación. En esta guía distinguimos sus anclas y alias de las variables que implementan aplicaciones como Home Assistant. Se han corregido los ejemplos que atribuían a los alias concatenaciones y acceso automático entre archivos.

OFERTAS · TIENDA OFICIAL

Descuentos en domótica SONOFF

Interruptores WiFi, relés, sensores, tiras LED y más. Las promociones cambian con frecuencia en la tienda oficial.

Cupón: TECNOYFOTO (10% de descuento al pagar)

Ver ofertas oficiales Enlace de afiliado · Tienda Sonoff

Qué hacen realmente & y *

Un ancla identifica un nodo ya definido; un alias referencia ese nodo. Puede ser un texto, número, lista o mapa. No es una caja mutable, una macro ni un motor de sustitución. El nombre de la clave y el nombre del ancla son cosas distintas:

mi_variable: &valor_variable 42
otra_variable: *valor_variable

Aquí mi_variable es la clave; valor_variable es el ancla. El valor de ambas claves es 42. El alias debe aparecer después del ancla en el mismo documento. No supongas que una ancla declarada en un archivo incluido por separado será visible en otro.

Ejemplo 1: reutilizar rutas sin falsas concatenaciones

Este es un documento YAML genérico para explicar la reutilización de un valor; no son claves para pegar en configuration.yaml:

ruta_base: &base "/mi-aplicacion"
componentes:
  - nombre: "web"
    directorio: *base
  - nombre: "worker"
    directorio: *base

Ambos directorios reciben el texto completo /mi-aplicacion. Escribir *base/inicio no añade /inicio al valor: no es concatenación de YAML. Si necesitas construir rutas, debe hacerlo la aplicación, por ejemplo con una plantilla Jinja en un campo que la admita. Si no existe ese mecanismo, escribe la ruta completa.

Ejemplo 2: parámetros compartidos

base_datos:
  host: &host_db "db.example.test"
  puerto: &puerto_db 5432
componente_1:
  host: *host_db
  puerto: *puerto_db
componente_2:
  host: *host_db
  puerto: *puerto_db

Este ejemplo es de datos genéricos. Home Assistant no acepta automáticamente claves como componente_1 o base_datos: cada integración define su propio esquema. Centralizar un valor no cifra los datos; evita incluir contraseñas reales en ejemplos, repositorios o validadores externos.

Variables de Home Assistant: otra capa distinta

Para calcular un texto o una decisión usa las variables y plantillas de Home Assistant en sus campos admitidos. Este script individual se puede probar en la vista YAML del editor de scripts:

alias: "Ejemplo de valores reutilizados"
sequence:
  - variables:
      ubicacion: "salón"
      temperatura_objetivo: 21
  - action: persistent_notification.create
    data:
      title: "Comprobación"
      message: "Objetivo para el {{ ubicacion }}: {{ temperatura_objetivo }} °C"

Las llaves son Jinja; no una sintaxis nativa de YAML. La variable existe en el contexto del script, no como constante global en todos los archivos. Tampoco se referencia con una etiqueta !var.

Cuándo usar cada mecanismo

Usa anclas para repetir nodos estáticos en un documento, scripts para reutilizar acciones, plantillas para calcular valores e inclusiones para organizar archivos. No uses una de estas técnicas como sustituta automática de las demás. Una configuración corta y explícita puede ser más fácil de mantener que una red de referencias.

Para profundizar, consulta anclas y alias y el capítulo actual sobre YAML y Jinja. La decisión final sobre esta URL queda pendiente del capítulo de variables del nuevo curso.

Continúa leyendo

Siguiente guía relacionada · 3 min de lectura

Variables en YAML: Guía 2026 para reutilizar código

Revisión técnica: 27 de octubre de 2026. Esta es una guía complementaria procedente del curso anterior, no un capítulo numerado del nuevo. Para seguir…

Continuar con este artículo