Skip to main content

aiopoolside

Asynchronous Python client for Poolside pool controllers.

Speaks the controller's local protocol: an encrypted JSON-RPC transport over websockets using the Noise Protocol Framework (Noise_XX_25519_ChaChaPoly_SHA256), plus the plaintext pre-auth pairing handshake used to enroll a new client.

Installation

pip install aiopoolside

Usage

import aiohttp

from aiopoolside import (
    PoolsideClient,
    async_await_pairing_result,
    async_request_pairing,
    generate_keypair,
)


async def main() -> None:
    async with aiohttp.ClientSession() as session:
        # One-time pairing: the user approves the request on the controller.
        private_key, public_key = generate_keypair()
        ws, result = await async_request_pairing(
            session, "192.168.1.50", 8126, "My Client", public_key
        )
        approved = await async_await_pairing_result(ws)

        client = PoolsideClient(
            session=session,
            host="192.168.1.50",
            port=8126,
            client_private_key=private_key,
            controller_public_key=approved.controller_public_key,
            controller_uuid=approved.controller_uuid,
        )
        await client.async_connect()
        site, controls = await client.async_get_control_layout()
        try:
            for control in controls:
                print(control.name, control.control_type)
        finally:
            await client.async_disconnect()

Development

uv sync
uv run pytest

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

aiopoolside-0.1.0.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

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

aiopoolside-0.1.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aiopoolside-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1cfd76c1b4961bcf22c7fb2a50e99cc303110b312a50652370dc86e50f3840ab
MD5 031c76be9d9e815390a745ebfa3a7c3e
BLAKE2b-256 c68272f14452eb7b49b87bee81b776d70fb487ddbdda934fe8086738184954fc

See more details on using hashes here.

Provenance

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

Publisher: release.yml on PoolsideStan/aiopoolside

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

File details

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

File metadata

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

File hashes

Hashes for aiopoolside-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2bd3b6f3c4b6022c4c087dc264d08cb7895fc8b0790fafbb7463fcdeffc8cc95
MD5 831008494b82bb06c37e43c2bb687731
BLAKE2b-256 5b3683c2cde7c283c0373d373f3af43e45da2924018e78fdc4da1091e5aac51f

See more details on using hashes here.

Provenance

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

Publisher: release.yml on PoolsideStan/aiopoolside

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