
Este artículo puede contener enlaces de afiliado. Si compras desde estos enlaces, el precio para ti es el mismo y la tienda me paga una pequeña comisión que ayuda a mantener Tecnoyfoto.
El resultado de esta auditoría puede resumirse así:
| Archivos históricos revisados | 101 |
| Archivos movidos a la cuarentena externa | 1 |
| Archivos que permanecieron sin tocar | 100 |
| Archivos eliminados | 0 |
Esta diferencia es importante: no hemos eliminado ningún archivo. Del conjunto histórico de 101 elementos, solo uno se trasladó a una cuarentena externa. Los otros 100 permanecieron sin tocar porque no existían pruebas suficientes para asegurar que hubieran dejado de utilizarse.
El objetivo: limpiar archivos de Home Assistant sin romper nada
Después de varios años utilizando Home Assistant es normal acumular configuraciones antiguas, pruebas, copias, fragmentos YAML, archivos de integraciones y datos generados por complementos.
El problema es que un archivo antiguo no es necesariamente un archivo inútil. Puede seguir cargándose mediante un include, un package, una integración, un dashboard o un complemento. También puede utilizarse solamente una vez al mes, durante las vacaciones, en una estación determinada o cuando se activa la alarma.
La ausencia de una referencia directa por nombre no demuestra que un archivo no se utilice.
Por este motivo, el proceso se realizó lentamente y en varias fases:
- Inventario inicial en modo de solo lectura.
- Clasificación de los candidatos.
- Búsqueda de referencias directas e indirectas.
- Revisión crítica de la primera clasificación.
- Selección de una tanda pequeña.
- Elección de una cuarentena fuera de Home Assistant.
- Movimiento de un único archivo con verificación de integridad.
- Comprobación posterior sin reiniciar Home Assistant.
- Periodo de observación antes de plantear cualquier eliminación.
Antes de empezar: reglas de seguridad
Si utilizas Codex desde un entorno con acceso a los archivos reales de Home Assistant, la inteligencia artificial puede llegar a leerlos y, cuando se lo autorices, modificarlos. Por tanto, conviene establecer unas reglas muy claras desde el primer prompt.
- Crea y descarga un backup reciente antes de autorizar cambios.
- No pegues contraseñas, tokens, claves API ni cookies en el chat.
- Empieza siempre en modo de solo lectura.
- No permitas movimientos hasta haber revisado la clasificación.
- No confundas un YAML válido con una casa completamente validada.
- No elimines directamente: utiliza primero una cuarentena reversible.
- Trabaja inicialmente con tandas muy pequeñas.
- Todo elemento dudoso debe clasificarse como NO TOCAR.
Home Assistant permite dividir la configuración mediante !include, packages y diferentes variantes de !include_dir_*. Algunas de estas inclusiones recorren directorios completos de forma recursiva. Puedes consultar el funcionamiento en la documentación oficial sobre la división de la configuración.
Por qué una carpeta antigua puede seguir activa
Una auditoría segura no puede limitarse a buscar el nombre de cada archivo en configuration.yaml. También debe revisar:
!include,!include_dir_list,!include_dir_named,!include_dir_merge_listy!include_dir_merge_named.- Packages y archivos cargados desde otros YAML.
- Dashboards administrados desde YAML o desde la interfaz.
- Recursos alojados en
wwwy referencias mediante/local/. - Automatizaciones, scripts, escenas y plantillas.
- Código dentro de
custom_components. - Configuraciones y packages de ESPHome.
- Archivos utilizados por Zigbee2MQTT y MQTT.
- Rutas construidas dinámicamente mediante scripts.
- Carpetas vigiladas o administradas por complementos.
- Procesos externos, tareas programadas o contenedores.
- Funciones mensuales, vacacionales, estacionales o de alarma.
Qué encontramos en la instalación analizada
La primera lectura partió de 101 elementos dentro del conjunto histórico. Durante el nuevo repaso aparecieron además dos elementos recientes, pero Codex también los mantuvo en la categoría NO TOCAR. Para no mezclar cifras, el resumen inicial de este artículo se refiere únicamente a los 101 históricos.
La ubicación y la antigüedad no bastaban para considerar seguro ningún archivo. Una inclusión indirecta, un complemento, una automatización poco frecuente o una función estacional podían seguir utilizándolo aunque su nombre no apareciera en una búsqueda directa.
Después de varias revisiones, Codex redujo la revisión práctica a ocho YAML históricos muy pequeños y de unos cinco años de antigüedad. Siete necesitaban más comprobaciones. Solo uno, de 392 bytes y aproximadamente 1.900 días, pasó a ser un candidato razonable para una cuarentena externa.
Dónde debe estar la cuarentena
Crear otra carpeta dentro de config no garantiza el aislamiento. Puede quedar bajo el alcance de una inclusión recursiva y también puede incorporarse a los backups completos.
La documentación oficial indica que un backup completo incluye, entre otros, los directorios de configuración, datos compartidos, complementos manuales, certificados y medios. Puedes ampliar esta información en la documentación oficial de backups.
La opción preferible es una carpeta cifrada situada en un NAS, ordenador o disco externo que cumpla estas condiciones:
- No está dentro de Home Assistant.
- No está montada en Home Assistant.
- No está compartida con ESPHome, Zigbee2MQTT ni otros complementos.
- No forma parte de una carpeta vigilada.
- No se publica mediante
www, medios o dashboards. - Dispone de permisos restringidos.
- Tiene su propia copia de seguridad.
Si no dispones de almacenamiento externo, una cuarentena interna sigue siendo mejor que borrar directamente. Sin embargo, debes asumir que podría entrar en los backups y revisar con especial cuidado las inclusiones recursivas.
Prompts para realizar tu propia auditoría
Los siguientes prompts están adaptados para que puedas utilizarlos en tu instalación. No son una transcripción literal de cada frase escrita durante la grabación: los he ordenado y reforzado para que resulten más claros, prudentes y reutilizables. Sustituye los textos entre corchetes por tus datos, pero no incluyas contraseñas, tokens, claves ni direcciones privadas.
Prompt 1: inventario inicial en modo de solo lectura
Este primer prompt prohíbe cualquier modificación y solicita únicamente un inventario agregado.
Quiero continuar una auditoría real de mi instalación de Home Assistant.
Si existen, consulta primero y sin mostrar su contenido:
- [RUTA_RELATIVA_DEL_PLAN_DE_AUDITORÍA]
- [RUTA_RELATIVA_DEL_REGISTRO_DE_TRABAJO]
Si esos documentos no existen, indícalo y continúa con una auditoría nueva.
Reglas obligatorias:
- Trabaja inicialmente en modo SOLO LECTURA.
- No modifiques, muevas ni borres nada.
- No reinicies ni actualices servicios.
- No abras ni muestres el contenido de archivos sensibles.
- No muestres secretos, tokens, cookies, contraseñas, claves, URLs privadas, direcciones de red, nombres personales ni datos identificables.
- Redacta cualquier dato sensible como [REDACTADO].
- Muestra solo rutas relativas y redacta también los nombres de archivo que puedan revelar información privada.
- Antes de cada comando, explica exactamente qué consulta de lectura quieres hacer y para qué.
Primero revisa el estado de cualquier cuarentena existente y prepara un inventario seguro de candidatos de limpieza.
Devuelve únicamente:
- categoría;
- cantidad;
- tamaño aproximado;
- antigüedad;
- riesgo.
No imprimas contenidos y todavía no propongas mover nada.Prompt 2: clasificación profunda de los candidatos
La ausencia de una referencia nominal no debe interpretarse como abandono. Este prompt obliga a buscar cargas indirectas.
Ahora clasifica los candidatos, pero sigue en modo de solo lectura y no muestres contenido sensible.
La ausencia de una referencia directa por nombre NO demuestra que un archivo no se utilice.
Comprueba también, cuando corresponda:
- includes de archivos y carpetas, incluidos !include_dir_*;
- packages y rutas cargadas indirectamente;
- recursos de dashboards y www;
- archivos usados por custom_components o integraciones;
- rutas de ESPHome, Zigbee2MQTT y MQTT;
- scripts o procesos que construyan nombres dinámicamente;
- carpetas vigiladas o gestionadas por complementos;
- si la cuarentena actual puede entrar en la configuración activa o en los backups.
Para cada candidato informa únicamente de:
- categoría;
- evidencia de uso o abandono;
- referencia directa, indirecta o no comprobable;
- riesgo de tocarlo;
- confianza alta, media o baja.
Todo elemento dudoso debe quedar como NO TOCAR.
No propongas cambios todavía.Prompt 3: revisión crítica con razonamiento alto
Una vez obtenida la primera clasificación, conviene pedirle al propio modelo que actúe como abogado del diablo.
Antes de proponer cualquier movimiento, revisa críticamente tu propia clasificación con razonamiento alto.
Para cada candidato que hayas considerado seguro o probablemente histórico, busca motivos por los que todavía podría estar activo.
Revisa especialmente:
- cargas indirectas;
- integraciones;
- complementos;
- dashboards;
- tareas poco frecuentes;
- automatizaciones mensuales;
- uso vacacional o estacional;
- funciones de seguridad y alarma;
- dispositivos que actualmente puedan estar desconectados.
No hagas cambios.
Devuelve tres grupos:
1. candidatos de confianza alta;
2. elementos que necesitan más comprobación;
3. elementos que no deben tocarse.
Explica también las limitaciones de esta comprobación y qué usos reales de la casa no pueden validarse inmediatamente.
No muestres ningún dato sensible.Prompt 4: diseñar una cuarentena segura
Sin crear carpetas ni mover archivos, propón una estrategia de cuarentena adecuada para esta instalación.
Antes de recomendar una ubicación, comprueba que quede fuera de:
- carpetas incluidas o cargadas por Home Assistant;
- rutas gestionadas o vigiladas por ESPHome, Zigbee2MQTT, MQTT, integraciones o complementos;
- configuración activa de dashboards y recursos;
- cualquier carga recursiva detectada.
Distingue entre:
- archivo histórico sin datos sensibles;
- archivo con credenciales caducadas;
- archivo con credenciales posiblemente activas;
- copia histórica que sea necesario conservar;
- dato personal innecesario.
Para cada caso explica:
- motivo;
- riesgo;
- protección necesaria;
- procedimiento de vuelta atrás;
- cómo verificarlo.
Aclara también si la ubicación propuesta entraría en los backups de Home Assistant.
No ejecutes nada y no muestres valores ni nombres sensibles.Prompt 5: seleccionar una primera tanda pequeña
Entiendo que no conviene crear otra cuarentena dentro de Home Assistant si puede entrar en los backups o quedar bajo una inclusión.
La cuarentena definitiva estará fuera de la instalación, preferiblemente en una carpeta cifrada que no esté montada ni compartida con Home Assistant, ESPHome, Zigbee2MQTT ni ningún complemento.
Quiero ser práctico y prudente. Revisa primero una tanda pequeña de candidatos de bajo riesgo.
Enséñame una lista concreta separada en tres grupos:
1. no tocar;
2. necesita más comprobaciones;
3. candidato razonable a cuarentena.
Para cada candidato explica de forma sencilla:
- qué tipo de archivo es;
- por qué sospechas que ya no se utiliza;
- qué comprobaciones has realizado;
- qué dudas siguen existiendo.
Utiliza identificadores anónimos y estables si el nombre del archivo pudiera revelar información privada.
No muevas ni modifiques nada todavía.Prompt 6: comprobar el destino externo
Antes de utilizar este prompt, monta tú mismo la carpeta externa en el sistema operativo. No pegues usuarios ni contraseñas en el chat.
Quiero utilizar esta ubicación externa para la cuarentena:
[RUTA_EXTERNA_YA_MONTADA]
No muestres nuevamente la ruta completa ni ningún dato identificable.
Antes de mover archivos:
- comprueba que la carpeta existe;
- verifica que sus metadatos son accesibles;
- comprueba si hay permisos potenciales de escritura sin crear todavía archivos;
- confirma que no está dentro del árbol de Home Assistant;
- busca referencias exactas a esa ubicación en la configuración local;
- comprueba si aparece como almacenamiento montado o gestionado por Home Assistant o sus complementos, cuando esa información esté disponible;
- indica cualquier limitación que impida certificar el aislamiento.
No enumeres archivos del destino.
No muestres usuarios, recursos compartidos ni credenciales.
No crees carpetas y no muevas nada todavía.Prompt 7: mover un único candidato con verificación
Este es el primer prompt que autoriza una modificación real. Revisa cuidadosamente el identificador y el destino antes de enviarlo.
Mueve exclusivamente el candidato [ID_CANDIDATO] a la ubicación externa que acabamos de validar.
Reglas obligatorias:
- No muevas ningún otro archivo.
- No crees carpetas.
- No sobrescribas archivos existentes.
- Confirma que el identificador corresponde de forma unívoca a un solo archivo.
- Verifica que el origen está dentro de la cuarentena autorizada.
- Calcula un hash SHA-256 del original.
- Copia primero el archivo al destino.
- Calcula el hash SHA-256 de la copia.
- Antes de eliminar el original, registra en el manifiesto autorizado el identificador, la ruta original, el destino, el tamaño, la fecha, el hash y el procedimiento de restauración.
- Elimina el original únicamente si ambos hashes coinciden y el manifiesto se ha guardado correctamente.
- Si la copia, la comprobación o el registro del manifiesto falla, conserva el original.
- No muestres en pantalla ni en el chat el nombre, la ruta, el hash ni el contenido.
- Devuelve solo el estado de la operación, la confirmación de que el manifiesto se ha actualizado y las comprobaciones realizadas.Prompt 8: verificación posterior sin reiniciar
Verifica ahora la primera tanda sin reiniciar ni modificar nada más.
Comprueba de forma segura y sin mostrar datos sensibles:
- que los elementos activos esperados siguen presentes;
- que la configuración puede validarse con el método no destructivo disponible;
- si han aparecido errores nuevos relacionados en los logs;
- referencias de dashboards y recursos afectados;
- automatizaciones, scripts e integraciones relacionadas;
- que el inventario y la vuelta atrás coinciden con lo realizado.
Separa el resultado en:
1. validado ahora;
2. pendiente de observar durante el uso real;
3. señales que obligarían a revertir.
No confundas una configuración YAML válida con una validación funcional completa de la casa.
Incluye entre las comprobaciones domésticas:
- dashboard sin tarjetas nuevas rotas;
- automatizaciones habituales sin errores nuevos;
- integraciones relacionadas disponibles;
- ninguna función crítica afectada;
- observación de procesos mensuales, estacionales o de alarma.Cómo validar la configuración sin reiniciar
En Home Assistant OS puedes ir a Ajustes → Herramientas de desarrollador → YAML → Comprobar configuración. Desde el terminal también puedes utilizar:
ha core checkEn Home Assistant Container, adapta el nombre del contenedor si no utilizas el predeterminado:
docker exec homeassistant python -m homeassistant --script check_config --config /configConsulta siempre el método actualizado para tu tipo de instalación en la documentación de Home Assistant OS o en la documentación de Home Assistant Container.
Una configuración YAML válida solo demuestra que la estructura puede interpretarse. No demuestra que todas las automatizaciones, integraciones, dashboards y dispositivos de la casa funcionen correctamente.
Qué comprobamos después del movimiento
Después de mover el único candidato, la verificación estática confirmó lo siguiente:
- Los siete YAML que necesitaban más comprobaciones seguían presentes.
- Los demás elementos históricos protegidos permanecían sin cambios.
- El archivo seleccionado había salido de la cuarentena interna.
- La copia externa existía y había superado la verificación de integridad.
- Home Assistant seguía respondiendo.
- La comprobación estática inmediata no detectó errores relacionados.
- No se encontró ninguna referencia al archivo movido en los 152 archivos de dashboards y recursos revisados.
- No se reinició, recargó ni modificó ningún otro elemento durante la verificación.
Estas comprobaciones son favorables, pero todavía no permiten borrar definitivamente el archivo.
Periodo de observación: seis semanas en esta prueba
En esta prueba he decidido mantener el archivo durante seis semanas en la cuarentena externa. No es un plazo universal ni una garantía automática: durante ese tiempo hay que utilizar la casa con normalidad y observar:
- Dashboards utilizados por todos los perfiles y dispositivos.
- Automatizaciones diarias y semanales.
- Scripts ejecutados manualmente.
- Integraciones y complementos relacionados.
- Dispositivos ESPHome y Zigbee2MQTT.
- Logs de Home Assistant y de los complementos.
- Alarmas y funciones de seguridad.
- Procesos mensuales.
- Rutinas de vacaciones.
- Calefacción, refrigeración, riego u otras funciones estacionales.
Seis semanas pueden cubrir muchas funciones habituales, pero no todas. Un sistema de riego, una automatización navideña o una función de calefacción pueden requerir observar un ciclo estacional completo. Al terminar el plazo no se debe borrar automáticamente: primero hay que revisar de nuevo el inventario, los logs y la capacidad real de restauración.
Señales que obligan a restaurar el archivo
- Aparece un error de include o archivo no encontrado.
- Una integración deja de cargar.
- Una automatización o script empieza a fallar.
- Un dashboard muestra tarjetas o recursos rotos.
- Un dispositivo deja de compilar, actualizarse o conectarse.
- Se pierde una función crítica de seguridad o alarma.
- Aparece un error nuevo relacionado en los logs.
- Falla una tarea mensual, vacacional o estacional.
- La copia externa cambia de hash, se corrompe o deja de ser accesible.
- No se puede reconstruir con certeza la ubicación original.
El inventario es tan importante como la cuarentena
En esta prueba, la copia externa era íntegra, pero el inventario persistente no contenía todavía la ruta original ni el hash. Esto no provocó un fallo funcional, pero sí bloqueó la posibilidad de continuar con una segunda tanda.
Para cada archivo movido conviene guardar en un manifiesto cifrado:
- Identificador anónimo.
- Ruta original.
- Ubicación externa.
- Tamaño.
- Fecha del movimiento.
- Hash SHA-256.
- Motivo de la clasificación.
- Comprobaciones realizadas.
- Fecha mínima de revisión.
- Procedimiento de restauración.
Preguntas frecuentes
¿Un archivo de hace cinco años se puede borrar?
No necesariamente. Puede seguir cargándose mediante un include, utilizarse como package o depender de un proceso que solo se ejecuta ocasionalmente.
¿Por qué no borrar directamente?
Porque una cuarentena reversible permite recuperar el archivo si aparece un problema. La eliminación definitiva debe ser el último paso, no el primero.
¿Puedo guardar la cuarentena dentro de Home Assistant?
Es posible, pero no es lo ideal. Podría entrar en un backup completo o quedar bajo el alcance de una carga recursiva. Si no tienes otra opción, utiliza una ubicación expresamente excluida de la configuración y revisa todos los includes.
¿Puedo darle a Codex la contraseña del NAS?
No es recomendable. Monta tú mismo el recurso mediante el sistema operativo y entrega a Codex únicamente la ruta ya autenticada. Nunca publiques credenciales en el prompt.
¿Cuándo puedo eliminar definitivamente el archivo?
Solo después de completar el periodo de observación adecuado, revisar que no existan errores ni referencias, probar las funciones relacionadas y verificar una vuelta atrás completa. Incluso entonces conviene tratar la eliminación como una decisión final separada, no como el paso automático que sigue a la cuarentena. Para procesos estacionales debes esperar al ciclo correspondiente.
Conclusión
El objetivo de una limpieza segura no es eliminar el mayor número posible de archivos. El objetivo es reducir riesgos sin romper Home Assistant.
Empezamos con 101 históricos y terminamos moviendo solo uno. Puede parecer un resultado pequeño, pero es exactamente lo que debe ocurrir cuando la evidencia no es suficiente: los otros 100 permanecen sin tocar.
La inteligencia artificial puede revisar miles de referencias, includes, archivos y logs, pero la decisión final sigue siendo nuestra. Codex puede informar de que no ha encontrado una dependencia dentro del alcance de sus comprobaciones; no puede demostrar que esa dependencia no exista. Solo el uso real de la casa puede confirmar que una función mensual, estacional o de seguridad continúa funcionando.
Primero leer, después clasificar, luego comprobar, mover solo una pequeña tanda y no eliminar hasta haber observado la instalación durante un periodo prudente.
