# **CEV analyzer (web app)**
###### tags: `App` `CEV`
## Resumen
CEV analyzer (nombre tentativo) es una plataforma web dirigida *principalmente* a *evaluadores energéticos de viviendas* del programa de ***[Calificación Energética de Viviendas (CEV)](https://www.calificacionenergetica.cl/)*** (ver en "Contexto").
Esta `plataforma` permite, mediante el uso de la herramienta oficial de cálculo (planillas de balance térmico dinámico: PBTD1, PBTD2 y PBTD3), realizar las siguientes tareas:
1) Correr el motor de cálculo (PBTD2) por cada vivienda evaluada de manera (semi)automatizada. Esto con el fin de obtener la planilla de resultados (PBTD3) necesaria para completar el proceso de pre-calificación y/o calificación energética de viviendas (generación de etiquetas e informes).
3) Estudios de optimización energética mediante un proceso iterativo, guiado y semiautoimático. Esto implica correr el motor de cálculo tantas veces como sea necesario hasta alcanzar una solución optima impuesta por el evaluador al inicio del proceso.
La principal motivación para el desarrollo de esta aplicación radica en algunas falencias que presenta la herramienta oficial de cálculo:
- motor de cálculo lento: una simulación puede tomar entre 30-60 minutos. Además ocupa todos los recursos del pc durante la ejecución bloqueando las demás aplicaciones.
- control de versiones inexistente: el ejercicio de optimizar energéticamente una vivienda implica iterar sobre diferentes posibles soluciones lo cual significa volver a simular una y otra vez. Esta iteración debe ser guiada con el objetivo de minimizar el número de iteraciones para llegar a un resultado esperado.
A día de hoy, no existe ninguna herramienta (aplicación web) que le permita al evaluador energético CEV, analizar de manera simple y visual los resultados de simulación obtenidos mediante la herramienta de cálculo facilitada por el MINVU (planillas de balance térmico dinámico: PBTD), ni tampoco realizar un control de versiones (registro de parámetros utilizados en cada simulación).
## Un poco de contexto
La Calificación Energética de Viviendas en Chile (CEV) es un instrumento diseñado por el ministerio de Vivienda y Urbanismo, en conjunto con el Ministerio Energía, que se aplica para calificar y evaluar objetiva y estandarizadamente proyectos de vivienda, respecto de sus requerimientos de energía para calefacción, enfriamiento, agua caliente sanitaria e iluminación; esto, con el fin de entregar información objetiva tanto a usuarios que proyectan la compra de una vivienda, como a los mandantes de los proyectos.
La herramienta oficial de cálculo se compone de 3 planillas ***en formato Excel***:
1. PBTD Datos de arquitectura
2. PBTD Motor de calculo demanda de energía
3. PBTD Datos de equipos y resultados
El motor de cálculo corre en una macro (VBA) y solo puede ser ejecutado de manera local, por lo que cualquier solución debe contemplar el uso de Microsoft Excel. <u>Esta es la mayor limitante del proyecto.</u>
## Situación a la que se enfrenta un evaluador CEV
El proceso de evaluación de viviendas (en el marco de la CEV) no solo consiste en simular viviendas, si no que implica una serie de otras tareas administrativas.
Un evaluador se enfrenta al siguiente escenario:
- Estructura de costos en $/h
- Estructura de pagos en $/proyecto y/o $/vivienda
Para que el proyecto sea rentable, el número de horas dedicadas (optimización + simulación de viviendas) debe ser menor o igual a un mínimo de rentabilidad.
Siendo el motor de cálculo de la herramienta oficial demasiado lento (30-60 minutos por simulación), este límite se sobrepasa fácilmente. Además ocupa todos los recursos del pc durante la ejecución bloqueando las demás aplicaciones.
Desligar al evaluador de este gasto de tiempo y recursos seria una de las mayores motivaciones parael uso de esta plataforma.
## Componentes, descripción y requisitos de la app
### Registro de usuarios
* Un usuario se registra en la `plataforma` con su nombre, email y contraseña.
* La `plataforma` envía un mensaje de confirmación via email.
* El `usuario` confirma su registro...
* Cuando la `plataforma` confirma el registro:
* `backend` crea en disco un `directorio` de usuario. Este `directorio` contiene una estructura definida de subdirectorios y archivos (PBTD) de referencia.
* La `base de datos` crea un registro con los datos del usuario.
### Log in de usuarios
* Un usuario registrado se conecta mediante email y contraseña.
* La `plataforma` lo redirige a su `dashboard` de usuario.
### Dashboard de usuario
* El dashboard de usuario se divide en 2 grandes apartados: simulaciones (individuales) y proyectos (optimizaciones).
* El dashboard contiene información estadística de las `simulaciones` y `proyectos` realizados por cada usuario.
#### Simulaciones
* El `usuario` crear una simulación (nombre, descripción, ...)
* El `backend` crea en disco un `directorio` de simulación. Este `directorio` contiene una estructura definida de subdirectorios y archivos (PBTD) de referencia.
* La `base de datos` crea un registro con los datos de la simulación.
* La `plataforma` lo redirige a una `ventana` simulación.
* El `usuario` carga un archivo xlsm (PBTD Datos de arquitectura).
* Se ejecuta un script que verifica que esté bien completado.
* El `usuario` lanza la simulación.
* El `backend` abre Excel, ingresa la ruta de los arichvos PBTD1 y PBTD3 en PBTD2 y se ejecuta la macro del motor de calculo.
* Una vez terminada la simulación, se crea el archivo resultados PBTD3.
* El `plataforma` notifica al usuario y le da la posibilidad de descargar el archivo.
Nota: Varias simulaciones deberian poder correrse en paralelo.
#### Proyectos
* Cada usuario puede tener uno o mas proyectos
* Orden jerarquico (relación 1:N): Proyecto -> iteraciones -> simulaciones
* Cada proyecto puede tener una o mas iteraciones
* Cada iteracion tiene solo una simulacion
Para proyectos el proceso es mas complejo pero es similar al de las simulaciones.
* El `usuario` crea un proyecto (nombre, descripción, ...)
* El `backend` crea en disco un `directorio` de proyecto. Este `directorio` contiene una estructura definida de subdirectorios y archivos (PBTD) de referencia.
* La `base de datos` crea un registro con los datos del proyecto.
* La `plataforma` lo redirige a una `ventana/dashboard` de proyecto.
Luego se crean iteraciones y simulaciones. Al final de cada simulación el usuario puede ver los resultados de manera gráfica y tener una idea de los resultados del proceso iterativo en general.
## Requisitos de la app
* Frontend (Dash sería una buena opción?)
* Backend (Ni idea de como hacerlo. Lo mas "simple" para mí seria python)
* Base de datos (postgresql)
* Almacenamiento (Onedrive?)
* Sistema operativo Windows y Microsoft Office (IaaS en digital ocean. No se ocurre nada más)
## Trabajo a futuro
A medida de que se evalúen mas viviendas y se logre alcanzar un numero representativo en cuanto a tipologías y zonas climáticas, se podría crear una base de datos que permita:
* Entregar valores de benchmarks a usuarios
* Entrenar un modelo de inteligencia artificial que prediga la calificación de una vivienda sin tener que pasar por el motor de simulación.
* Entregar estadísticas de las soluciones constructivas mayormente utilizadas así como su impacto a la calificación final.
##