172 lines
5.3 KiB
Markdown
172 lines
5.3 KiB
Markdown
# Real-Time Energy Monitoring Dashboard
|
|
|
|
A comprehensive full-stack application for monitoring and managing energy consumption and air quality in smart buildings. The system provides real-time data visualization, room-based analytics, and intelligent recommendations for building management.
|
|
|
|
## 📋 Project Overview
|
|
|
|
This application enables facility managers and building operators to:
|
|
|
|
- **Monitor real-time energy consumption** across multiple sensors and rooms
|
|
- **Track air quality (CO2 levels)** with automated status classification
|
|
- **Estimate occupancy** based on environmental data patterns
|
|
- **Receive intelligent recommendations** for HVAC optimization and ventilation
|
|
- **Visualize building-wide metrics** through interactive charts and dashboards
|
|
- **Access room-by-room analytics** for targeted energy management
|
|
|
|
## 🏗️ Architecture
|
|
|
|
### Frontend (Vue.js 3 + TypeScript)
|
|
- **Reactive dashboard** with real-time chart updates
|
|
- **Multi-sensor support** with room-based grouping
|
|
- **Responsive design** optimized for desktop and mobile
|
|
- **State management** via Pinia for efficient data handling
|
|
|
|
## 🚀 Installation & Setup
|
|
|
|
### Prerequisites
|
|
|
|
- **Redis Server**: Must be running on `localhost:6379`
|
|
- **Python 3.9+**: Backend runtime
|
|
- **Node.js 20.19.0+ or 22.12.0+**: Frontend development
|
|
|
|
The backend should be available at `http://localhost:8000`
|
|
|
|
### Frontend Setup
|
|
|
|
```bash
|
|
cd dashboard/frontend
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm run dev
|
|
|
|
# Additional commands
|
|
npm run build # Production build
|
|
npm run type-check # TypeScript validation
|
|
npm run test:unit # Run unit tests
|
|
npm run lint # ESLint with auto-fix
|
|
npm run format # Prettier formatting
|
|
```
|
|
|
|
The frontend will be available at `http://localhost:5173`
|
|
|
|
## ✨ Features
|
|
|
|
### 📊 Real-Time Dashboard
|
|
- **Live energy consumption charts** with automatic updates
|
|
- **WebSocket-powered data streaming** for zero-latency updates
|
|
- **Metric cards** showing current values, totals, and averages
|
|
- **Connection status indicators** with visual feedback
|
|
|
|
### 🏢 Room-Based Analytics
|
|
- **Room overview cards** with energy and CO2 metrics per space
|
|
- **Occupancy estimation** based on environmental data patterns
|
|
- **Color-coded status indicators** for quick visual assessment
|
|
- **Sensor grouping** by room for organized data presentation
|
|
|
|
### 🌬️ Air Quality Monitoring
|
|
- **CO2 level classification**:
|
|
- 🟢 **Good**: <400 ppm
|
|
- 🟡 **Moderate**: 400-1000 ppm
|
|
- 🟠 **Poor**: 1000-5000 ppm
|
|
- 🔴 **Critical**: >5000 ppm
|
|
- **Building-wide air quality status** with overall health indicators
|
|
- **Priority room alerts** sorted by urgency
|
|
- **Automated recommendations** for ventilation and HVAC adjustments
|
|
|
|
### 📱 Responsive Design
|
|
- **Mobile-optimized interface** with fixed bottom navigation
|
|
- **Desktop hover interactions** for enhanced UX
|
|
- **Adaptive layouts** that work across all screen sizes
|
|
- **Touch-friendly controls** for mobile interactions
|
|
|
|
### 📋 Data Management
|
|
- **Sensor consumption table** with sortable columns
|
|
- **Multi-format data support** (legacy energy-only + enhanced multi-metric)
|
|
- **Real-time calculations** for totals, averages, and trends
|
|
- **Data buffering** to prevent UI blocking during high-frequency updates
|
|
|
|
### 🔧 Developer Features
|
|
- **TypeScript support** for type-safe development
|
|
- **Hot module replacement** for fast development cycles
|
|
- **ESLint + Prettier** for consistent code formatting
|
|
- **Vitest** for unit testing
|
|
- **Vue DevTools** integration
|
|
|
|
## 📊 Data Formats
|
|
|
|
### Legacy Format (Energy Only)
|
|
```json
|
|
{
|
|
"sensorId": "sensor_1",
|
|
"timestamp": 1672531200,
|
|
"value": 2.34,
|
|
"unit": "kWh"
|
|
}
|
|
```
|
|
|
|
### Enhanced Format (Multi-Metric)
|
|
```json
|
|
{
|
|
"sensorId": "sensor_1",
|
|
"room": "Conference Room A",
|
|
"timestamp": 1672531200,
|
|
"energy": {
|
|
"value": 2.34,
|
|
"unit": "kWh"
|
|
},
|
|
"co2": {
|
|
"value": 450,
|
|
"unit": "ppm"
|
|
},
|
|
"temperature": {
|
|
"value": 22.5,
|
|
"unit": "°C"
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🔗 Key Endpoints
|
|
|
|
- **WebSocket**: `ws://localhost:8000/ws` - Real-time data streaming
|
|
- **Frontend**: `http://localhost:5173` - Dashboard interface
|
|
- **Backend API**: `http://localhost:8000` - FastAPI server
|
|
|
|
## 🎯 Use Cases
|
|
|
|
- **Smart Building Management**: Monitor energy usage and air quality across facilities
|
|
- **HVAC Optimization**: Receive data-driven recommendations for climate control
|
|
- **Occupancy Tracking**: Estimate room usage for space optimization
|
|
- **Environmental Compliance**: Track CO2 levels for health and safety requirements
|
|
- **Cost Management**: Analyze energy consumption patterns for cost reduction
|
|
- **Predictive Maintenance**: Identify equipment issues through anomaly detection
|
|
|
|
## 🛠️ Technology Stack
|
|
|
|
**Frontend:**
|
|
- Vue.js 3 (Progressive framework)
|
|
- TypeScript (Type safety)
|
|
- Pinia (State management)
|
|
- Vue Router (Client-side routing)
|
|
- Vite (Build tool)
|
|
- Tailwind CSS (Styling)
|
|
- ECharts (Data visualization)
|
|
- Vitest (Testing framework)
|
|
|
|
## 📈 Future Enhancements
|
|
|
|
- Historical data storage and analysis
|
|
- Machine learning predictions for energy consumption
|
|
- Integration with building automation systems
|
|
- Mobile app for on-the-go monitoring
|
|
- Advanced alerting and notification system
|
|
- Multi-tenant support for building portfolios
|
|
- Energy cost calculation and reporting
|
|
- Weather data correlation for HVAC optimization
|
|
|
|
---
|
|
|
|
⚡ by gecad for smarter, more efficient buildings.
|