Skip to main content

Async Python client for the ETAtouch REST API of ETA heating systems

Project description

aioetatouch

Async Python client for the ETAtouch REST API of ETA heating systems.

This project is a work in progress. The API surface is not yet stable.

Requires Python >=3.12.

Install

pip install aioetatouch

Usage

The caller owns the aiohttp.ClientSession (the Home Assistant convention); EtaClient never creates or closes it.

import asyncio

import aiohttp

from aioetatouch import EtaClient


async def main() -> None:
    async with aiohttp.ClientSession() as session:
        client = EtaClient("192.168.1.50", session)

        tree = await client.get_menu()
        for node in tree:
            print(node.uri, node.name)

        value = await client.get_var("/120/10101/0/0/12197")
        print(f"{value.scaled} {value.unit}")


asyncio.run(main())

Read-only, with one caveat

EtaClient is read-only with respect to variable values -- there is no method to write a heater's setpoint or state. The one exception is the create_set / delete_set / add_to_set / remove_from_set methods, which intentionally mutate the device's web-service variable-set containers (required for bulk polling); they never touch a heater value.

Errors

All exceptions inherit from EtaError:

  • EtaParseError -- an ETAtouch XML response could not be parsed.
  • EtaConnectionError -- the device could not be reached (transport failure or timeout).
  • EtaApiError -- the device returned a non-2xx HTTP response; carries status and message.

CLI

An optional recon/debugging CLI is available via pip install aioetatouch[cli]:

aioetatouch --host 192.168.1.50 menu
aioetatouch --host 192.168.1.50 var /120/10101/0/0/12197

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

aioetatouch-0.1.0.tar.gz (101.6 kB view details)

Uploaded Source

Built Distribution

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

aioetatouch-0.1.0-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file aioetatouch-0.1.0.tar.gz.

File metadata

  • Download URL: aioetatouch-0.1.0.tar.gz
  • Upload date:
  • Size: 101.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for aioetatouch-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cc910e92fe77670f1299d76d883dd3c8800f08a3ede7cc6c50b1866e5f5918a4
MD5 ca7e9fd2207aa27cee02138b76708ef0
BLAKE2b-256 a806c149fb271a7e4df437415ac0b517985ac187ed52ddc82c64a1ff84539c4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aioetatouch-0.1.0.tar.gz:

Publisher: release.yml on g4bri3lDev/aioetatouch

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

File details

Details for the file aioetatouch-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aioetatouch-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for aioetatouch-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0550fb4ead95635ef28ef05f318ebe1504b4155dcb559ff307354a2fa6d431c0
MD5 42d88c0eb098f31c397c86be71f507f0
BLAKE2b-256 2bc8d1dba9f54a1ddd682b6fb1548a26341fe2d76f57c20ac5e23ed8a77468f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for aioetatouch-0.1.0-py3-none-any.whl:

Publisher: release.yml on g4bri3lDev/aioetatouch

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