Grundfos ALPHA HWR Python Library
Modern Python library and CLI for controlling Grundfos ALPHA HWR pumps via Bluetooth Low Energy.
Features
- Automatic discovery and pairing with ALPHA HWR pumps
- Stream telemetry data (flow, pressure, power, temperature)
- Set pump modes and setpoints with automatic validation
- Create and manage time-based operation schedules
- Save and restore complete pump configurations
- Full type hints and validation with Pydantic
- Built on async Python for efficient BLE communication
- Command-line interface for quick operations
Installation
pip install alpha-hwr
Requirements: Python 3.13+ with Bluetooth Low Energy support
Quick Start
Command Line
# Discover nearby pumps
alpha-hwr device scan
# Monitor telemetry in real-time
alpha-hwr monitor telemetry AA:BB:CC:DD:EE:FF
# Check pump status
alpha-hwr control status AA:BB:CC:DD:EE:FF
# Set constant pressure mode (1.5 meters)
alpha-hwr control set-pressure 1.5 AA:BB:CC:DD:EE:FF
Python Library
import asyncio
from alpha_hwr import AlphaHWRClient
async def main():
# Connect to pump (auto-discovery or specific address)
async with AlphaHWRClient("AA:BB:CC:DD:EE:FF") as client:
# Read telemetry
telemetry = await client.telemetry.read_once()
print(f"Flow: {telemetry.flow_m3h} m³/h")
print(f"Head: {telemetry.head_m} m")
print(f"Power: {telemetry.power_w} W")
# Set constant pressure mode
await client.control.set_constant_pressure(1.5) # 1.5 meters
# Read device info
info = await client.device_info.read_info()
print(f"Serial: {info.serial_number}")
print(f"Software: {info.software_version}")
asyncio.run(main())
Supported Control Modes
The ALPHA HWR supports 5 primary modes optimized for domestic hot water recirculation:
| Mode | Setpoint Range | Notes |
|---|---|---|
| Temperature Control | 20-60°C | Dual setpoints (min/max), AUTOADAPT flow adjustment, optional Flow Limit |
| Cycle Time Control | 1-60 min | Configurable ON/OFF durations |
| Constant Curve | 1000-4500 RPM | Fixed speed with optional Flow Limit |
| Constant Pressure | 0.5-6.0 m | Fixed head pressure |
| Constant Flow | 0.1-3.0 m³/h | Fixed flow rate |
Proportional Pressure (0.5-6.0 m) is also fully supported.
Documentation
Complete documentation: https://eman.github.io/alpha-hwr/
- Installation Guide
- Quick Start Tutorial
- CLI Reference
- Python API Reference
- Control Modes Guide
- Protocol Documentation
Examples
Monitor Telemetry Stream
async with AlphaHWRClient(address) as client:
# Stream telemetry updates
async for telemetry in client.telemetry.monitor():
print(f"Flow: {telemetry.flow_m3h:.2f} m³/h, "
f"Head: {telemetry.head_m:.2f} m, "
f"Power: {telemetry.power_w:.1f} W")
Manage Schedules
from alpha_hwr.models import ScheduleEntry
async with AlphaHWRClient(address) as client:
# Create a schedule entry for Monday 6:00 AM - 8:30 AM
entry = ScheduleEntry(
day="Monday",
begin_hour=6,
begin_minute=0,
end_hour=8,
end_minute=30,
layer=0
)
# Write schedule and enable it
await client.schedule.write_entries([entry], layer=0)
await client.schedule.enable()
Backup & Restore Configuration
async with AlphaHWRClient(address) as client:
# Backup current configuration
await client.config.backup("pump_backup.json")
# Restore from backup
await client.config.restore("pump_backup.json")
Project Status
Actively maintained and tested on real ALPHA HWR hardware.
Contributing
Contributions welcome! See CONTRIBUTING.md for guidelines.
License
MIT License - See LICENSE for details.
Links
- PyPI: https://pypi.org/project/alpha-hwr/
- Documentation: https://eman.github.io/alpha-hwr/
- Source Code: https://github.com/eman/alpha-hwr
- Issue Tracker: https://github.com/eman/alpha-hwr/issues
Metadata
Release files for alpha-hwr 0.5.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 | |
|---|---|---|---|
| alpha_hwr-0.5.0.tar.gz | 316.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alpha_hwr-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 455.4 kB
Release files / alpha_hwr-0.5.0.tar.gz
| Download URL | alpha_hwr-0.5.0.tar.gz |
|---|---|
| Size | 316.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a3bcfd790d30548bbd91aacd5bde4d1bcdf1a42b52ab08b6c48826288c0d94fc
|
|
BLAKE2b-256 checksum How to use checksums |
f26650b7f2733a68ac9c1c0d78296170855ea1b5cf17de71b3994e645f740c89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 21, 2026.
Transparency logRelease files / alpha_hwr-0.5.0-py3-none-any.whl
| Download URL | alpha_hwr-0.5.0-py3-none-any.whl |
|---|---|
| Size | 139.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
52e68e2695c285e8a7e57f7f633a0cb9cd3f2a6bb45f89ae74303a52920d6aed
|
|
BLAKE2b-256 checksum How to use checksums |
a547e459216791d2306d22bb376ebfc7de2bbc9cf40a396ce8d04d31949ec17f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 21, 2026.
Transparency log