Standalone Python library for communicating with Duotecno controllers
Project description
pyDuotecno-ng
pyDuotecno-ng is the standalone Python library for communicating with Duotecno controllers.
It contains the protocol and transport layer used by the Home Assistant Duotecno integration, including:
- TCP connection management
- controller login
- packet encoding and decoding
- node and unit discovery
- state updates and command dispatch
- JSON-based startup loading with bus-scan fallback
Scope
This repository is the backend library only. It is intentionally separate from the Home Assistant integration so the protocol code can be versioned, tested, and released independently.
If you are looking for the Home Assistant integration wrapper, use the companion integration repository that depends on this package.
Repository Layout
controller.py: main connection and scan orchestrationnode.py: node model and unit loadingunit.py: unit classes and device behaviorprotocol.py: packet/message definitions and parsing helpersexceptions.py: backend-specific exceptions
Intended Usage
The main consumer of this library is the Duotecno Home Assistant integration. The typical flow is:
- create a controller
- connect to the Duotecno gateway
- load nodes and units
- subscribe to live state updates
- send commands to supported unit types
Status
This library is being maintained as a standalone public backend so it can be consumed cleanly by the Home Assistant integration and other future tooling if needed.
Releases
This repository is intended to publish tagged releases that match the PyPI package version exactly.
The PyPI distribution name is pyDuotecno-ng. The Python import package remains duotecno.
Release flow:
- update
pyproject.tomlto the new version - commit the version change to
main - create and push a matching tag in the form
vYYYY.M.N - GitHub Actions builds the wheel and source distribution
- the workflow publishes the package to PyPI
- the same release artifacts are attached to the GitHub release
This matches Home Assistant expectations that:
- the dependency source is public
- published package versions correspond to tagged source releases
- PyPI artifacts are built from the same tagged revision
License
This project is licensed under the Apache License 2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
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 pyduotecno_ng-2026.5.1.tar.gz.
File metadata
- Download URL: pyduotecno_ng-2026.5.1.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9756a01de009e927b1760c17b60f0114b1a633164161b53fc0de80d21c12c906
|
|
| MD5 |
400f8c9b65bfaf279c0b3ef7212f9044
|
|
| BLAKE2b-256 |
706e1a616d73b3490b795fdfc6f6296062dcc94fdebad8cb24a08a39840309f0
|
Provenance
The following attestation bundles were made for pyduotecno_ng-2026.5.1.tar.gz:
Publisher:
release.yml on coorenskevin/pyDuotecno-ng
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyduotecno_ng-2026.5.1.tar.gz -
Subject digest:
9756a01de009e927b1760c17b60f0114b1a633164161b53fc0de80d21c12c906 - Sigstore transparency entry: 1591097832
- Sigstore integration time:
-
Permalink:
coorenskevin/pyDuotecno-ng@b0162880ade8b6ef14b3a00670c434d1fa5c1db3 -
Branch / Tag:
refs/tags/v2026.5.1 - Owner: https://github.com/coorenskevin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b0162880ade8b6ef14b3a00670c434d1fa5c1db3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyduotecno_ng-2026.5.1-py3-none-any.whl.
File metadata
- Download URL: pyduotecno_ng-2026.5.1-py3-none-any.whl
- Upload date:
- Size: 23.7 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 |
6ed90f5936773ada008c7699eaefd65b3ca4d9d5e326e45883b891a28912089d
|
|
| MD5 |
01a81ddfbc966450fdd7d96294b25d7d
|
|
| BLAKE2b-256 |
6d1a4607a1a524df6aac04b0c5f27a00aba7a600275bf507caf53d381980273d
|
Provenance
The following attestation bundles were made for pyduotecno_ng-2026.5.1-py3-none-any.whl:
Publisher:
release.yml on coorenskevin/pyDuotecno-ng
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyduotecno_ng-2026.5.1-py3-none-any.whl -
Subject digest:
6ed90f5936773ada008c7699eaefd65b3ca4d9d5e326e45883b891a28912089d - Sigstore transparency entry: 1591097837
- Sigstore integration time:
-
Permalink:
coorenskevin/pyDuotecno-ng@b0162880ade8b6ef14b3a00670c434d1fa5c1db3 -
Branch / Tag:
refs/tags/v2026.5.1 - Owner: https://github.com/coorenskevin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b0162880ade8b6ef14b3a00670c434d1fa5c1db3 -
Trigger Event:
push
-
Statement type: