Skip to main content

pymacon

Secure async REST and WebSocket client for the Macon Heat Pump Controller. It is the transport library used by the Macon Home Assistant integration.

Each MaconClient owns the credential, pinned certificate, ordered state, reconnect loop, and reconciliation state for exactly one controller. Multiple controllers therefore remain fully isolated.

Install

pip install pymacon

Usage

from pymacon import MaconClient

client = MaconClient(
    "192.168.1.21",
    token,
    certificate_fingerprint,
    # arctic-* is retained because it is the firmware wire-format ID.
    device_id="arctic-001122334455",
)
client.subscribe(handle_snapshot)
client.subscribe_status(handle_status)
await client.start()

Call await client.stop() when unloading the owning config entry. Sessions passed into the constructor remain owned by the caller; sessions created by the client are closed automatically.

Control methods acknowledge that a command was accepted, but they never optimistically mutate local state. Subscribe to snapshots to observe the controller's reported state:

await client.async_set_cooling_setpoint(12)
await client.async_set_power(False)

Only controls advertised by client.capabilities should be called. The firmware rejects unavailable, unsafe, or unsupported operations.

Development

python -m pip install -e ".[tests]"
pytest
ruff check src tests
mypy src

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymacon-0.1.0.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

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

pymacon-0.1.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file pymacon-0.1.0.tar.gz.

File metadata

  • Download URL: pymacon-0.1.0.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pymacon-0.1.0.tar.gz
Algorithm Hash digest
SHA256 796ffcc5afdf3465c0a3a6bd03305ce95d6ef5e126b3e3fdfe6be36608c97962
MD5 280138e0b397bff98dd724531b22608b
BLAKE2b-256 5447df360f04b4f180c2c68554f8a4c04ab3a684cc07e71449bfb0fb933f41d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymacon-0.1.0.tar.gz:

Publisher: release.yml on sslivins/pymacon

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

File details

Details for the file pymacon-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pymacon-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pymacon-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4fa92b73db8c78841bfd0b3b2709eef97aad687fb988d5523dbb818251c3c7af
MD5 15ad15f394e4c6463fc9a7f6d5efe6d5
BLAKE2b-256 68d05211f0580f1ce52d92cc293a4e6dc8712485ba18be9ce891f89c443300d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymacon-0.1.0-py3-none-any.whl:

Publisher: release.yml on sslivins/pymacon

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

Release history Release notifications | RSS feed

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.0 This release

2 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