
Actualizado el 19 de enero de 2026
Si llevas un tiempo usando Home Assistant, es casi seguro que te has topado con el temido mensaje: «No se encontró historial de estado». De repente, los gráficos de tus sensores desaparecen y te quedas a ciegas. Este error, aunque frustrante, es uno de los más comunes y, por suerte, tiene una solución definitiva. El problema nace en el corazón de tu sistema: la base de datos.
Por defecto, Home Assistant utiliza una base de datos SQLite, un archivo llamado home-assistant_v2.db, para guardar cada cambio de estado de tus entidades. Con decenas o cientos de dispositivos, este archivo crece sin control hasta alcanzar su límite o corromperse, provocando el error. En esta guía definitiva de 2026, vamos a ver cómo solucionar y, más importante, cómo prevenir este problema para siempre.
Entendiendo la Causa: El Componente `recorder`
El responsable de todo este proceso es la integración recorder de Home Assistant. Su trabajo es escuchar los eventos del sistema y escribirlos en la base de datos. Sin una configuración adecuada, guarda absolutamente todo, desde el sensor de temperatura que se actualiza cada minuto hasta el estado de tu reproductor multimedia.
El primer paso para optimizar la base de datos es tomar el control del componente recorder. No se trata solo de borrar datos viejos, sino de decidir qué información es realmente importante para ti y cuál solo está ocupando un espacio valioso.
Solución Preventiva: Configurar `recorder` en `configuration.yaml`
La mejor estrategia es evitar que la base de datos crezca descontroladamente. Para ello, debemos editar nuestro archivo principal de configuración, configuration.yaml. Puedes acceder a él usando add-ons como Samba Share o Visual Studio Code.
Añade el siguiente bloque a tu configuration.yaml. Si ya tienes una sección recorder:, modifícala.
# Ejemplo de configuración del Recorder en configuration.yaml
recorder:
purge_keep_days: 14
exclude:
domains:
- media_player
- camera
entities:
- sensor.time
- sensor.date
- sensor.last_boot¿Qué hemos configurado aquí?
purge_keep_days: 14: Esta es la línea más importante. Le decimos a Home Assistant que, de forma automática, borre cualquier dato de estado que tenga más de 14 días. Esto mantiene un tamaño de base de datos constante y predecible.exclude: Aquí definimos qué no queremos guardar. Es la estrategia más eficiente.domains: Excluimos dominios enteros. Por ejemplo,media_playergenera muchos cambios de estado que raramente necesitamos consultar en un gráfico.entities: Excluimos entidades específicas. Elsensor.timecambia cada minuto, llenando la base de datos con información redundante que no aporta valor histórico.
Mi recomendación es empezar con una política de exclusión agresiva. Piensa qué entidades realmente necesitas historizar y excluye el resto. Tu sistema te lo agradecerá con un rendimiento mucho más fluido.
Solución Reactiva: Crear una Automatización de Purga
Si prefieres gestionar la purga manualmente o con una automatización específica, puedes usar el servicio recorder.purge. Este método es el que se usaba antiguamente, pero sigue siendo totalmente válido en 2026, especialmente gracias a la facilidad de la interfaz gráfica.
Crear la Automatización desde la Interfaz Gráfica (UI)
Esta es la forma más sencilla y recomendada para la mayoría de usuarios en 2026.
- Ve a Ajustes > Automatizaciones y escenas y pulsa en «Crear Automatización».
- Selecciona «Crear nueva automatización».
- Disparador (Trigger):
- Tipo de disparador: Tiempo.
- Selecciona «Hora fija» y establece una hora de baja actividad, por ejemplo, las
04:00:00.
- Acciones (Action):
- Tipo de acción: Llamar a un servicio.
- Servicio: Busca y selecciona
recorder.purge. - Marca las casillas de los datos que quieres configurar: Keep days y Repack.
- Keep days (Días a mantener): Introduce el número de días de historial que deseas conservar (ej.
30). - Repack (Reempaquetar): Activa esta opción. Esto recuperará el espacio en el disco, aunque puede hacer que Home Assistant no responda durante el proceso.
- Guarda la automatización con un nombre descriptivo, como «Purga Diaria de Base de Datos».
(Aquí iría una captura de pantalla mostrando el editor de automatizaciones de la UI con el servicio recorder.purge configurado).
Crear la Automatización con YAML
Si prefieres el método clásico o gestionas tus automatizaciones en archivos YAML, el código sigue siendo muy similar al de años anteriores. Puedes añadirlo en tu archivo automations.yaml.
- id: 'db_purge_diaria_2026'
alias: 'Database Purge Diario'
description: 'Limpia la base de datos cada día a las 4 AM'
trigger:
- platform: time
at: '04:00:00'
condition: []
action:
- service: recorder.purge
data:
keep_days: 30
repack: trueSoluciones Avanzadas: Migración a MariaDB
Para instalaciones grandes o si buscas el máximo rendimiento y fiabilidad, llega un momento en que SQLite se queda corto. El siguiente paso lógico es migrar tu base de datos a un sistema gestor más potente como MariaDB.
MariaDB es una alternativa a MySQL que funciona de maravilla con Home Assistant. Las ventajas son notables:
- Mayor rendimiento: Las consultas y la escritura de datos son mucho más rápidas.
- Menor riesgo de corrupción: Es un sistema mucho más robusto que un simple archivo de base de datos.
- Gestión remota: Puedes alojar la base de datos en otro servidor o NAS para liberar recursos de tu máquina principal de Home Assistant.
La migración es un proceso relativamente sencillo gracias al Add-on oficial de MariaDB. Si te interesa dar el salto, he preparado una guía completa sobre cómo instalar y configurar MariaDB en Home Assistant.
FAQ: Preguntas Frecuentes sobre el Historial de Estado
¿Qué hace exactamente `repack: true`?
Cuando el servicio recorder.purge elimina datos, en realidad solo los marca como borrados, pero el tamaño del archivo home-assistant_v2.db no disminuye. La opción repack: true fuerza a la base de datos a reorganizarse y reclamar ese espacio vacío, reduciendo efectivamente el tamaño del archivo. Es un proceso que consume bastantes recursos de disco y CPU, por eso se recomienda ejecutarlo en horas de poca actividad.
¿Cuántos días de historial (`keep_days`) debo guardar?
No hay una respuesta única, depende de tu uso.
- 7-15 días: Ideal para la mayoría de usuarios. Te permite ver tendencias semanales en los gráficos sin acumular una cantidad excesiva de datos.
- 30-90 días: Útil si usas mucho el panel de Energía o quieres analizar datos de consumo a más largo plazo.
- Más de 90 días: Si necesitas un histórico tan largo, te recomiendo encarecidamente que migres a MariaDB o explores soluciones como InfluxDB para datos a largo plazo, ya que una base de datos SQLite tan grande afectará al rendimiento general.
He borrado el archivo `home-assistant_v2.db`, ¿he roto algo?
No, no has roto nada. Es una solución de «fuerza bruta» que funciona. Home Assistant lo recreará vacío en el siguiente reinicio. El único inconveniente es que pierdes todo tu historial. Además, no soluciona el problema de raíz: si no configuras el recorder, el archivo volverá a crecer sin control y te encontrarás con el mismo error en unas semanas o meses.
En definitiva, solucionar el error «no se encontró historial de estado» en Home Assistant es un rito de iniciación para cualquier usuario. Aplicando estas estrategias, no solo lo solucionarás, sino que conseguirás un sistema más rápido, estable y preparado para seguir creciendo en 2026.
