A distributed smart meter system for recording and managing domestic electricity consumption. Built with C# .NET WebSocket server and Electron desktop client.
This application simulates a smart meter system where multiple client applications send electricity readings to a central server. The server calculates bills and pushes updates back to clients in real-time.
- Server: C# .NET WebSocket server (SmartMeter.Server)
- Client: Electron desktop application (SmartMeter.Client)
- Communication: JSON over WebSocket
- .NET 8.0 SDK
- Node.js 18.x or higher
Server:
cd SmartMeter.Server
dotnet restoreClient:
cd SmartMeter.Client
npm installStart Server:
cd SmartMeter.Server
dotnet runStart Single Client:
cd SmartMeter.Client
npm startStart Multiple Clients:
cd SmartMeter.Client
npm run test:multiple- Multiple concurrent client connections
- Client authentication
- Real-time bill updates
- Grid alert broadcasting
- Autonomous operation
- Live bill display
- Auto-reconnect on disconnection
- Error and alert notifications
Server: C# .NET 8.0, System.Net.WebSockets, System.Text.Json
Client: Electron, Native WebSocket, HTML/CSS/JavaScript
- Harrison Blackburn
- Uzair Mohammed
- Connor Clarke