Skip to main content

ampio-mqtt

Async Python client for the Ampio Smart Home local MQTT protocol exposed by the Ampio M-SERV controller. Built to back a Home Assistant integration while staying Home Assistant agnostic itself.

Beta. Everything below 1.0.0 may break between any two releases without migration shims, so pin exact versions. 1.0.0 is reserved for the release that accompanies the home-assistant/core integration being accepted upstream.

Installation

pip install ampio-mqtt

LAN discovery (discover()) needs the discovery extra (pip install ampio-mqtt[discovery]), which pulls in zeroconf. Home Assistant ships zeroconf itself, so the integration needs no extra.

Quickstart

import asyncio

from ampio_mqtt import AmpioClient, ObjectUpdated, discover


async def main() -> None:
    found = await discover()  # mDNS lookup of ampio.local
    if found is None:
        raise SystemExit("No Ampio M-SERV found on the LAN")

    client = AmpioClient(found.address, "user", "secret")
    client.subscribe(
        lambda e: print(e.object.id, e.object.kind, e.object.value),
        of=ObjectUpdated,
    )
    await client.start()  # connect, subscribe, run discovery

    rooms = await client.fetch_rooms()
    for obj_id, room in rooms.items():
        print(f"object {obj_id} -> {room}")

    await asyncio.sleep(30)
    await client.stop()


asyncio.run(main())

What it does

Each area is one page under docs/, and the docstrings carry the API detail.

  • A maintained broker connection with QoS 1 on every leg, capped-backoff reconnect, and one typed event stream that includes the terminal AuthFailed and ConnectionDied signals (docs/events.md).
  • Discovery of the object catalogue on either account tier (the module catalogue is admin-only), with the detected tier exposed for setup flows (docs/account-tiers.md).
  • Classification of every object into a sensor, input, output, or thermostat kind with Home-Assistant-compatible hints (docs/classification.md).
  • Replacement-stable identity for objects and modules, so a hardware swap keeps its entities (docs/identity.md).
  • Commands for relays, dimmers, RGBW lights, covers with stop and tilt, the regulator setpoint, scenes, and bus events, plus a raw escape hatch for the rest of the verb vocabulary (docs/protocol.md).
  • A low-latency input bridge from the raw per-channel topics on the admin tier (docs/raw-channel-bridge.md).
  • Room mapping, per-module health, eviction events for server-side deletions, and connection diagnostics for a consumer's report blob.
  • LAN discovery of the M-SERV by multicast DNS, self-contained in the process (docs/discovery-flow.md).

Choosing an account

A dedicated standard account is the recommended shape for Home Assistant. It sees exactly the objects granted in the Ampio app and can command only those. An administrator account adds the module list and the low-latency raw input topics. Bus events are the exception on both tiers, since any account can raise any event number and the logic behind an event runs with full authority. docs/account-tiers.md has the capability table and the measured latency difference.

Supported M-SERV versions

The library is developed and live-tested against an M-SERV self-reporting serverVersion 1865 (serverRevision 409, mqttVersion 5.133.11). That baseline is the compatibility floor; wire behavior documented in this repo is verified against that install unless marked otherwise in place - an open claim carries a tracking-issue link or a caveat naming exactly what is unverified. Older servers are not supported, and the library logs a warning when the connected server reports a lower or missing serverVersion. If something misbehaves on an older server, upgrade the M-SERV first.

License

MIT

Download files

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

Source Distribution

ampio_mqtt-0.31.0.tar.gz (190.6 kB view details)

Uploaded Source

Built Distribution

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

ampio_mqtt-0.31.0-py3-none-any.whl (63.3 kB view details)

Uploaded Python 3

File details

Details for the file ampio_mqtt-0.31.0.tar.gz.

File metadata

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

File hashes

Hashes for ampio_mqtt-0.31.0.tar.gz
Algorithm Hash digest
SHA256 34bb7bddf4f5b1cd515f3fdf3ea36106a6d5b897025ac5a2e6bd9aa4a3272905
MD5 612f9e04e56cbe85de0cdf0567c10b54
BLAKE2b-256 4a11dfcd35c1fa65467a712d496ef753403dd9254328eb44b3c5bd216e8dec34

See more details on using hashes here.

Provenance

The following attestation bundles were made for ampio_mqtt-0.31.0.tar.gz:

Publisher: release.yml on pszypowicz/ampio-mqtt

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

File details

Details for the file ampio_mqtt-0.31.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for ampio_mqtt-0.31.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de8020d60bd71a9973f0a71987cd64093b89fa7a2d3ea700c9ee1ff8aad8dc91
MD5 ac45f66e37642588389a631b00ff25a1
BLAKE2b-256 3c97407fe7c2594c5657bacd35c06effe3a8dfbfb515ecec0076f4ba17ca88f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ampio_mqtt-0.31.0-py3-none-any.whl:

Publisher: release.yml on pszypowicz/ampio-mqtt

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.58.0

2 files

0.57.0

2 files

0.56.0

2 files

0.55.0

2 files

0.54.1

2 files

0.54.0

2 files

0.53.0

2 files

0.52.0

2 files

0.51.0

2 files

0.50.0

2 files

0.49.0

2 files

0.48.0

2 files

0.47.0

2 files

0.46.0

2 files

0.45.0

2 files

0.44.0

2 files

0.43.0

2 files

0.42.0

2 files

0.41.0

2 files

0.40.0

2 files

0.39.0

2 files

0.38.0

2 files

0.37.0

2 files

0.36.1

2 files

0.36.0

2 files

0.35.0

2 files

0.34.0

2 files

0.33.0

2 files

0.32.0

2 files

This release

0.31.0 This release

2 files

0.30.0

2 files

0.29.0

2 files

0.28.0

2 files

0.27.0

2 files

0.26.1

2 files

0.26.0

2 files

0.25.0

2 files

0.24.0

2 files

0.23.0

2 files

0.22.0

2 files

0.21.0

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

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