Arquitectura del Sistema
Simulador Fisico
Python 3.11
NumPy
asyncio
- Modelo colector solar (Hottel-Whillier-Bliss)
- Deposito estratificado N-nodos
- Calderas condensacion modulantes
- Intercambiador NTU-effectiveness
- Modelo termico edificio multizona
- Perfil demanda ACS realista
Emulador Modbus
pymodbus 3.5
TCP/IP
- Servidor Modbus TCP puerto 5020
- Emulacion registros Solvis
- Holding Registers (40001-40100)
- Input Registers (30001-30100)
- Coils y Discrete Inputs
- Actualizacion tiempo real
API Gateway
FastAPI
Uvicorn
Pydantic
- REST API compatible Niagara N4
- WebSocket streaming tiempo real
- JWT Authentication (OAuth2)
- Endpoints: /points, /history, /alarms
- Documentacion OpenAPI/Swagger
- Metricas Prometheus
Base de Datos
TimescaleDB
Redis
- TimescaleDB: Series temporales
- Hypertables con compresion
- Retencion automatica 90 dias
- Redis: Cache tiempo real
- Pub/Sub para WebSocket
- Estado actual del sistema
Frontend
HTML5
CSS3
JavaScript
- Sinoptico SVG interactivo
- Diagrama P&ID animado
- WebSocket streaming
- Responsive design
- Multiples vistas y secciones
- Control de escenarios
Infraestructura
Docker
Nginx
SSL
- Docker Compose orquestacion
- 7 contenedores independientes
- Nginx reverse proxy
- SSL/TLS Let's Encrypt
- Health checks automaticos
- Grafana dashboards
Diagrama de Flujo
Contenedores Docker
gemelo-simulador
Python 3.11EstadoHealthy
gemelo-modbus
Puerto 5020EstadoHealthy
gemelo-api
Puerto 8085EstadoHealthy
gemelo-redis
Puerto 6379EstadoHealthy
gemelo-timescaledb
Puerto 5432EstadoHealthy
gemelo-frontend
Puerto 3015EstadoRunning
gemelo-grafana
Puerto 3011EstadoRunning