Skip to main content

Quilt Python Client

Python client library for Quilt mini-split HVAC systems.

Communicates with the Quilt cloud API via gRPC to control spaces (rooms), indoor units, comfort presets, schedules, and stream real-time updates.

Installation

pip install quilt-hp-python

With the optional CLI:

pip install "quilt-hp-python[cli]"

Quick Start

import asyncio
from quilt_hp import QuiltClient

async def main():
    async with QuiltClient("user@example.com") as client:
        await client.login(otp_callback=lambda email: input(f"OTP for {email}: "))

        # List spaces
        for space in await client.list_spaces():
            print(f"{space.name}: {space.state.ambient_temperature_c}°C")

        # Set a room to COOL at 22°C
        from quilt_hp.models.enums import HVACMode
        spaces = await client.list_spaces()
        await client.set_space(spaces[0].id, mode=HVACMode.COOL, cool_setpoint_c=22.0)

        # Stream real-time updates — stream events are sparse diffs, so
        # always merge them into a snapshot before use
        snapshot = await client.get_snapshot()
        async with client.stream(snapshot.stream_topics()) as stream:
            def on_space(space):
                merged = snapshot.apply_space(space)
                print(f"{merged.name}: {merged.state.ambient_temperature_c}°C")

            stream.on_space_update(on_space)
            await asyncio.sleep(60)

asyncio.run(main())

CLI

# Authenticate (caches tokens for subsequent commands)
quilt login --email user@example.com

# Full system inventory + telemetry (summary)
quilt info

# Full system snapshot as JSON for automation
quilt info --output json

# All device/entity IDs (includes update entities)
quilt devices

# Current sensor values + setpoints
quilt values

# Machine-readable values for scripting
quilt values --output json

# Energy usage
quilt energy --period week

# Set a room to cooling mode
quilt set "Living Room" --mode cool --cool 22

Related Projects

  • homeassistant-quilt-hp — Home Assistant custom integration built on this library. Exposes Quilt spaces, indoor/outdoor units, sensors, and schedules as HA entities with full climate control.

Development

git clone https://github.com/eman/quilt-hp-python.git
cd quilt-hp-python
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,cli]"

# Run checks
ruff check src/ tests/
ruff format --check src/ tests/
mypy src/quilt_hp/
pytest
python -m build
twine check dist/*

# Recompile protobuf stubs (requires grpcio-tools)
# Proto sources are vendored in ./proto/cleaned for standalone use.
# Optional but recommended: install protobuf includes (e.g. `brew install protobuf`)
./scripts/regen_protos.sh

# Build project docs (MkDocs Material)
pip install -e ".[docs]"
python scripts/check_docs_nav.py
mkdocs build --strict

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

quilt_hp_python-0.5.7.tar.gz (271.5 kB view details)

Uploaded Source

Built Distribution

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

quilt_hp_python-0.5.7-py3-none-any.whl (170.0 kB view details)

Uploaded Python 3

File details

Details for the file quilt_hp_python-0.5.7.tar.gz.

File metadata

  • Download URL: quilt_hp_python-0.5.7.tar.gz
  • Upload date:
  • Size: 271.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for quilt_hp_python-0.5.7.tar.gz
Algorithm Hash digest
SHA256 f1299eea76b15f068aecad172cefc87e5a131dd9505ceba00b67b709850e41b2
MD5 fc7cde91d5f0f01777ee350b10f11870
BLAKE2b-256 929a64254e4128fb689a44fc676ae6a27d42efa80042214213f31a304bc280c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for quilt_hp_python-0.5.7.tar.gz:

Publisher: release.yml on eman/quilt-hp-python

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

File details

Details for the file quilt_hp_python-0.5.7-py3-none-any.whl.

File metadata

  • Download URL: quilt_hp_python-0.5.7-py3-none-any.whl
  • Upload date:
  • Size: 170.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for quilt_hp_python-0.5.7-py3-none-any.whl
Algorithm Hash digest
SHA256 9c7c505d54927bfc6b8157c63e3dde773b14969f3bd078c220ddc5872f8b4227
MD5 5527582e3f9214d4fddcd0f09f3e9f06
BLAKE2b-256 9921bc6c632ca001d69bd124ab51eb921291042646bdf2c288f37b22f159ac46

See more details on using hashes here.

Provenance

The following attestation bundles were made for quilt_hp_python-0.5.7-py3-none-any.whl:

Publisher: release.yml on eman/quilt-hp-python

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

Release history Release notifications | RSS feed

This release

0.5.7 This release

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page