Skip to main content

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

tecnosystemi_unofficial-1.0.0.tar.gz (34.3 kB view details)

Uploaded Source

Built Distribution

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

tecnosystemi_unofficial-1.0.0-py3-none-any.whl (49.4 kB view details)

Uploaded Python 3

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

Hashes for tecnosystemi_unofficial-1.0.0.tar.gz
Algorithm Hash digest
SHA256 48350b64d5ac47c4b5fa6eee6b18ccdbc83c8508296c308e31f3346fecc60c4b
MD5 4fdf4c21c84744a6a972d1d4f2f35beb
BLAKE2b-256 3177a4d29e02d93eb4bef635dfdb2fe2083b104cb0613afc329cee3d2c3a930b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tecnosystemi_unofficial-1.0.0.tar.gz:

Publisher: publish.yml on karim-ramadan/tecnosystemi_unofficial

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

File details

Details for the file tecnosystemi_unofficial-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tecnosystemi_unofficial-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b19d4c09343b23799fad3f08a147a7bed3dc44f217ed9b2fcf652766d85d308
MD5 76e40aa6a9b1817e5b9c1d20d7824e3a
BLAKE2b-256 c7cf7fc52929967eaad22aee7fd529f89bcdc5b22d583f1516b2fb2c122521d8

See more details on using hashes here.

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

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