Unofficial Python library for controlling Tecnosystemi devices (Pico, etc.) via UDP
Project description
tecnosystemi-unofficial
Unofficial Python library + CLI for controlling Tecnosystemi IoT devices over the local network.
Supported devices:
- Pico / Pico Pro — decentralised heat-recovery ventilation units
- Polaris 5X — multi-zone Wi-Fi HVAC control unit (heating, cooling, dehumidification, ventilation)
[!WARNING] This is a community reverse-engineering effort based on the decompiled Android app. It is not affiliated with or endorsed by Tecnosistemi S.r.l.
Documentation
| 📦 Library / API | Use TecnoClient/PolarisClient, PicoDevice and Polaris5XDevice in your own Python code |
| 🖥️ CLI | Interactive terminal tool to discover, inspect and control devices |
Installation
pip install tecnosystemi-unofficial
For the CLI:
pipx install tecnosystemi-unofficial
tecno --help
Quick examples
Pico ventilation unit:
from tecnosystemi_unofficial import TecnoClient
from tecnosystemi_unofficial.devices import PicoDevice
with TecnoClient(ip="192.168.1.16") as client:
pico = PicoDevice(client, pin="1234")
print(pico.get_state())
pico.turn_on()
pico.set_speed(3)
pico.set_mode(1) # 1 = Recupero (heat-recovery)
Polaris 5X multi-zone HVAC (TCP port 1235):
import asyncio
from tecnosystemi_unofficial import PolarisClient
from tecnosystemi_unofficial.devices import Polaris5XDevice, OPERATING_MODE_COOLING
async def main():
async with PolarisClient(ip="192.168.1.100", pin="1234") as client:
polaris = Polaris5XDevice(client)
state = await polaris.get_state()
print(state)
await polaris.turn_on()
await polaris.set_mode(OPERATING_MODE_COOLING)
asyncio.run(main())
Running Tests
uv run pytest
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 tecnosystemi_unofficial-1.0.0.tar.gz.
File metadata
- Download URL: tecnosystemi_unofficial-1.0.0.tar.gz
- Upload date:
- Size: 34.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48350b64d5ac47c4b5fa6eee6b18ccdbc83c8508296c308e31f3346fecc60c4b
|
|
| MD5 |
4fdf4c21c84744a6a972d1d4f2f35beb
|
|
| BLAKE2b-256 |
3177a4d29e02d93eb4bef635dfdb2fe2083b104cb0613afc329cee3d2c3a930b
|
Provenance
The following attestation bundles were made for tecnosystemi_unofficial-1.0.0.tar.gz:
Publisher:
publish.yml on karim-ramadan/tecnosystemi_unofficial
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tecnosystemi_unofficial-1.0.0.tar.gz -
Subject digest:
48350b64d5ac47c4b5fa6eee6b18ccdbc83c8508296c308e31f3346fecc60c4b - Sigstore transparency entry: 2019824485
- Sigstore integration time:
-
Permalink:
karim-ramadan/tecnosystemi_unofficial@1325958ab87a020fab1682b1de6bc8df14e24703 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/karim-ramadan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1325958ab87a020fab1682b1de6bc8df14e24703 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file tecnosystemi_unofficial-1.0.0-py3-none-any.whl.
File metadata
- Download URL: tecnosystemi_unofficial-1.0.0-py3-none-any.whl
- Upload date:
- Size: 49.4 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 |
0b19d4c09343b23799fad3f08a147a7bed3dc44f217ed9b2fcf652766d85d308
|
|
| MD5 |
76e40aa6a9b1817e5b9c1d20d7824e3a
|
|
| BLAKE2b-256 |
c7cf7fc52929967eaad22aee7fd529f89bcdc5b22d583f1516b2fb2c122521d8
|
Provenance
The following attestation bundles were made for tecnosystemi_unofficial-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on karim-ramadan/tecnosystemi_unofficial
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tecnosystemi_unofficial-1.0.0-py3-none-any.whl -
Subject digest:
0b19d4c09343b23799fad3f08a147a7bed3dc44f217ed9b2fcf652766d85d308 - Sigstore transparency entry: 2019824563
- Sigstore integration time:
-
Permalink:
karim-ramadan/tecnosystemi_unofficial@1325958ab87a020fab1682b1de6bc8df14e24703 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/karim-ramadan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1325958ab87a020fab1682b1de6bc8df14e24703 -
Trigger Event:
workflow_dispatch
-
Statement type: