skillfed

iaqualink

Asynchronous library for Jandy iAqualink

iaqualink v0.7.0 91.7K downloads/30d#13,507 on PyPI43
Permissive license BSD-3-Clause Active released

What it is and what it does

iaqualink-py is an async Python client for Jandy iAqualink pool control systems, providing a Pythonic interface to authenticate with iAqualink.net and Zodiac-io.com APIs, discover connected pool systems, and monitor or control attached devices. It wraps HTTP communication using httpx with built-in retry handling for rate limits and auth token refresh, and includes a CLI tool for command-line discovery and device control.

The library is designed for applications that need to integrate pool equipment monitoring into Python automation, dashboards, or home-automation platforms. It handles multiple systems per account, supports device types including temperature sensors, thermostats, pumps, heaters, lights, and water chemistry sensors, and automatically rate-limits API calls to 5-second intervals per system. All I/O is async-first, making it suitable for concurrent monitoring of multiple systems or integration into event-driven frameworks.

Use it for:

  • Home automation integration: monitor pool temperature and control pumps/heaters from a smart home platform.
  • Dashboard or monitoring app: display real-time pool status (temperature, device state, chemistry) in a web or mobile UI.
  • Scheduled maintenance: automate pool equipment startup/shutdown or temperature adjustments on a daily or seasonal schedule.
  • Alert system: trigger notifications when pool temperature drops below a threshold or equipment goes offline.
  • CLI administration: discover systems and manually control devices from the command line with session persistence.
  • Multi-system management: monitor and control multiple pool systems from a single Python application.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Asynchronous Python library for monitoring and controlling Jandy iAqualink pool and spa systems via their cloud APIs, with support for temperature sensors, pumps, heaters, lights, and chemistry monitoring.

Yes, with conditions. The library is actively maintained, has no known vulnerabilities, and offers a clean async interface for a niche but real use case (Jandy iAqualink integration). The low install friction and permissive license are advantages. However, the Python 3.14 requirement is a significant constraint—verify that your environment supports it. Pre-alpha status (Development Status :: 2) suggests the API may still change; review the repository for stability expectations before relying on it in production.

Install

iaqualink on PyPI

pip

pip install iaqualink

uv

uv add iaqualink

poetry

poetry add iaqualink

Installing iaqualink

Before you install

Low friction: pure Python wheel with only two runtime dependencies (httpx and httpx-retries). Actively maintained with recent commits and no known vulnerabilities. Requires Python 3.14 or higher, which is a significant version constraint.

License in practice

BSD-3-Clause is permissive and imposes minimal restrictions on use or redistribution, making it suitable for both commercial and private projects without licensing concerns.

Quickstart

pip install iaqualink

from iaqualink import AqualinkClient

async with AqualinkClient('user@example.com', 'password') as client:
    systems = await client.get_systems()
    system = list(systems.values())[0]
    devices = await system.get_devices()
    pool_temp = devices.get('pool_temp')
    if pool_temp:
        print(f"Pool temperature: {pool_temp.state}°F")

Requires Python 3.14 or higher; asyncio event loop context required to run async code.

Verify before relying

  • Whether Python 3.14 requirement reflects actual API usage or is overly strict for the underlying httpx/httpx-retries dependencies.
  • Scope and completeness of device type support beyond the documented examples (temperature, pumps, heaters, lights, chemistry).
  • Rate-limiting behavior and whether the documented 5-second cache window is enforced or advisory.

Package facts

License BSD-3-Clause (permissive)
Python support capped below the current Python release (>=3.14)
Install friction low — pure-Python wheel
Runtime dependencies 2 — httpx-retries, httpx
Maintenance actively maintained — 109 days since the last release
Last repo commit
First released
Downloads 91,704/month — #13,507 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: iaqualink-0.7.0-py3-none-any.whl

Keywords: iaqualink

Development Status :: 2 - Pre-AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishProgramming Language :: Python :: 3.14

Tags

pool control api pythonjandy iaqualink libraryasync pool monitoringspa equipment controlpool automation pythoniaqualink integrationpool temperature sensorspool device management
pool-automationasync-httpiot-integration

More Monitoring packages