El sistema de domótica de Home Assistant OS registra todos los eventos que ocurran en el sistema con las integraciones que configuremos. De forma predeterminada, la base de datos predeterminada es SQlite, una base de datos que consume muy pocos recursos y una gran opción si usas el sistema de domótica de forma básica, sin muchos sensores y actuadores diferentes. No obstante, si quieres tener el sistema operativo con una base de datos mucho más robusta, rápida y con posibilidad de guardar registros de muchos días sin que el sistema funcione muy lento, lo mejor es que instales MariaDB. Hoy en RedesZone os vamos a enseñar a configurar paso a paso esta base de datos que es mucho mejor que SQLite.
Aunque de forma predeterminada tenemos la base de datos SQLite cuyo funcionamiento es bueno cuando tenemos poca información, lo cierto es que se vuelve extremadamente lenta cuando tenemos muchos sensores y queremos ver registros anteriores. Por este motivo, tenemos como complemento la posibilidad de instalar MariaDB. Un aspecto muy importante que debes tener en cuenta, es que, cuando instales MariaDB perderás todos los datos que tengas almacenados en SQLite, ya que no hay ningún tipo de importación de la base de datos antigua a la nueva. Debido a esto, lo ideal es que instales MariaDB justo después de instalar Home Assistant OS, con el objetivo de que no pierdas ningún dato de tus integraciones ni automatizaciones.
¿Merece la pena instalar MariaDB?
Siempre hemos recomendado instalar el sistema operativo de domótica Home Assistant OS en una unidad de almacenamiento de tipo SSD, ya que tendremos una mayor velocidad de lectura y escritura que en un disco duro, tanto lectura y escritura secuencial como aleatoria. Cuando estamos almacenando el estado de cientos de sensores y miles de entidades, es muy importante la velocidad, porque notaremos que el sistema de domótica funciona realmente rápido, para tener la mejor experiencia de usuario posible.
Instalar MariaDB es una gran decisión a largo plazo. Si vas a usar Home Assistant con pocos sensores y entidades, para controlar cosas muy básicas, tienes la opción de no instalar MariaDB porque SQLite te servirá perfectamente. Sin embargo, cuando poco a poco vayamos instalando más integraciones y tengamos más sensores, echaremos de menos no haber tomado la decisión de instalarla, porque podremos realizar búsquedas mucho más rápidas en la sección de «Registro» que con la base de datos predeterminada.
Por estos motivos, nuestra recomendación es que instales MariaDB desde el principio, porque así no perderás los registros al cambiar de una base de datos a otra.
Descarga e instalación de MariaDB
Si tienes el sistema operativo Home Assistant OS tal y como os hemos explicado en anteriores tutoriales, tienes a tu disposición una sección de «Complementos» donde podrás instalar una gran cantidad de complementos oficiales, complementos de la comunidad y también complementos de terceros. En la sección de «Ajustes» vamos a poder acceder a esta sección para instalar MariaDB.
Lo primero que debemos instalar es el complemento de «File Editor«, este complemento nos permitirá navegar por los archivos de configuración del sistema de manera muy fácil y rápida. De esta forma, podemos editar directamente en la web de administración el archivo de configuración principal.
En la tienda de complementos podemos ver que «MariaDB» está como complemento oficial, pinchamos sobre ella.
Lo primero que debemos hacer es instalar el complemento pinchando en «Instalar«, tal y como podéis ver a continuación:
En la sección de «Documentación» tenemos una serie de pasos básicos para la instalación y el uso de esta nueva base de datos, que es básicamente lo que os vamos a enseñar en este tutorial.
Si bajamos en la documentación, podemos ver todas y cada una de las opciones requeridas y también las configuraciones opcionales que tenemos disponibles. Finalmente, podemos ver qué es lo que debemos configurar en el archivo general de configuración que se llama configuration.yaml.
Una vez instalada la base de datos de MariaDB, procedemos a habilitar el inicio en el arranque y también la vigilancia. Aún no debemos pinchar en «Iniciar» porque no la hemos configurado correctamente, para ello, debemos irnos a la pestaña de «Configuración«.
En este menú de «Configuración» tendrás que introducir el nombre de la base de datos, y también la contraseña del usuario «username» que tenemos en la sección de «Logins«. El resto de opciones de configuración las podemos dejar como están.
Una vez hecho esto, pinchamos en «Iniciar» la base de datos, esperamos unos segundos y ya empezará a funcionar, y nos indicará cuánta CPU y RAM está consumiendo este complemento.
Si nos vamos a la sección de «Registro» podemos ver que todo está funcionando correctamente.
Ahora lo que debemos hacer es configurar el archivo de configuración general para que use esta base de datos.
Activación de MariaDB para usarla en Home Assistant
Si abrimos el «File Editor» que hemos instalado previamente, nos vamos al archivo de configuración de «Configuration.yaml» y aquí tenemos que introducir la información para que todos los registros los grabe directamente en la base de datos.
El código que debes introducir, cuidando la identación, es el siguiente:
#Configuracion MariaDB para la base de datos completa
recorder:
db_url: mysql://homeassistant:RedesZoneClaveBuena@core-mariadb/homeassistant?charset=utf8mb4
purge_keep_days: 30
Una vez que lo hayamos hecho, nos vamos a la sección de «Herramientas para desarrolladores» y pinchamos en «Verificar configuración«, para que compruebe si a nivel de sintaxis está todo correcto, y que no tengamos problemas a la hora de reiniciar el sistema. Ahora procedemos a pinchar en el botón de «Reiniciar«.
Cuando nos pregunte si queremos reiniciar, pinchamos en «Reiniciar» nuevamente.
Una vez reiniciado, nuestro Home Assistant empezará a utilizar la base de datos de MariaDB. Si os habéis fijado en el código, hemos usado la opción de «purge_keep_days: 30«, esto significa que borrará todos los registros que tengan más de 30 días automáticamente, también podríamos hacer que todos los registros los guarde más tiempo, por defecto son 10 días. También tenemos la posibilidad de incluir ciertas entidades en los registros, e incluso de excluir otros, lo cierto es que todo es realmente configurable. En la web oficial de Home Assistant en la sección de «Recorder» podéis ver todas las opciones adicionales que podemos llevar a cabo.
Desventajas de MariaDB
Pese a que MariaDB es una buena opción, como hemos comprobado, tiene limitaciones que puede que nos hagan replantearnos si es la mejor de ellas, por lo que vamos a hacer un repaso:
- Compatibilidad con MySQL: Aunque MariaDB es un fork de MySQL, no es completamente compatible con todas las versiones y características de él, lo cual podría ser un problema para muchos usuarios o proyectos.
- Poca popularidad: Al no ser tan conocido y usado, no existen herramientas y recursos al alcance de todos, ya que la comunidad de usuarios es pequeña, y la información, ayuda y soporte, limitada.
- Va por detrás de MySQL: las últimas innovaciones que MySQL implementa bajo la dirección de Oracle no suelen llegar a MariaDB, al menos no rápidamente.
- Herramientas de terceros incompatibles: del mismo modo, los recursos ofrecidos por terceros no suelen ser compatibles con MariaDB, salvo casos puntuales donde se ha creado con este fin.
- Rendimiento: En altas cargas de trabajo, no está tan optimizada como MySQL, por lo que podría ofrecer un rendimiento peor, es decir, tendremos que pensar nuestras necesidades antes de su implementación.
- Adopción corporativa: En la mayoría de entornos empresariales MariaDB no es utilizada, por tanto, aprender a usarla, instalarla, y manejarla no es la mejor opción si pensamos en futuro, ya que puede que nos sirva a nosotros, pero no será algo que nos aporte nada en un futuro trabajo, donde apuestan más por soluciones respaldadas por grandes corporaciones como Oracle.
Estas son algunas de las desventajas que podemos ver, que como te habrás fijado, van muy en el entorno del rendimiento, recursos y optimización, es decir, si buscamos algo sencillo, es una gran opción, pero a niveles más altos, puede que no tanto.
Posibles problemas con MariaDB en Home Assistant
Si has ido paso a paso con nosotros, verás que configurar MariaDB como base de datos en Home Assistant OS no es un proceso complicado. Pero como siempre decimos, las piedras en el camino siempre están ahí y nunca se sabe cuándo pueden surgir. Uno de esos problemas suele ocurrir al iniciar el complemento MariaDB. El fallo puede venir por parte de la contraseña configurada en el complemento, que puede no coincidir con la especificada en el archivo configuration.yaml.
Se puede arreglar chequeando la contraseña introducida en la sección Logins del complemento MariaDB sea igual a la que hemos usado en la línea db_url del archivo de configuración. Estas rutas son largas y es habitual copiar y pegar la contraseña con espacios o caracteres incorrectos. También podemos mirar el registro del complemento MariaDB en la interfaz de Home Assistant para tener más detalles sobre el error.
También es habitual que Home Assistant no se reinicie bien después de editar el archivo configuration.yaml. Lo normal es que sea un error de sintaxis en el archivo YAML Una vez más hablamos de un formato sensible a los espacios y que debe estar correctamente alineada con dos espacios de indentación, como hemos visto más arriba. Podemos prever este problema o solucionarlo usando la herramienta Verificar. Si da error, tocará revisar con cuidado la línea indicada en el mensaje de error.
Algo que puede desesperar bastante también es la lentitud de carga de registros después de configurar MariaDB. Suele ser más normal cuando el sistema almacena grandes cantidades de datos, pero puede aparecer por otros motivos. Con discos duros mecánicos también es más habitual que ocurra, respecto a los SSD. Lo que tendremos que hacer en este caso es comprobar que Home Assistant OS esté instalado en una unidad SSD, que es lo más recomendable.