Modern Python library and CLI for Grundfos ALPHA HWR pumps via Bluetooth Low Energy
Project description
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
Project details
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 alpha_hwr-0.4.0.tar.gz.
File metadata
- Download URL: alpha_hwr-0.4.0.tar.gz
- Upload date:
- Size: 315.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9174c4c94cc8196cd129add9013dc6f305ed2ff3af7012482040c5570659472
|
|
| MD5 |
9f355dd341ca04ebe64437458c692cbe
|
|
| BLAKE2b-256 |
3954481817237a081546b83cdca355a929d64c98469a82c179bda2aeeca17728
|
Provenance
The following attestation bundles were made for alpha_hwr-0.4.0.tar.gz:
Publisher:
publish.yml on eman/alpha-hwr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
alpha_hwr-0.4.0.tar.gz -
Subject digest:
a9174c4c94cc8196cd129add9013dc6f305ed2ff3af7012482040c5570659472 - Sigstore transparency entry: 953259102
- Sigstore integration time:
-
Permalink:
eman/alpha-hwr@0fe2d6db886c90620870492183577c5ba7d1e695 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/eman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0fe2d6db886c90620870492183577c5ba7d1e695 -
Trigger Event:
release
-
Statement type:
File details
Details for the file alpha_hwr-0.4.0-py3-none-any.whl.
File metadata
- Download URL: alpha_hwr-0.4.0-py3-none-any.whl
- Upload date:
- Size: 138.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7f766ae6dad21269ab6794b78cdd7b495048cfc518f22300fe2a0bf348275ee
|
|
| MD5 |
88eae3ae818a3484de288c66e4b083af
|
|
| BLAKE2b-256 |
2e0340a81fb8c2b02f6bc46e3457f8b8ae3d87856372ea908b9796227024ead8
|
Provenance
The following attestation bundles were made for alpha_hwr-0.4.0-py3-none-any.whl:
Publisher:
publish.yml on eman/alpha-hwr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
alpha_hwr-0.4.0-py3-none-any.whl -
Subject digest:
b7f766ae6dad21269ab6794b78cdd7b495048cfc518f22300fe2a0bf348275ee - Sigstore transparency entry: 953259104
- Sigstore integration time:
-
Permalink:
eman/alpha-hwr@0fe2d6db886c90620870492183577c5ba7d1e695 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/eman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0fe2d6db886c90620870492183577c5ba7d1e695 -
Trigger Event:
release
-
Statement type: