Cómo configurar la caché y el almacenamiento temporal de Home Assistant

Eva Wong es la redactora técnica y manitas residente en ZimaSpace. Es una geek de toda la vida apasionada por los laboratorios domésticos y el software de código abierto, y se especializa en traducir conceptos técnicos complejos en guías prácticas y fáciles de seguir. Eva cree que alojar servicios propios debería ser divertido, no intimidante. A través de sus tutoriales, ayuda a la comunidad a desmitificar la configuración del hardware, desde montar su primer NAS hasta dominar los contenedores Docker.

Configura la caché de Home Assistant identificando primero qué datos son desechables; nunca traslades toda la ruta de configuración persistente al almacenamiento temporal.

«Caché» puede referirse a recursos de la interfaz web del navegador, salida TTS, archivos temporales específicos de una integración, el /tmp de un contenedor, la caché de páginas del sistema operativo o el espacio de trabajo de una base de datos. Cada capa tiene responsables y comportamientos de recuperación distintos. Mantén los usuarios, los registros, la configuración, el estado de Recorder y otros archivos de referencia en almacenamiento duradero. Usa tmpfs o almacenamiento respaldado por RAM solo para rutas desechables documentadas cuya pérdida y consumo de memoria hayas probado tras reiniciar.

Clasifica la caché antes de mover cualquier ruta

Empieza por identificar al responsable, la ruta, el tamaño máximo previsto, el método de reconstrucción y qué ocurre si desaparecen los datos. La caché del navegador está en el cliente; el estado persistente de la aplicación Home Assistant está en la ruta de datos configurada; las cachés de integraciones varían; los archivos temporales del contenedor pueden desaparecer al reiniciarse. No intentes resolverlo todo con un único ajuste global de «directorio de caché».

Un caso de TTS de Home Assistant muestra un ejemplo acotado en el que el audio generado en una ruta de caché específica se redirigió deliberadamente a una ubicación respaldada por RAM. El límite importante al mover una caché TTS desechable es que el usuario eligió un único directorio regenerable, no todo el árbol de configuración.

Si no puedes demostrar que un archivo puede desaparecer sin perder la identidad, el historial, los ajustes, los paneles o el registro de integraciones, clasifícalo como persistente. La opción predeterminada más segura es el almacenamiento duradero. La optimización viene después de saber quién se encarga de la recuperación.

Mantén el estado persistente de Home Assistant y Recorder en almacenamiento duradero

El punto de montaje de configuración no es una caché solo porque contenga algunos archivos generados. Puede contener autenticación, registros de entidades y dispositivos, estado de automatizaciones, configuración, componentes personalizados y la base de datos predeterminada de Recorder. Colocar toda esa ruta en tmpfs convierte un reinicio en una pérdida de datos y hace que las copias de seguridad dependan del contenido de la memoria, que nunca estuvo pensado para ser la fuente de referencia.

La explicación de ZimaSpace sobre las funciones de los datos persistentes de Home Assistant es el primer criterio correcto: separa el estado de referencia de la caché regenerable y los datos de trabajo temporales antes de asignar niveles de almacenamiento.

Usa un SSD u otro sistema de archivos duradero y fiable para el estado de la aplicación, y reserva suficiente espacio libre para el crecimiento de la base de datos, las actualizaciones y el mantenimiento. Mover a la RAM una pequeña caché desechable no compensa un volumen persistente demasiado pequeño o defectuoso.

Usa tmpfs solo para rutas explícitamente desechables y con un límite de memoria

Tmpfs puede reducir las escrituras y ofrecer una latencia muy baja, pero consume RAM del host y desaparece cuando se detiene el contenedor o el host. Por eso es adecuado para datos temporales con límites, no para nada que se necesite después de reiniciar. El montaje también debe tener un tamaño que impida que una carga de trabajo temporal consuma la memoria que necesitan Home Assistant Core y los servicios próximos.

Una guía actual de Docker Compose explica que el uso de tmpfs cuenta para la capacidad de memoria y puede provocar errores de falta de espacio o de OOM si el tamaño es excesivo o no está limitado en relación con el presupuesto de memoria del contenedor.

Establece un límite de tamaño, supervisa el uso máximo y reinicia el contenedor deliberadamente. La ruta debería volver a llenarse automáticamente mientras los usuarios, los ajustes, el historial y las integraciones permanecen sin cambios. Si la aplicación no puede reconstruir el directorio o considera que su ausencia es una corrupción, devuélvelo al almacenamiento duradero.

Trata la caché del frontend como un problema del cliente, no del almacenamiento del servidor

Una página obsoleta de Home Assistant en un navegador puede persistir incluso cuando el servidor funciona correctamente, porque el navegador o la aplicación almacenan en caché los recursos del frontend. Borrar los archivos temporales del servidor no corregirá el estado de ese cliente. A la inversa, borrar la caché del navegador no reduce la E/S de disco de Recorder ni hace que la base de datos de Home Assistant sea más pequeña.

Los usuarios de Home Assistant distinguen explícitamente la caché del frontend como caché del navegador, por lo que la solución de problemas de caché debe comenzar por determinar si el síntoma aparece en un solo cliente o en todo el servidor.

Usa un navegador limpio o un perfil privado como control de validación. Si el nuevo cliente funciona correctamente, mantén la solución en la ruta del frontend. Si todos los clientes muestran los mismos datos ausentes o un error del servidor, no sigas borrando las cachés locales; vuelve a solucionar problemas de los registros, el almacenamiento, las integraciones o la base de datos de Home Assistant.

Valida el almacenamiento temporal mediante pruebas de reinicio, presión y espacio libre

Después de cambiar una ruta de caché o tmpfs, mide el tamaño normal y máximo, la memoria disponible en el host, la presión de memoria del contenedor, el espacio libre del volumen persistente y el comportamiento al reiniciar. Luego ejecuta la carga de trabajo que genera la caché (TTS, contenido multimedia, procesamiento de integraciones personalizadas u otro proceso conocido) y confirma que la limpieza se produce según lo previsto.

Deja margen en el almacenamiento duradero para las operaciones que necesitan espacio de trabajo temporal, aunque la base de datos del día a día quepa holgadamente. No llenes el volumen persistente porque una caché de RAM haya hecho parecer más pequeñas las escrituras normales; las actualizaciones, el mantenimiento de la base de datos, las copias de seguridad y los picos de registros pueden tener requisitos de espacio temporal muy diferentes.

La prueba se supera cuando todas las rutas desechables pueden desaparecer y reconstruirse, los datos persistentes sobreviven al reinicio del contenedor y del host, el uso máximo de tmpfs se mantiene dentro del presupuesto de memoria y Home Assistant conserva suficiente espacio libre duradero. Si algún ajuste o historial necesario desaparece después de la prueba, la ruta se clasificó erróneamente y debe devolverse al almacenamiento persistente antes de seguir ajustando.

Soporte y consejos

Más para leer

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.