Skip to main content

Async client for communicating with the Ouman EH-800 heating controller

Project description

ouman-eh-800-api

PyPI version Python versions License

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

Apache-2.0

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

ouman_eh_800_api-0.5.0.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ouman_eh_800_api-0.5.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file ouman_eh_800_api-0.5.0.tar.gz.

File metadata

  • Download URL: ouman_eh_800_api-0.5.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

Hashes for ouman_eh_800_api-0.5.0.tar.gz
Algorithm Hash digest
SHA256 9613e24be6235f2bb5985c3a1d38e6ad9670592e872df77e199c9ae9deb9890a
MD5 4d0cd6f4ca3f0e310c34b5cb2d933a05
BLAKE2b-256 225a579c6e59d0609cbad037a69dc97814c7d6985200531c699dd0884128ec63

See more details on using hashes here.

Provenance

The following attestation bundles were made for ouman_eh_800_api-0.5.0.tar.gz:

Publisher: release.yml on Markus98/ouman-eh-800-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ouman_eh_800_api-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ouman_eh_800_api-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8b5a29c49554cb3c92c5560adf768aed0d18d24d8355cf24ba7a32a1a49750bf
MD5 76f1b9f3483b68ad4956f1f47d009940
BLAKE2b-256 35499f12b1f3710542be9132427d70a82fa7f0fb3c8d35fb0606dd3070e37045

See more details on using hashes here.

Provenance

The following attestation bundles were made for ouman_eh_800_api-0.5.0-py3-none-any.whl:

Publisher: release.yml on Markus98/ouman-eh-800-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page