A real-time hardware monitoring server that provides system metrics via REST API and WebSocket connections. This is a server for TempDash app, but can be used and modified for any other app.
This application collects and exposes system statistics including:
- CPU usage, frequency, temperature
- GPU information, including temperature (when available)
- Memory usage
- Currently playing media information
- Windows OS
- .NET Framework 4.5 or higher (for OpenHardwareMonitor integration)
- Download the latest release from the Releases page.
- Extract the zip file to a location of your choice.
- Run
SystemMonitor.exe
as administrator to start the server.
- Clone this repository
- Install requirements with:
pip install -r requirements.txt
- Get the "OpenHardwareMonitorLib.dll" from a safe source, and put it in the same folder
- Run the server:
python app.py
Once started, the server will:
- Listen on
http://localhost:5000
for REST API requests. - Provide WebSocket connections for real-time data at the same address.
- Display hardware monitoring information in the mobile app.
GET system statistics: http://localhost:5000/api/system/stats
Connect to the WebSocket and listen for the system_stats
event to receive real-time updates.
- Press
q
to quit the server.
Logs are stored in the logs
directory with timestamps:
- Regular logs:
system_monitor_YYYYMMDD_HHMMSS.log
- Crash logs:
CRASH_YYYYMMDD_HHMMSS.log
If temperature readings show as "Not available":
- Make sure OpenHardwareMonitorLib.dll is present in the same directory as the application
- Run the application as administrator for complete hardware access
- Make sure no other application is using port 5000
- Check if your firewall is blocking the application