A Python API client for LibreHardwareMonitor
Project description
LibreHardwareMonitor API Client
A Python library for interacting with the LibreHardwareMonitor API.
Overview
This library provides a simple interface for fetching data from the API provided by the inbuilt LibreHardwareMonitor web server.
Installation
To install the library, run the following command:
pip install librehardwaremonitor-api
Usage
The LibreHardwareMonitorClient takes the following parameters:
- Required:
host(str): hostname or IP address of your systemport(int): port used by Libre Hardware Monitor (default: 8085)
- Optional:
username(str): if you have set up authentication for the webserver in Libre Hardware Monitorpassword(str): if you have set up authentication for the webserver in Libre Hardware Monitorsession(aiohttp.ClientSession): provide a aiohttp.ClientSession
The library provides one callable method:
get_data: Returns aLibreHardwareMonitorDataobject containing the computer name, main hardware device names and all sensor data from your Libre Hardware Monitor instance.
LibreHardwareMonitorData has 3 properties with the following structure:
LibreHardwareMonitorData(
computer_name: str
# for example: "MY_COMPUTER"
main_device_ids_and_names: dict[DeviceId, DeviceName]
# for example:
# {
# "amdcpu-0": "AMD Ryzen 7 7800X3D",
# "gpu-nvidia-0": "NVIDIA GeForce RTX 4080 SUPER"
# }
# the dictionary keys represent a unique device id.
sensor_data: dict[str, LibreHardwareMonitorSensorData]
# for example
# {
# "amdcpu-0-power-0": {
# "name": Package Power",
# "value": "25.6",
# "type": "Power",
# "min": "25.2",
# "max": "76.4",
# "unit": "W",
# "device_id": "amdcpu-0",
# "device_name": "AMD Ryzen 7 7800X3D",
# "device_type": "CPU",
# "sensor_id": "amdcpu-0-power-0"
# },
# "amdcpu-0-power-1" : { ... },
# ...
# }
# the dictionary keys represent a unique sensor id.
)
Example
import asyncio
from librehardwaremonitor_api import LibreHardwareMonitorClient
async def main():
client = LibreHardwareMonitorClient("192.168.1.100", 8085)
lhm_data = await client.get_data()
print(lhm_data.computer_name)
print(lhm_data.main_device_ids_and_names)
print(lhm_data.sensor_data)
asyncio.run(main())
Development
This package uses uv as project manager.
To set up a dev environment, clone the project and run
uv sync
inside the project's root directory.
Set up pre-commit hooks with:
uv run pre-commit install
Optionally, execute manually via:
uv run pre-commit run --all-files
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file librehardwaremonitor_api-1.9.0.tar.gz.
File metadata
- Download URL: librehardwaremonitor_api-1.9.0.tar.gz
- Upload date:
- Size: 70.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b277bd0a53fb19cfe9ea62b57ef7545b99a7db6d25d778828a97a7c4d6c0abfb
|
|
| MD5 |
909fe00dc257b44fdfe49056beec88a7
|
|
| BLAKE2b-256 |
3c055eef59ef4edf6b36c3e6890fae26f779499874244abb5e2d70ac512a7ae5
|
File details
Details for the file librehardwaremonitor_api-1.9.0-py3-none-any.whl.
File metadata
- Download URL: librehardwaremonitor_api-1.9.0-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf076424b1491f060bacfd31d17c0e70658b4bfebf62cd764ab079fc940c7ba8
|
|
| MD5 |
18c013fbd36890313d15eedab54fdd56
|
|
| BLAKE2b-256 |
0162120ab2c6eff085195d501084193369f39a073f5f21ee1df2af25b33b31d3
|