Skip to main content

py-etatouch-restful

Async Python client for ETA Touch RESTful Webservices.

The ETA documentation exposes the webservices at http://<eta-ip>:8080:

  • GET /user/api: read the API version.
  • GET /user/menu: read the menu tree.
  • GET /user/var/<uri>: read a single variable.
  • POST /user/var/<uri>: set a writable variable.
  • GET/PUT/DELETE /user/vars: manage temporary variable sets.
  • GET /user/errors: read active errors.
  • GET /user/varinfo/<uri>: read variable metadata and valid values.

Installation

python -m pip install py-etatouch-restful

Example

import asyncio

from etatouch_restful import EtaTouchClient


async def main() -> None:
    async with EtaTouchClient("192.168.1.50") as client:
        api_version = await client.get_api_version()
        value = await client.get_variable("112/10021/0/0/12112")
        print(api_version, value.str_value, value.native_value)


asyncio.run(main())

Development

python -m pip install -e ".[test,build]"
ruff check .
pytest
python -m build
twine check dist/*

Notes

ETA variable URIs are device-specific. For an ETA PU15, discover them through /user/menu and inspect writable values through /user/varinfo/<uri>.

Discovery Helpers

The package includes helpers to flatten the ETA menu tree and select conservative default discovery candidates:

from etatouch_restful import flatten_menu, is_default_discovery_candidate

variables = [
    variable
    for variable in flatten_menu(await client.get_menu())
    if is_default_discovery_candidate(variable)
]

Repository Setup

Empfohlene GitHub-Repo-Einstellungen:

  • Repository-Name: py-etatouch-restful
  • Default Branch: main
  • Develop Branch: develop
  • PyPI-Paketname: py-etatouch-restful

Initialer Push in ein leeres Repo:

git init
git add .
git commit -m "Initial py-etatouch-restful scaffold"
git branch -M main
git remote add origin https://github.com/<user>/py-etatouch-restful.git
git push -u origin main
git switch -c develop
git push -u origin develop

Release Notes

Releases are published from GitHub Releases through PyPI Trusted Publishing. See RELEASE.md.

Release files for py-etatouch-restful 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-etatouch-restful 0.2.1
File Size Uploaded
py_etatouch_restful-0.2.1.tar.gz 9.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-etatouch-restful 0.2.1
File Interpreter ABI Platform
py_etatouch_restful-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 19.4 kB

Release files / py_etatouch_restful-0.2.1.tar.gz

Download URL py_etatouch_restful-0.2.1.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cd47ef553408045efea42f159e0bb9e69107454fc7c4742177450ee1045a0dac
BLAKE2b-256 checksum
How to use checksums
69eaa12c7de5eb38a95da5ac493db9a0a3725088418af11c0840e0b721fca3ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 24, 2026.

Transparency log

Release files / py_etatouch_restful-0.2.1-py3-none-any.whl

Download URL py_etatouch_restful-0.2.1-py3-none-any.whl
Size 9.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
68f8a4cb596e1e44de4088610431327fe6d027b8dedd11107f3a982154b20b3f
BLAKE2b-256 checksum
How to use checksums
46598b2801be407a854c0aa3dedd521ecf24d9a30a2cfcea8e35b6019410bef1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page