copias-de-seguridad-backups-home-assistant-google-drive

Copias de seguridad de Home Assistant: estrategia 3-2-1

  • 8 min

Una copia de seguridad de Home Assistant es un archivo cifrado con la configuración y los datos necesarios para restaurar la instalación.

Todo este esfuerzo digital reside físicamente en un único medio de almacenamiento (el disco SSD o la memoria eMMC de nuestro servidor). Como sabemos por experiencia en ingeniería de sistemas, el hardware físico siempre acaba fallando. No es una cuestión de si va a ocurrir, sino de cuándo va a ocurrir.

Si mañana tu Mini PC sufre un pico de tensión que fríe la placa base, o el disco SSD agota sus ciclos de escritura y corrompe la base de datos de Home Assistant, te enfrentarás a la pesadilla de tener que reescribir todo el código y volver a emparejar cada bombilla de la casa desde cero.

Para evitar este desastre, debemos implementar el último pilar de cualquier despliegue en producción: una estrategia de copias de seguridad (Backups) automatizada, desatendida y externalizada.

El sistema nativo de copias de HAOS

Una de las mayores ventajas de haber elegido la arquitectura Home Assistant OS (HAOS) es que incluye un gestor de copias de seguridad extremadamente potente integrado directamente en el sistema.

Este sistema prepara los componentes, empaqueta la configuración y guarda la copia en un archivo de extensión .tar. Las copias actuales pueden cifrarse y requieren conservar su clave de emergencia para restaurarlas.

Existen dos tipos de copias de seguridad nativas:

  • Copia de seguridad completa: Incluye directorios como /config, /share, /ssl y /media, además de los datos de las aplicaciones instaladas. No necesita guardar las imágenes de los contenedores, que se vuelven a descargar durante la restauración.
  • Copia de seguridad parcial: Permite seleccionar directorios y aplicaciones concretas. Es útil para reducir el tamaño o recuperar solo una parte del sistema.

El fallo arquitectónico por defecto

Si vamos a Ajustes > Sistema > Copias de seguridad, podemos generar un backup completo con un solo clic. Sin embargo, este método manual tiene un problema de diseño crítico si nos quedamos ahí:

Por defecto, Home Assistant guarda ese archivo .tar en la carpeta /backup dentro del mismo disco duro donde está instalado el sistema operativo. Un backup almacenado en el mismo medio físico que los datos originales no es un backup; es una ilusión. Si el disco muere, pierdes el sistema y pierdes la copia.

Para diseñar una estrategia robusta, debemos aplicar el estándar de la industria.

Home Assistant también permite programar copias automáticas desde la propia interfaz. Esto es una mejora enorme frente a los primeros años del proyecto. Aun así, el punto importante sigue siendo el mismo: la copia tiene que acabar en otro sitio, no solo en el disco del servidor.

La regla 3-2-1 en domótica

En administración de sistemas aplicamos la Regla 3-2-1 para garantizar la integridad de los datos:

  1. Mantener 3 copias de los datos (la original en producción y dos backups).
  2. Almacenadas en 2 soportes físicos distintos (ej. el SSD del servidor y un NAS local).
  3. Mantener 1 copia externalizada (Offsite) fuera de la ubicación física (en la nube, por si la casa sufre un incendio, robo o inundación).

Dado que automatizar esto manualmente mediante scripts de Bash y cron sería tedioso, la comunidad de Home Assistant ha desarrollado herramientas muy cómodas que resuelven este problema en muy poco tiempo.

Copias externas en Google Drive

Home Assistant incorpora una integración oficial de Google Drive que puede actuar como destino de las copias. Una vez configurada, aparece junto al almacenamiento local y permite aplicar su propia política de retención.

Si usas Home Assistant Cloud, puedes almacenar allí la copia más reciente dentro del límite ofrecido por la suscripción. La integración oficial de Google Drive es una alternativa cuando preferimos utilizar el espacio de nuestra cuenta de Google.

  1. Ve a Ajustes > Dispositivos y servicios y añade la integración Google Drive.
  2. Configura las credenciales OAuth de Google siguiendo el asistente oficial.
  3. Autoriza la cuenta y comprueba que Google Drive aparece como ubicación en Ajustes > Sistema > Copias de seguridad.
  4. Activa esa ubicación en la configuración de copias automáticas y guarda el kit de emergencia fuera de Home Assistant.

Una vez enlazado, debemos configurar la retención para no llenar el espacio disponible. Home Assistant permite definir cuántas copias conserva cada ubicación.

Una configuración recomendada para un entorno doméstico sería:

  • Copias en Home Assistant (Locales): Conservar 3.
  • Copias en Google Drive (Nube): Conservar 7 (una por cada día de la semana).
  • Frecuencia: Realizar un backup automático cada 24 horas (típicamente de madrugada, a las 03:00 AM, cuando el sistema tiene menor carga de trabajo).

Con esta configuración, Home Assistant rotará las copias automáticamente y eliminará las más antiguas de acuerdo con la política elegida.

Si la base de datos es muy grande, revisa qué entidades almacena recorder y su periodo de conservación. La base de datos está dentro de /config, por lo que una copia parcial que incluya la configuración también la incluirá; lo adecuado es reducirla antes mediante las opciones de recorder.

Alternativas locales: NAS y almacenamiento de red

Si eres de los puristas que se niegan a subir un solo byte a la nube de Google, o si ya posees un servidor NAS (Network Attached Storage) como Synology o TrueNAS en tu red local, existe una alternativa idéntica para almacenamiento en red local.

Home Assistant OS permite añadir almacenamiento de red NFS o CIFS y marcarlo como destino de copias. También existen integraciones con destinos como Synology DSM o OneDrive.

Idealmente, combinaríamos un destino de red local y otro externo, como un NAS para restauraciones rápidas y Google Drive para cumplir el requisito offsite de la regla 3-2-1.

Cómo probar la restauración

Existe un refrán en la ingeniería de sistemas: “Un backup que nunca ha sido probado es un backup de Schrödinger; puede que funcione o puede que no”.

De nada sirve tener 100 archivos en Google Drive si, llegado el momento del desastre, no sabemos cómo inyectarlos en una máquina nueva. El proceso de restauración en Home Assistant OS destaca precisamente por su sencillez.

Imaginemos el peor escenario: el servidor se ha quemado. Compramos un Mini PC nuevo.

Flasheamos Home Assistant OS desde cero en el nuevo disco SSD usando BalenaEtcher.

Arrancamos el servidor y entramos a la IP local por el puerto 8123.

Nos aparecerá la pantalla de bienvenida inicial de Home Assistant (donde nos pide crear el primer usuario).

No creamos ningún usuario. En la pantalla de bienvenida seleccionamos la opción para subir una copia de seguridad.

Descargamos nuestro último archivo .tar desde Google Drive a nuestro ordenador.

Lo subimos a través de esa pantalla inicial.

Home Assistant restaurará las partes seleccionadas y volverá a descargar las aplicaciones necesarias. Después del reinicio debemos comprobar integraciones, radios, aplicaciones, automatizaciones y credenciales, porque el resultado también depende del hardware conectado y de qué incluyera la copia.

En Zigbee, la recuperación depende del software y del coordinador utilizado. ZHA mantiene copias de su red y permite migrar radios compatibles; Zigbee2MQTT guarda sus datos en su directorio de configuración. Incluid esos datos y conservad una copia específica del coordinador cuando la plataforma la ofrezca.

Qué conviene probar de verdad

No hace falta quemar el servidor para comprobar un backup. Podemos hacer un simulacro razonable restaurando una copia en una máquina virtual, en una Raspberry Pi de pruebas o en un Mini PC secundario desconectado de la instalación real.

El objetivo del simulacro no es solo ver que Home Assistant arranca. También queremos comprobar que las aplicaciones vuelven, las integraciones aparecen, las automatizaciones existen y los secretos se han restaurado. Si usamos Zigbee2MQTT, conviene verificar además que los datos de su aplicación están incluidos en la copia.

Anotad en un sitio externo al propio Home Assistant los datos mínimos de recuperación: IP del servidor, usuario de backups, ubicación de las copias, dominio remoto y dónde está guardado el dongle Zigbee. En el momento del desastre, agradeceréis no tener que acordaros de todo de memoria.

Si protegéis las copias con contraseña o cifrado, guardad esa clave fuera de Home Assistant: un gestor de contraseñas, una nota física bien guardada o ambos. Un backup cifrado cuya clave nadie recuerda es, a efectos prácticos, un backup perdido.