¿Qué son los mapeos en YAML?
Los mapeos son una característica fundamental de YAML que permite la representación de datos estructurados de manera similar a los objetos en JavaScript o los diccionarios en Python. En términos simples, un mapeo es una colección de pares clave-valor, en la que cada clave única se asocia con un valor particular. Esta estructura de datos es extremadamente útil para organizar y estructurar información de manera eficiente y legible.
Sintaxis básica de mapeos
En un mapeo YAML, la clave y el valor están separados por dos puntos (:), y cada par clave-valor se encuentra en una nueva línea. Por ejemplo, si quisiéramos representar información sobre una persona, podríamos hacerlo con un mapeo YAML de la siguiente manera:
nombre: Juan
edad: 30
ciudad: Madrid
En este ejemplo, «nombre», «edad» y «ciudad» son las claves, y «Juan», «30» y «Madrid» son los valores correspondientes. Fíjate en el uso de los dos puntos y el espacio para separar las claves y los valores.
Los mapeos son especialmente útiles en configuraciones como Home Assistant, donde es necesario estructurar una gran cantidad de datos de manera ordenada. Por ejemplo, para configurar un interruptor de luz en Home Assistant, podríamos usar un mapeo YAML para especificar los detalles de la configuración:
switch:
- platform: tplink
host: 192.168.1.100
name: Luz de la sala
Aquí, «switch» es la clave principal y su valor es una lista de configuraciones de interruptores. Cada configuración es un mapeo que contiene claves como «platform», «host» y «name» con sus valores correspondientes.
Los mapeos en YAML no se limitan a valores simples. Los valores pueden ser otras secuencias o incluso otros mapeos, lo que permite crear estructuras de datos complejas y versátiles. En resumen, los mapeos son una herramienta esencial para trabajar con YAML, especialmente cuando se trata de representar y organizar información estructurada y compleja.
Puedes ver la página principal del curso o el temario del tercer capítulo.
Ejemplos de mapeos para Home Assistant
Configuración de dispositivos en Home Assistant
En Home Assistant, los mapeos son fundamentales para configurar dispositivos, automatizaciones y otros componentes del sistema. Veamos un ejemplo de cómo se pueden utilizar mapeos en la configuración de dispositivos:
switch:
- platform: tplink
host: 192.168.1.20
name: "Smart Plug"
icon: mdi:power-socket
Automatizaciones en Home Assistant
Los mapeos también se pueden utilizar en la configuración de automatizaciones en Home Assistant. Por ejemplo:
automation:
alias: "Luz encendida al detectar movimiento"
trigger:
platform: state
entity_id: binary_sensor.motion_sensor
to: "on"
action:
service: light.turn_on
target:
entity_id: light.living_room
data:
brightness: 255
color_name: "blue"
Uso avanzado de mapeos en YAML
Mapeos anidados
Los mapeos también pueden anidarse dentro de otros mapeos o dentro de secuencias:
climate:
- platform: ecobee
name: "Thermostat"
sensors:
temperature:
name: "Temperature Sensor"
unit_of_measurement: "°F"
humidity:
name: "Humidity Sensor"
unit_of_measurement: "%"
Control de flujo en mapeos de YAML
Se admite el uso de llaves ({ }) para crear mapeos en una sola línea, lo que puede facilitar la lectura de la configuración en ciertos casos:
sensor:
- platform: template
sensors:
outdoor_temperature: {friendly_name: "Outdoor Temperature", unit_of_measurement: "°F", value_template: "{{ states('weather.home') }}"}
Índice del capítulo 3 | Capítulo anterior | Siguiente capítulo