diff --git a/climate-drainage-ngs/CURRENT-STATE.md b/climate-drainage-ngs/CURRENT-STATE.md new file mode 100644 index 0000000..e4a6c01 --- /dev/null +++ b/climate-drainage-ngs/CURRENT-STATE.md @@ -0,0 +1,88 @@ +# CURRENT-STATE + +## Estado funcional general + +La vertical ha quedado funcional a nivel técnico para: + +- recibir y decodificar uplinks del `LSN50 + XKC` +- persistir histórico y último valor en PostgreSQL +- mostrar histórico y batería +- mantener una semántica robusta para el usuario +- exponer una UI de control +- guardar configuración por sensor +- forzar estados +- operar en modo AUTO mediante scheduler +- auditar downlinks + +## Estado de los componentes principales + +### Persistencia +Tablas de control definidas: +- `mv_control.drain_schedule` +- `mv_control.drain_downlink_audit` +- `mv_control.asset_device_map` + +Tablas de datos visibles: +- `mv_hot.drain_readings` +- `mv_hot.drain_latest` + +### Backend +Componentes principales: +- `drain_control_api` +- `drain_control_scheduler` +- `drain01_norm` +- `drain01_pg` + +### Infraestructura base +- `mv_postgres_hot` +- `mv_mosquitto` +- `cs_chirpstack` + +### UI +La UI quedó operativa con: +- selector de sensor +- carga dinámica de configuración +- hora inicio +- hora fin +- TDC activo +- 5VT activo +- TDC reposo +- 5VT reposo +- token bearer +- botones: + - Cargar sensores + - Cargar configuración + - Guardar + - Forzar activo + - Forzar reposo + - Volver a auto + +## Decisiones técnicas consolidadas + +- control separado de la telemetría +- Grafana no manda downlinks directamente +- backend publicado en `192.168.40.100:8088:8088` +- dashboard del cliente en OVH +- semántica visible al usuario por encima del dato bruto +- diseño multi-sensor por `asset` + +## Perfil de operación conocido + +Valores documentados como base operativa: + +- `TDC activo = 15 o 10`, según ajustes finales +- `5VT activo = 2000` +- `TDC reposo = 3600 o el valor que se decida` +- `5VT reposo = 0` + +## Semántica operativa consolidada + +- en `ACTIVE`, la lectura es válida +- en `SLEEP + 5VT=0`, la lectura no se interpreta como drenaje +- en reposo sin alimentación, la semántica correcta es `NO_SAMPLE` + +## Pendientes + +- rematar paneles definitivos y/o iframe final detrás del frontal público +- cerrar tenant final por cliente cuando aplique +- confirmar si existe ya un cliente productivo real o solo validación técnica avanzada \ No newline at end of file