Async client for communicating with the Ouman EH-800 heating controller
Project description
ouman-eh-800-api
Async Python client for communicating with the Ouman EH-800 heating controller.
Installation
pip install ouman-eh-800-api
Usage
import asyncio
import aiohttp
from ouman_eh_800_api import (
OumanEh800Client,
L1BaseEndpoints,
SystemEndpoints,
HomeAwayControl,
OperationMode,
)
async def main():
async with aiohttp.ClientSession() as session:
client = OumanEh800Client(
session=session,
address="http://192.168.1.100",
username="user",
password="password",
)
# Authenticate
await client.login()
# Detect the registries that match the device's current configuration
# (curve type, room sensor, L2, relay mode) and read every endpoint
# in one batch.
registry_set = await client.get_active_registries()
values = await client.get_values(registry_set)
print(f"Outside temp: {values[SystemEndpoints.OUTSIDE_TEMPERATURE]} °C")
print(f"L1 supply temp: {values[L1BaseEndpoints.SUPPLY_WATER_TEMPERATURE]} °C")
# Set home/away mode
await client.set_endpoint_value(
SystemEndpoints.HOME_AWAY_MODE, HomeAwayControl.HOME
)
# Set L1 operation mode
await client.set_endpoint_value(
L1BaseEndpoints.OPERATION_MODE, OperationMode.AUTOMATIC
)
await client.logout()
asyncio.run(main())
Features
- Async API using aiohttp
- Read sensor values (temperatures, valve positions, etc.)
- Control heating circuits (operation mode, temperature curves, etc.)
- Set home/away mode
- Support for L1 and L2 heating circuits
- Support for optional room sensors
Available Registries
The library splits endpoints into small "fragment" registries. For a given
device configuration only a subset is active; client.get_active_registries()
returns the right composition automatically. Manual composition via
OumanRegistrySet([...]) is also supported.
| Registry | Description |
|---|---|
SystemEndpoints |
System-wide (outside temp, home/away, relay status, etc.) |
L1BaseEndpoints / L2BaseEndpoints |
Per-circuit endpoints always queryable when the circuit is in use |
L1ThreePointCurve / L1FivePointCurve |
L1 heating-curve setpoints (mutually exclusive) |
L2ThreePointCurve / L2FivePointCurve |
L2 heating-curve setpoints (mutually exclusive) |
L1NoRoomSensor / L1RoomSensor |
L1 endpoints whose IDs differ depending on whether a room sensor is installed |
L2NoRoomSensor / L2RoomSensor |
Same for L2 |
L1ConstantTempMode |
Setpoint exposed when L1 heating mode is constant-temperature controller |
RelayPumpSummerStop, RelayTemperature, RelayTempDifference, RelayL1ValvePosition, RelayTimeProgram |
Relay-control override; one active depending on the configured relay mode |
Requirements
- Python 3.13+
- aiohttp
Disclaimer
This client has been developed and tested with the Ouman EH-800 unit that was available to the developer. It did not have all features enabled, thus there may be missing features or bugs.
The L2 heating circuit and room sensor endpoints have not been verified.
Contributing
Pull requests for new features or bug fixes are welcome. Please open an issue first to discuss major changes.
License
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 ouman_eh_800_api-0.4.0.tar.gz.
File metadata
- Download URL: ouman_eh_800_api-0.4.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60d29a28fa635263771087bbbe92d26e6742e376efa53ddd7a84256d463277c6
|
|
| MD5 |
d9c43c6d850a5aadc853967bc829f56e
|
|
| BLAKE2b-256 |
bbdb45b116338a0e5de0c48702f7c5f5d119c3b2e1ba3f4e7398da7cacbaff6b
|
Provenance
The following attestation bundles were made for ouman_eh_800_api-0.4.0.tar.gz:
Publisher:
release.yml on Markus98/ouman-eh-800-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ouman_eh_800_api-0.4.0.tar.gz -
Subject digest:
60d29a28fa635263771087bbbe92d26e6742e376efa53ddd7a84256d463277c6 - Sigstore transparency entry: 1396431503
- Sigstore integration time:
-
Permalink:
Markus98/ouman-eh-800-api@9b141559857273b2198873a7eb6529bdad0472c8 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/Markus98
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9b141559857273b2198873a7eb6529bdad0472c8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ouman_eh_800_api-0.4.0-py3-none-any.whl.
File metadata
- Download URL: ouman_eh_800_api-0.4.0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
908dd0716e542843a39a42b740a67dbe49fb4567def8e0a2c258bb4da24b62de
|
|
| MD5 |
e4ea762ec46f86b318a1712c9257bcbf
|
|
| BLAKE2b-256 |
6d904d5a31f2f371117d6458c55122729007016e4911c3bac4029798c18f370a
|
Provenance
The following attestation bundles were made for ouman_eh_800_api-0.4.0-py3-none-any.whl:
Publisher:
release.yml on Markus98/ouman-eh-800-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ouman_eh_800_api-0.4.0-py3-none-any.whl -
Subject digest:
908dd0716e542843a39a42b740a67dbe49fb4567def8e0a2c258bb4da24b62de - Sigstore transparency entry: 1396431541
- Sigstore integration time:
-
Permalink:
Markus98/ouman-eh-800-api@9b141559857273b2198873a7eb6529bdad0472c8 -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/Markus98
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9b141559857273b2198873a7eb6529bdad0472c8 -
Trigger Event:
release
-
Statement type: