Configuración de Home Assistant en YAML
Aunque versión a versión de Home Assistant se ve una tendencia creciente a que todo se integre de manera visual y, con ello, cualquier usuario sin conocimientos de programación pueda usar y configurar Home Assistant, la realidad es que aún hoy es necesario tocar ciertos archivos para configurar algunos de los parámetros más usados y para tener un control avanzado del sistema.
Mi recomendación es intentar mover todo a archivos de configuración manual YAML siempre que sea posible. Nos aseguramos una gestión más centralizada, poder realizar copias de seguridad simplemente copiando el archivo o su contenido, y poder compartir configuraciones con otros usuarios de manera sencilla y segura.
Como contrapunto, en muchos casos se pierde la opción de realizar la configuración visual de las partes que se pasen a YAML.
Conocimientos necesarios
El lenguaje usado para realizar la mayoría de configuraciones es YAML. El primer paso es aprender a utilizar el lenguaje, y nada mejor que la hoja de especificaciones oficiales para ello.
Por otro lado, hace falta un método de edición de archivos YAML que se encuentren en nuestro servidor. En el artículo “modificación de la configuración de Home Assistant editando sus archivos” se puede ver como instalar el Add-on Configurator y como empezar a editar archivos.
En entornos más avanzados, será necesario aprender lenguajes como Jinja2 para la realización de Templates o JSON para ciertas configuraciones externas.
Configuraciones a YAML
Entrando en un terreno algo más pantanoso, nos encontramos con diferentes tipos de parámetros, diferentes sitios donde se guardan estos parámetros y varios métodos para pasar toda la configuración de Home Assistant a archivos YAML. Por partes, vamos a ver cómo se comportan las diferentes opciones que ya hemos podido editar de manera visual:
-
Automatizaciones. Las automatizaciones se guardan directamente en la carpeta raíz en el archivo
automations.yaml
. Puede ser editado para crear nuestras automatizaciones o usar el editor visual. La diferencia es que editando el archivo se pueden crear automatizaciones mucho más potentes, por contra, no pueden ser luego editadas en el modo visual. Necesario incluir la siguiente línea enconfiguration.yaml
.automation: !include automations.yaml
-
Scripts. Del mismo modo, los scripts ya son guardados por defecto en el archivo
scripts.yaml
en la carpeta raíz de configuración, y puede ser editado. Necesario incluir la siguiente línea enconfiguration.yaml
.script: !include scripts.yaml
-
Personalizaciones. Mas de lo mismo. Archivo
customize.yaml
. Necesario incluir las siguientes líneas enconfiguration.yaml
.homeassistant: customize: !include customize.yaml
-
Areas. NO es posible declararlas (y casi usarlas) en ningún archivo YAML.
-
Integraciones. Depende. Algunas integraciones están preparadas para incluirlas en
configuration.yaml
, otras en cambio, necesitan hacer uso de la sección Configuración -> Integraciones de Home Assistant, y no hay manera de moverlas a un archivo YAML. Revisa la documentación de cada integración para ver en qué casos puede moverse a YAML y en qué casos no. Por ejemplo, OpenWeatherMap es una integración que puede pasarse a YAML fácilmente; ESPHome, no se puede mover por el momento. Mi recomendación es intentar configurar mediante YAML todas las integraciones que lo permitan. - Personas y Usuarios.
- Los usuarios NO pueden moverse a YAML, son del sistema y se pueden crear desde la sección Configuración -> Usuarios de Home Assistant. Son usados para identificar a cada individuo que puede usar el sistema.
-
Person son entidades que asocian a cada usuario con diferentes rastreadores de dispositivos para indicar su posición. Estas entidades pueden declararse en Configuración -> Personas o en el archivo
configuration.yaml
igual que cualquier otra entidad.person: - name: Dani id: dani user_id: 68fa5522b25e4f719fdfe20a398f508e device_trackers: []
-
Configuración General. Home Assistant tiene una información general como el nombre de la casa o su posición GPS. Se puede configurar visualmente desde Configuración -> General. Pero también mediante YAML con las siguientes líneas dentro del nodo
homeassistant
enconfiguration.yaml
.homeassistant: name: Mi Casa latitude: 40.4167511 longitude: -3.7036432 elevation: 500 unit_system: metric time_zone: Europe/Madrid
Como guinda del pastel, es muy recomendable mover los datos de latitud, longitud y elevación al archivo
secrets.yaml
.Puedes consultar posiciones GPS y elevaciones en webs como CalcMaps.
- Lovelace. Pasar toda la configuración de interfaz gráfica a YAML no es complicado, pero una vez movida, todas las modificaciones de interfaz tendrán que realizarse siempre en YAML. Por ello, vamos a dejar para otro artículo toda la parte de Lovelace, así se podrá desarrollar ampliamente los diferentes modos de edición de interfaz y sus ventajas y desventajas.
Conclusión
Al mover todas las opciones a YAML se obtiene una mejor organización de todas las configuraciones de nuestro sistema, así como una facilidad para realizar copias de seguridad, y hablando de seguridad. Ahora se puede usar el archivo secrets.yaml
y tener los datos sensibles localizados en un solo archivo, permitiendo compartir nuestra configuración sin preocupaciones.
Solo faltaría mover la parte de Lovelace, que se verá en otro artículo.
Este y otros artículos complementan la documentación del repositorio de GitHub donde se encuentra disponible toda la configuración de mi casa.
Deja un comentario