Skip to main content

PyHardwareMonitor

Python Harware Monitor is a thin package layer for LibreHardwareMonitorLib using pythonnet. Libre Hardware Monitor, a fork of Open Hardware Monitor, is free software that can monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer. This package is mostly auto generated using the pythonstubs generator tool for .NET libraries. Scripts for generating, altering and extending package resources are located in the scripts folder.

The purpose of this layer is the ability to provide extensive typing information and additional utilities around the LibreHardwareMonitorLib.

Note: Python must have admin privileges for HardwareMonitor to be able to access all available sensors properly!

Prerequisites

  • Python 3.6+
    • pythonnet
    • .NET 4.7
  • PawnIO (for system sensors)

Installation

Install from PyPi directly

pip3 install HardwareMonitor

or install locally from source

git clone https://github.com/snip3rnick/PyHardwareMonitor
cd PyHardwareMonitor
pip3 install .

PawnIO Input/Output Driver

For many system sensors (eg. motherboard) it is required to install the PawnIO driver.
The driver can be installed using winget

winget install PawnIO

Alternatively you may download the latest version from the GitHub release page.

Basic Usage

This simple example is a python adaptation of the C# example of the LibreHardwareMonitor repository.

from HardwareMonitor.Hardware import *  # equivalent to 'using LibreHardwareMonitor.Hardware;'

class UpdateVisitor(IVisitor):
    __namespace__ = "TestHardwareMonitor"  # must be unique among implementations of the IVisitor interface
    def VisitComputer(self, computer: IComputer):
        computer.Traverse(self);

    def VisitHardware(self, hardware: IHardware):
        hardware.Update()
        for subHardware in hardware.SubHardware:
            subHardware.Update()

    def VisitParameter(self, parameter: IParameter): pass

    def VisitSensor(self, sensor: ISensor): pass


computer = Computer()  # settings can not be passed as constructor argument (following below)
computer.IsMotherboardEnabled = True
computer.IsControllerEnabled = True
computer.IsCpuEnabled = True
computer.IsGpuEnabled = True
computer.IsBatteryEnabled = True
computer.IsMemoryEnabled = True
computer.IsNetworkEnabled = True
computer.IsStorageEnabled = True

computer.Open()
computer.Accept(UpdateVisitor())

for hardware in computer.Hardware:
    print(f"Hardware: {hardware.Name}")
    for subhardware  in hardware.SubHardware:
        print(f"\tSubhardware: {subhardware.Name}")
        for sensor in subhardware.Sensors:
            print(f"\t\tSensor: {sensor.Name}, value: {sensor.Value}")
    for sensor in hardware.Sensors:
        print(f"\tSensor: {sensor.Name}, value: {sensor.Value}")

computer.Close()

Utilities

Utilities are located in the HardwareMonitor.Util module.

Function OpenComputer

The OpenComputer function provides a shorthand for creating the HardwareMonitor.Hardware.Computer instance including the settings and update visitor.
Settings are given as keyword arguments, the following example enables just the cpu and motherboard component.

computer = OpenComputer(cpu=True, motherboard=True)  # use 'all=True' to enable every component
# Access sensors
...
computer.Update()  # Updates all sensors
...
computer.Close()

Function ToBuiltinTypes

Instances from the HardwareMonitor module can be reduced to primitive python types instead of HardwareMonitor object instances with the ToBuiltinTypes function.
Objects are recursively converted to Python builtin types (dict, list, ...). This can be useful for applications that serialized the data (e.g. with json).

computer = OpenComputer(cpu=True)

data = ToBuiltinTypes(computer.Hardware)
# [{'Type': 'Hardware', 'HardwareType': 'Cpu', 'Name': 'Intel Core i5-8265U', 'Sensors': [...], 'SubHardware': [...]}]

Function GroupSensorsByType

Sensors of an instance of HardwareMonitor.Harware.Hardware are held in a flat list.
The helper function GroupSensorsByType converts the sensor list into a list of lists grouping sensors by type.

GroupSensorsByType(sensors: Iterable[ISensor]) -> List[List[ISensor]]

Function SensorValueToString

The helper function SensorValueToString converts sensor values to strings appending with the appropriate unit.

SensorValueToString(value: float, type: SensorType) -> str
# returns "3100.0 MHz" for value=3100.0 with type=SensorType.Clock

Dictionary HardwareTypeString and SensorTypeString

These two mappings convert values for HardwareType (or SensorType) to a string.
Both the integer value for the enum or the instances of the enum value (e.g. HardwareType.Cpu) are present as keys.

In some environments the type fields were set to integers in others to the corresponding type instance.

Metadata

Release files for HardwareMonitor 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for HardwareMonitor 1.2.1
File Size Uploaded
hardwaremonitor-1.2.1.tar.gz 2.9 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for HardwareMonitor 1.2.1
File Interpreter ABI Platform
hardwaremonitor-1.2.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
hardwaremonitor-1.2.1-py3-none-win32.whl Python 3 none Windows x86-32 Details

Total release size: 5.8 MB

Release files / hardwaremonitor-1.2.1.tar.gz

Download URL hardwaremonitor-1.2.1.tar.gz
Size 2.9 MB
Tags Source
SHA-256 checksum
How to use checksums
fe943d079e4ce03fdece669494778479029de5c0ba113c1b10188aeecafc7915
BLAKE2b-256 checksum
How to use checksums
3ffe71b47adafcc96c80ef173bce0aec7e2eb9b00d85054f62069bc3a8f318ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / hardwaremonitor-1.2.1-py3-none-win_amd64.whl

Download URL hardwaremonitor-1.2.1-py3-none-win_amd64.whl
Size 1.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
e8bdd9ce52564b34a29f57647fc1f51a0eba724d76ce6e65ced67d3b3771d461
BLAKE2b-256 checksum
How to use checksums
3aeeb37ea176657b11fac1d8479fcfa705286dca08cfb36eec38e068946a667b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release files / hardwaremonitor-1.2.1-py3-none-win32.whl

Download URL hardwaremonitor-1.2.1-py3-none-win32.whl
Size 1.5 MB
Tags Python 3 Windows x86-32
SHA-256 checksum
How to use checksums
83dc3ab4507c22b175f9531d623867ffbd1f97336043926cc2281d65090483de
BLAKE2b-256 checksum
How to use checksums
89c700d6328a6f6646675dfcbc1222183066bb135e64b3fff192f3c7d1759d69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.2.1 This release

3 release files

1.2.0

3 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page