Skip to content

Repository files navigation

pycomap

Async Python client for ComAp controllers (InteliLite AMF25 and likely compatible siblings): LAN discovery and the native ECDH/AES-encrypted control protocol on port 23.

Quick start

from ipaddress import IPv4Address

from pycomap import Controller, EthernetTransport
from pycomap.protocol import ComApClient

async with Controller(
    ComApClient(EthernetTransport(IPv4Address("192.168.1.9"))),
    access_code="0",   # factory default (drives ECDH key derivation)
    password=1234,     # write-protection password (0-9999); omit for read-only
) as ctrl:
    values = await ctrl.read_values()
    print(values)

    await ctrl.set_setpoint("Nominal RPM", 1500)
    await ctrl.set_setpoint("Summer Time Mode", "Winter")  # STRING_LIST by label

See the API docs for full reference, built with Zensical. just docs-serve to browse locally.

Development

just format       # ruff check --fix + ruff format
just typecheck    # ty check
just unit         # tests/unit (no hardware needed)
just integration  # tests/integration (requires .env with PYCOMAP_TEST_HOST)
just docs-serve   # browse API docs locally
just ai-docs      # regenerate llms.txt and CLAUDE.md

pre-commit runs format + typecheck on every commit:

uv run pre-commit install

About

Async Python client for ComAp controllers: LAN discovery and the native ECDH/AES-encrypted control protocol

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages