How mixmaster2005/smartenergyhub works
SmartEnergy Hub collects energy measurements, persists them for history, and provides sensor and analytics APIs with a web dashboard. The principal workflow runs from simulated or submitted measurements through the collector and Redis Streams to storage and analytics. Separate branches cover sensor management, gateway routing, and the frontend; the README also identifies forecasting as an extension. Several internal links are based on documented system flow because the relevant source excerpts were not provided.
Main entry points: GatewayApplication.java Gateway · MeasurementController.java Measurement API · AnalyticsController.java Analytics API · api.js API client
Components 23
Measurement ingestion
- Simulator
simulator/src/main/java/com/smartenergy/simulator/SimulatorRunner.java - Measurement API
collector-service/src/main/java/com/smartenergy/collector/web/MeasurementController.java - Redis Streams
Storage and analytics
- Stream consumer
storage-service/src/main/java/com/smartenergy/storage/stream/StorageStreamConsumer.java - Cassandra writer
storage-service/src/main/java/com/smartenergy/storage/service/CassandraMeasurementWriter.java - Measurement store
- History API
storage-service/src/main/java/com/smartenergy/storage/web/MeasurementQueryController.java - History queries
storage-service/src/main/java/com/smartenergy/storage/service/MeasurementQueryService.java - Analytics consumer
analytics-service/src/main/java/com/smartenergy/analytics/stream/AnalyticsStreamConsumer.java - Aggregate writer
analytics-service/src/main/java/com/smartenergy/analytics/service/AggregateWriter.java - Analytics API
analytics-service/src/main/java/com/smartenergy/analytics/web/AnalyticsController.java - Analytics queries
analytics-service/src/main/java/com/smartenergy/analytics/service/AnalyticsQueryService.java - Forecasting
analytics-service/src/main/java/com/smartenergy/analytics/forecast/ForecastService.java
Platform services
- Sensor registry API
sensor-service/src/main/java/com/smartenergy/sensor/web/SensorController.java - Sensor management
sensor-service/src/main/java/com/smartenergy/sensor/service/SensorService.java - Sensor repository
sensor-service/src/main/java/com/smartenergy/sensor/repository/SensorRepository.java - Gateway
gateway-service/src/main/java/com/smartenergy/gateway/GatewayApplication.java
Web interface
- Web application
frontend/app.js - API client
frontend/api.js - Dashboard views
frontend/views/dashboard.js - Scenarios view
frontend/views/scenarios.js
Shared contracts
- Measurement event
contracts/measurement-contracts/src/main/java/com/smartenergy/contracts/measurement/EnergyMeasurement.java - Sensor contracts
contracts/sensor-contracts/src/main/java/com/smartenergy/contracts/sensor/SensorRequest.java
Connections 22
- Simulator → Measurement API: submits measurements
README.md - Measurement API → Redis Streams: publishes events
README.md - Redis Streams → Stream consumer: delivers events
README.md - Stream consumer → Cassandra writer: delegates writes
storage-service/src/main/java/com/smartenergy/storage/stream/StorageStreamConsumer.java - Cassandra writer → Measurement store: persists measurements
README.md - History API → History queries: delegates queries
storage-service/src/main/java/com/smartenergy/storage/web/MeasurementQueryController.java - History queries → Measurement store: reads history
storage-service/src/main/java/com/smartenergy/storage/service/MeasurementQueryService.java - Redis Streams → Analytics consumer: delivers events
README.md - Analytics consumer → Aggregate writer: processes events
- Aggregate writer → Analytics API: supports analytics
- Analytics API → Analytics queries: delegates queries
- Sensor registry API → Sensor management: delegates requests
sensor-service/src/main/java/com/smartenergy/sensor/web/SensorController.java - Sensor management → Sensor repository: reads and writes
sensor-service/src/main/java/com/smartenergy/sensor/service/SensorService.java - Gateway → Measurement API: routes requests
README.md - Gateway → History API: routes requests
README.md - Gateway → Analytics API: routes requests
README.md - Gateway → Sensor registry API: routes requests
README.md - Web application → Dashboard views: dispatches views
frontend/app.js - Web application → API client: checks gateway
frontend/app.js - Dashboard views → API client: requests data
- Scenarios view → API client: runs checks
frontend/views/scenarios.js - Analytics queries → Forecasting: uses forecasting