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.