Skip to content

ivanbogaeb/steroid-service

Repository files navigation

Steroid Service

Hardware monitor web application made for Steroid, providing real time usage metrics from your PC to your wallpaper.

Features:

  • CPU metrics and information.
  • GPU details (Including Intel Integrated Graphics).
  • Memory usage.
  • Network names and usage.
  • Hard Drives information and usage.

Requirements:

  • .NET 4.7.X (Latest if possible)
  • Python 3.8.X (Above will run with --pre version of pythonnet but might cause memory leaks)
  • PIP

Installation:

    pip install -r requirements.txt

How to run:

Must run under Root/Administrator/System.

If not built with PyInstaller

    python ./steroid-service.py

If built or downloaded the latest release, you must open a terminal as Administrator in the steroid folder, and then:

    cd dist/steroid-service
    start steroid-service.exe

CTRL + C to exit.

Compile:

    pyinstaller steroid-service.spec --collect-data pythonnet

References:

Steroid service works as an internal web API hosted on http://localhost:7666, waiting for a GET method on these paths:

Endpoint Return format
/cpu Object Object
/gpu Array Object
/network Array Object
/memory Object Object
/filesystem Array Object

This service application can run both UAC enabled or disabled.

GPU is UNFISHED and needs AMD testers to provide console output.

Development Notes:

LibreHardwareMonitor sets it's own unique interface, and every hardware has it's own HardwareType and Name:

Hardware:

HardwareType Name Privileges
0 Motherboard User
1 SuperIO Admin
2 CPU User
3 Memory User
4 GpuNvidia User
4 GpuAmd User
4 GpuIntel User
6 Storage Admin
7 Network User
? Cooler Admin
? EmbeddedController Admin
? Psu Admin
? Battery Admin

Hardware components marked as Admin are requested under Administrator privileges.

Sensors:

SensorType Value Format Privileges
0 Voltage V Admin
1 Current A Admin
2 Power W User/Admin
3 Clock Mhz User/Admin
4 Temperature °C User/Admin
5 Load % User
6 Frequency Hz User
7 Fan RPM Admin
8 Flow L/h Admin
9 Control % User
10 Level % User
11 Factor 1 Admin
12 Data GB User
13 SmallData MB User
14 Throughput B/s User
15 TimeSpan Seconds User
16 Energy mWh Admin

User/Admin privileges means it is only available for Users under determined conditions, like the GPU.

Why not adding all the other features that LibreHardwareMonitor has?

Some features are too unstable or are not worth the effort, mostly considering that this is just a metrics provider and not ideal or suited for like, for example, fans frequency of the motherboard or PSU information provided by just a few power supplies.

Credits:

Brought to you thanks to flask, pythonnet, pyinstaller and LibreHardwareMonitor libraries.

Special thanks to:

You guys rock, and thank you reader for coming here 🔥