Python Qube Heat Pump Client
Asyncio client for Qube heat pumps via Modbus TCP.
Installation
pip install python-qube-heatpump
Usage
import asyncio
from python_qube_heatpump import QubeClient
async def main():
client = QubeClient("192.168.1.100", port=502, unit_id=1)
await client.connect()
state = await client.read_state()
print(f"Outside temp: {state.temp_outside}°C")
print(f"Supply temp: {state.temp_supply}°C")
print(f"DHW temp: {state.temp_dhw}°C")
await client.disconnect()
asyncio.run(main())
Features
- Async Modbus TCP client using pymodbus
- Entity definitions for sensors, binary sensors, and switches
- FLOAT32 decoding with big endian (ABCD) byte order
- Type-safe dataclasses for entity definitions
- Monotonic clamping with reset detection for the energy totals: sub-kWh jitter is clamped, while a drop of more than 1 kWh that persists for 3 consecutive reads is accepted as a counter reset (logged as a warning);
clear_monotonic_cache()forgets all baselines
Entity Definitions
The library provides pre-defined entity definitions for all Qube Modbus registers:
from python_qube_heatpump.entities import SENSORS, BINARY_SENSORS, SWITCHES
# Access entity definitions by key
temp_supply = SENSORS["temp_supply"]
print(f"Address: {temp_supply.address}, Unit: {temp_supply.unit}")
Vendor Documentation
The official Modbus register documentation from HR-Energy is available at:
- docs/modbus-lijst-qube-totaal.pdf (included in this repo)
- HR-Energy website
Related Projects
- qube_heatpump - Home Assistant HACS integration using this library
License
MIT License
Metadata
Release files for python-qube-heatpump 1.15.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| python_qube_heatpump-1.15.0.tar.gz | 103.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| python_qube_heatpump-1.15.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 125.4 kB
Release files / python_qube_heatpump-1.15.0.tar.gz
| Download URL | python_qube_heatpump-1.15.0.tar.gz |
|---|---|
| Size | 103.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4cdca8f102d6ee4a1f8ed295804f045947ec9551eca6b2a5040593e319a313e
|
|
BLAKE2b-256 checksum How to use checksums |
9b797c514c819cb1da5a2db84055aa68459085b556bffb6e0b4aa58189c86169
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / python_qube_heatpump-1.15.0-py3-none-any.whl
| Download URL | python_qube_heatpump-1.15.0-py3-none-any.whl |
|---|---|
| Size | 22.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
84ad5bb1904fd8a813ca3350b67c0abd0fe8372b04733e3c4d1568d1b33b6d30
|
|
BLAKE2b-256 checksum How to use checksums |
e378e4e47e512276563d2f9aa2fa9f62cd28717dd907299698cad3a73d61b2eb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency log