Vamos a cambiar la base de datos que usa Home Assistant por defecto por una diferente, MariaDB.
Detalles
Home Assistant trae por defecto una base de datos simple conocida como «Recorder» que se encarga de registrar todos los datos que podemos ver desde los apartados de «Historial» o «Registro». Cómo nos explican en la documentación, HASS usa un sistema basado en SQLAlchemy, lo que significa que soporta cualquier base de datos relacional cómo MySQL, MariaDB, etc.
Actualmente Home Assistant soporta oficialmente varias BBDD relacionales:
- MariaDB (opensource)
- MySQL
- PostgreSQL
- SQLite
, pero en este tutorial nos vamos a centrar en la primera porque su instalación desde Hass es muy simple.
Precauciones
Este cambio de base de datos NO es recomendado para sistemas Raspberry Pi que usan tarjetas microSD. Hacerlo puede reducir significativamente la vida útil de las tarjetas microSD; es recomendable dar el salto sólo en equipos con SSD. Además, el cambio de base de datos borrará TODOS los registros del área de «Registro». Todos los demás datos se mantienen.
Lista de componentes
Dicho esto, vamos al lio; nos hace falta:
- Nuestro sistema con Home Assistant instalado en un dispositivo que emplee SSD.
- Nuestro ordenador para trabajar con conexión a internet.
- Alrededor de ~15 minutos de tiempo libre.
“PATROCINADO - Prueba los productos de Proton Privacy para proteger tu privacidad y seguridad y estarás contribuyendo al desarrollo de este sitio web sin ningún costo adicional - Proton Mail - Proton Drive - Proton Pass - Proton VPN”
Instalación
Cómo de costumbre vamos a Supervisor > Tienda de complementos (add-ons) > MariaDB > Instalar.
En unos segundos estará instalado y saltamos a la pestaña de «Configuración» dónde modificamos:
- password: sólo es necesario modificar el campo de contraseña (lo demás es opcional), dónde debemos especificar una contraseña suficientemente segura.
Una vez hecho esto, volvemos a la pestaña «Información», pulsamos en «Iniciar» y saltamos a la pestaña «Registro». Refrescamos pasados unos segundos y deberíamos ver un mensaje similar a este:
Configuración
Ahora nos queda modificar el famoso archivo configuration.yaml. En mi caso uso la extensión de Visual Studio para editarlo desde la propia interfaz de Lovelace. Tenemos que añadir las siguientes líneas (están especificadas en la documentación del add-on de MariaDB).
1
2
recorder:
db_url: mysql://homeassistant:password@core-mariadb/homeassistant?charset=utf8mb4
IMPORTANTE: Recordar cambiar password por la contraseña que definimos antes y, si cabiamos el usuario (homeassistant) por otro, modificarlo también.
Una idea más interesante es usar un !secret aquí para ocultar la contraseña, de forma que modificamos tanto el fichero configuration.yaml cómo el secrets.yaml:
1
2
3
4
5
6
# CONFIGURATION.YAML
recorder:
db_url: !secret maria
# SECRETS.YAML
maria: mysql://homeassistant:misupercontraseña@core-mariadb/homeassistant?charset=utf8mb4
Guardamos los cambios y comprobamos que todo ha ido bien desde Configuración > Controles del servidor > Verificar configuración. Si es así, reiniciamos y en unos minutos deberíamos arrancar con nuestro sistema usando MariaDB.
Comprobación
Comprobamos que el cambio se ha efectuado antes de nada consultando el apartado de «Registro» que cómo veremos está vacío o casi vacío (empezará a registrar nuevos eventos pronto dependiendo de cuantos sensores tengamos); así cómo el apartado de «Historial» que si acabamos de reiniciar tardará unos segundos en mostrar datos.
Cómo ya estamos trabajando con MariaDB es hora de eliminar por completo la base de datos antigua; para ello vamos al explorador de archivos o usamos la extensión de File Editor o Visual Studio y eliminamos el fichero llamado home-assistant_v2.db.
No es necesario volver a reiniciar el sistema, ya estamos usando MariaDB en nuestra instancia de HASS.
¿Volver atrás?
Si en algún momento decidimos que no nos convence y queremos dejar de usar MariaDB, sólo es necesario borrar las líneas que añadimos previamente al configuration.yaml, desinstalar el add-on y reiniciar.
HASS creará otra base de datos SQLite automáticamente.
“Los enlaces a productos de Amazon que encuentras en esta página son enlaces de afiliado. Esto significa que si decides realizar una compra a través de estos enlaces, recibiré una pequeña comisión sin ningún costo adicional para ti. Estas comisiones ayudan a mantener y apoyar mi trabajo en este sitio web. ¡Gracias por tu apoyo!”
“PATROCINADO - Prueba los productos de Proton Privacy para proteger tu privacidad y seguridad y estarás contribuyendo al desarrollo de este sitio web sin ningún costo adicional - Proton Mail - Proton Drive - Proton Pass - Proton VPN”