Core Components
The Voltimax IoT Platform consists of several interconnected components across cloud and edge layers.
Platform API
Technology: ASP.NET Core 10, Minimal APIs, Scalar OpenAPI
Responsibilities:
- REST API for CRUD operations on locations, gateways, assets
- Authentication/authorization via Keycloak
- Metrics query endpoints
- Gateway registration and management
- Command dispatch to gateways
Key Features:
- OpenAPI/Swagger documentation with Scalar UI
- EF Core for entity persistence
- Elasticsearch integration for metrics queries
- FluentValidation for request validation
- CQRS pattern with Mediator
Endpoints (examples):
GET /gateways- List all gatewaysPUT /gateways/{id}/state- Update gateway state (command)GET /gateways/{id}/metrics/assets/{assetId}/latest- Query latest asset metrics
PostgreSQL Database
Technology: PostgreSQL 16+, Entity Framework Core
Purpose: Persistent storage for entities and configuration
Schema:
- Locations - Physical sites with GPS coordinates
- Gateways - Edge devices registered with platform
- Assets - Devices and their configuration
- Users - User accounts (managed by Keycloak)
- Audit Logs - Change tracking (planned)
Features:
- EF Core migrations for schema versioning
- Relational integrity constraints
- Row-level security (planned for multi-tenancy)
Elasticsearch
Technology: Elasticsearch 8+
Purpose: Time-series storage for metrics and logs
Indices:
metrics-telemetry-*- Asset telemetry data (time-series)logs-gateway-*- Gateway logs (structured logging)
Features:
- Data streams for automatic index rollover
- ILM policies (90-day retention, 7-day rollover)
- Time-series optimized mappings
- Fast aggregation queries (avg, min, max by time window)
Query Patterns:
- Latest values for an asset
- Time-series data over date range
- Multi-asset queries
- Statistical aggregations
Azure Functions
Technology: .NET 10, Azure Functions v4, Durable Functions
Functions:
Pricing Ingestion
- Trigger: Timer (hourly)
- Purpose: Fetch day-ahead electricity prices from ENTSO-E API
- Output: Store prices in PostgreSQL for optimization algorithms
Telemetry Processing
- Trigger: Service Bus queue (telemetry messages)
- Purpose: Process and enrich telemetry frames
- Output: Index to Elasticsearch, trigger alerts
Energy Advisor
- Trigger: Timer or on-demand
- Purpose: Evaluate optimization strategies
- Output: Generate charge/discharge commands
Azure Service Bus
Technology: Azure Service Bus Premium
Purpose: Message broker for gateway-cloud communication
Topics/Queues:
telemetry- Inbound telemetry from gateways (high volume)commands/{gatewayId}- Outbound commands to specific gatewayevents- System events (gateway online/offline, alerts)
Features:
- MQTT 5.0 support for gateways
- Guaranteed message delivery
- Dead-letter queues for error handling
- Partitioning for scale
Gateway
Technology: .NET 10, Console Application
Deployment: On-premises at customer sites (Docker or native)
Responsibilities:
- Poll assets via Modbus, HTTP, OCPP
- Publish telemetry to cloud via MQTT
- Receive and execute commands
- Run local control strategies (Net-Zero, TOU)
- Buffer data during network outages
Key Features:
- Protocol abstraction layer
- Pluggable strategy framework
- Local SQLite for buffering
- Health monitoring and diagnostics
See Gateway Management for details.
Web Application
Technology: Vue.js 3, TypeScript, Vite, VitePress (docs)
Features:
- Asset and gateway management UI
- Real-time metrics dashboards
- Energy advisory insights
- User authentication via Keycloak OIDC
Status: In development