INFO
Pool Control Pro — motor químico compartido admin / Solo / técnico.
🧪 Calculadora química (v4)

Pool Control Pro integra un motor químico compartido (@pool-control/chemical-dosing) en consulta telefónica, Modo Solo y parte del técnico. La v4 añade informe de auditoría técnica con impacto €/año, tarifa eléctrica configurable, y todo lo de v3: bromo, hidráulica, modal de ayuda, LSI con CYA por pH, neutralizador y piscinas demo por escenario.
Dónde se usa
| Pantalla | Uso |
|---|---|
| Consulta química | Oficina / teléfono — plan completo, PDF, modo experto |
| Modo Solo | Misma calculadora con layout autónomo |
| Parte técnico | Paso 2 — dosis con tope por visita + stock furgoneta |
| Configuración química | Objetivos, producto por rol, coeficientes |
Pestañas de la consulta
| Pestaña | Contenido |
|---|---|
| Balance | pH, cloro, TA, TH, CYA, sal, LSI, sugerencias, simulación, modo experto |
| Bromo | Bromo libre, pastillas BCDMH/DBDMH, oxidante MPS, neutralizador |
| Filtración y bomba | Dimensionar caudal, Ø filtro comercial; comparar con equipo instalado |
| Tuberías | Velocidad PVC, pérdidas de carga, TDH, skimmers/retornos (modos rápido/intermedio/experto) |
| Bomba de calor | Potencia kW según volumen, meses de baño, zona climática, manta (3 modos) |
Modal de ayuda
Botón ? en la cabecera abre una guía con scroll (mediciones, LSI, sugerencias, bromo, hidráulica, disclaimer).
Bromo
Roles nuevos: BCDMH, DBDMH, MPS, neutralizador bromo (mismo tiosulfato que cloro). Objetivo bromo libre configurable (≈3 ppm piscina, 4 spa).
Filtración, tuberías y bomba de calor
Filtración y bomba: sub-pestañas Dimensionar (volumen manual o por dimensiones, turnover, Ø comercial) y Comparar instalado (diagnósticos vs ficha).
Tuberías: hereda caudal de filtración; calcula velocidad aspiración/impulsión, Hazen-Williams, TDH y nº skimmers/retornos.
Bomba de calor: modos rápido (ΔT + horas), intermedio (meses + zona climática) y experto (viento, altitud, desglose mensual). Ver docs/HEATING-CALIBRATION.md y docs/PIPING-CALIBRATION.md.
Hidráulica (equipos en ficha)
En ficha piscina: antigüedad del agua, dureza agua relleno, turnover objetivo. En equipos (bomba/filtro): caudal nominal, tipo filtro, Ø o área. Diagnósticos: bomba/filtro infra-dimensionados, desajuste bomba/filtro.
Mapa ficha ↔ pestañas calculadora
Al abrir Consulta química con ?poolId=, la calculadora se auto-rellena desde la ficha (sin guardar cambios automáticamente):
| Dato en ficha | Campo / tabla | Pestaña calculadora |
|---|---|---|
| Volumen, bañistas, turnover | Pool | Balance (contexto), Filtración y bomba |
| Antigüedad agua, dureza relleno | Pool.waterAgeYears, replacementWaterHardnessPpm | Balance (LSI / TDS) |
| Cubierta, dimensiones, tuberías, bomba calor | Pool.calculatorProfile (JSON) | Tuberías, Bomba de calor |
| Tarifa €/kWh, horas filtración, kW motor/bomba calor | calculatorProfile.operating | Filtración (override), Bomba de calor |
| Caudal/cabeza bomba, tipo/ø filtro | PoolEquipment.hydraulicSpecs | Filtración y bomba (comparar instalado) |
Pools nuevos reciben un calculatorProfile por defecto al crearse (si hay volumen). Tenants existentes: ejecutar pnpm chemical:sync-all tras migraciones o completar la ficha manualmente.
Propuesta y aprobación de cambios técnicos
Ediciones en las pestañas Filtración, Tuberías y Bomba de calor son locales hasta que se envíen para revisión:
- Técnico / consultor (
CHEMICAL_CONSULT): botón Proponer cambios en ficha en consulta química (con piscina vinculada). - Admin / manager (
CLIENT_EDIT_BASIC): cola en Planificación → Ficha calculadora (/planning/calculator-profile-proposals; en Modo Solo:/solo/calculator-profile-proposals). - Al aprobar: se actualiza
calculatorProfile, turnover/bañistas opcionales y specs hidráulicos de equipos; evento de auditoríaPOOL_CALCULATOR_PROFILE_UPDATED. - Notificaciones in-app:
CALCULATOR_PROFILE_PROPOSED(revisores) yCALCULATOR_PROFILE_REVIEWED(proponente).
Edición directa (sin propuesta): admin/manager en ficha piscina (PoolDetailPage) — campos escalares, perfil calculadora y equipos hidráulicos.
Diagnóstico agua blanquecina: si LSI ≤ 0,5, el texto apunta a filtración/partículas en suspensión; precipitación cálcica solo si LSI > 0,5.
LSI, TDS y dilución
LSI usa alcalinidad carbonatada (CYA corregida por pH). Con antigüedad del agua se estima TDS y se ajusta el índice. Dilución calculada para CYA/TH altos.
Catálogo demo ampliado (SKU → rol)
| SKU | Rol / uso |
|---|---|
| QN-001 | Neutralizador cloro/bromo (tiosulfato) |
| QD-006 / QD-007 | Pastillas BCDMH / DBDMH |
| QD-008 | Oxidante MPS (banco bromuro) |
| QD-001 / QD-002 | Choque líquido/granulado (+ oxidante bromuro) |
| QR-001 … QR-005 | pH, TA, CYA, TH |
| QM-001 / QM-002 | Alguicida / floculante |
| SE-001 | Sal |
Piscinas demo por escenario
En solo-demo y AquaDemo hay piscinas etiquetadas por escenario (p. ej. «Demo CYA alta», «Demo bomba pequeña») con visita completada y mediciones precargadas. Tras reset demo se restauran.
Orden de dosificación
El motor asigna Paso N y agrupa el plan en tres fases:
| Fase | Contenido | Ejemplos |
|---|---|---|
| 1. Balance | TA → pH → dureza | Bicarbonato, ácido/soda, cloruro cálcico |
| 2. Desinfección | Cloro/bromo y auxiliares | Choque, mantenimiento FC, pastillas bromo, MPS, floc, alguicida |
| 3. Estabilizantes | CYA al final | Estabilizante (CYA bajo) |
Reglas clave:
- El choque precede al mantenimiento de cloro libre si coexisten.
- BROMINE_BANK_OXIDIZE (MPS) cuando bromo libre < 1 ppm (banco inactivo); si bromo ≥ 1 ppm pero bajo objetivo → pastillas.
- Las incompatibilidades no cambian el número de paso pero añaden tiempos de espera (
minWaitHours) en simulación y avisos.
Incompatibilidades químicas
Si el plan incluye productos incompatibles el mismo día, aparece Seguridad química (consulta, técnico y pestaña Bromo):
| Código | Productos | Espera mín. |
|---|---|---|
| ACID_CHLORINE | Ácido pH + cloro | 4 h |
| CALCIUM_ALKALINITY | Cloruro cálcico + bicarbonato | 24 h |
| CYA_SHOCK | Estabilizante + cloro activo | 24 h |
| FLOC_CHLORINE | Floculante + cloro | 12 h |
| ALGAECIDE_CHLORINE | Alguicida + cloro alto | 8 h |
| NEUTRALIZER_CHLORINE | Neutralizador + cloro | 24 h |
| NEUTRALIZER_BROMINE | Neutralizador + bromo activo | 24 h |
| BROMINE_OXIDIZER_TABLET | MPS + pastillas bromo | 8 h |
| BROMINE_NEUTRALIZER_OXIDIZER | Neutralizador + oxidante bromo | 24 h |
Coeficientes de fórmula (calibración)
Editables en Ajustes → Química (ver CALIBRATION.md):
| Coeficiente | Default | Notas |
|---|---|---|
chlorineNeutralizerPerM3PerPpm | 2.5 | Tiosulfato (Easy-pool) |
breakpointMultiplier | 3.0 | Choque por cloro combinado |
| Divisores bromo | por perfil | Pastillas BCDMH/DBDMH, MPS |
Orientativo: calibra con tu catálogo y protocolo de campo.
Informe de auditoría técnica y costes energéticos
La v4 incluye un motor de auditoría que traduce diagnósticos (química, hidráulica, equipos) en impacto económico anual orientativo (€/año), al estilo de calculadoras profesionales de Fluidra/Zodiac pero integrado con el ERP.
Tarifa eléctrica y horas de filtración
| Dónde | Qué configurar |
|---|---|
| Ajustes → Química → Costes operativos | Tarifa eléctrica (€/kWh, default 0,20) y horas de filtración/día (default 8) |
| Pestaña Filtración y bomba | Override por piscina: tarifa, horas, potencia motor bomba (kW de placa) |
| Pestaña Bomba de calor | kW instalados si difieren del dimensionamiento recomendado |
Sin potencia de placa, el motor estima kW a partir del caudal y la altura manométrica. Los overrides viven en calculatorProfile.operating y pueden proponerse vía Proponer cambios en ficha.
Panel de auditoría en consulta
| Vista | Contenido |
|---|---|
| Rápida | Badge «Impacto operativo estimado: ~X €/año» e índice global instalación |
| Modo experto | Tabla de hallazgos (prioridad, €/año), desglose kWh/€ filtración y bomba de calor, sub-scores química e hidráulica |
Hallazgos habituales: bomba sobredimensionada (exceso kWh), bomba o filtro pequeños, CYA elevada (más químico), bomba de calor infradimensionada.
PDF informe auditoría
Botón Informe auditoría técnica → PDF variante AUDIT con resumen ejecutivo, hallazgos priorizados y energía. Cifras orientativas (tarifa, horario real, variador, clima).
Validación del motor
pnpm calculator:scenario:check # 14 escenarios + expectations auditMinImpact / auditFinding
pnpm test:chemical-dosing