Skip to main content

Python Aquatlantis Ori

PyPI version License Codecov Sonar quality gate GitHub repo stars Buy me a coffee

An asynchronous Python client for the Aquatlantis Ori Smart Controller

Installation

You can install this package using your preferred package manager. For example, using pip:

pip install aquatlantis-ori

Usage

To use the Aquatlantis Ori client, you can import it in your Python scripts and start interacting with your Ori controller. Here is a simple example:

import asyncio
import logging

from aquatlantis_ori import AvailabilityType, AquatlantisOriClient, LightOptions, PowerType

logging.basicConfig(level=logging.WARNING)
logging.getLogger("aquatlantis_ori").setLevel(logging.INFO)


async def main() -> None:
    async with AquatlantisOriClient("email", "password") as client:
        await client.connect()
        device = client.get_devices()[0]

        if device.availability_state is not AvailabilityType.AVAILABLE:
            raise RuntimeError("Device is not currently available")

        scenarios: list[dict] = [
            {"power": PowerType.ON, "options": LightOptions(intensity=100, red=100, green=0, blue=0, white=0)},
            {"power": PowerType.ON, "options": LightOptions(intensity=100, red=0, green=100, blue=0, white=0)},
            {"power": PowerType.ON, "options": LightOptions(intensity=100, red=0, green=0, blue=100, white=0)},
            {"power": PowerType.ON, "options": LightOptions(intensity=100, red=0, green=0, blue=0, white=100)},
            {"power": PowerType.ON, "options": LightOptions(intensity=100, red=100, green=100, blue=100, white=100)},
            {"power": PowerType.OFF},
            {"power": PowerType.ON, "options": LightOptions(intensity=80, red=0, green=0, blue=0, white=100)},
            {"power": PowerType.ON, "options": LightOptions(intensity=60, red=0, green=0, blue=0, white=100)},
            {"power": PowerType.ON, "options": LightOptions(intensity=40, red=0, green=0, blue=0, white=100)},
            {"power": PowerType.ON, "options": LightOptions(intensity=20, red=0, green=0, blue=0, white=100)},
            {"power": PowerType.ON, "options": LightOptions(intensity=1, red=0, green=0, blue=0, white=100)},
            {"power": PowerType.OFF},
        ]

        for scenario in scenarios:
            device.set_light(
                power=scenario.get("power"),
                options=scenario.get("options"),
            )
            await asyncio.sleep(2)


if __name__ == "__main__":
    asyncio.run(main())

device.status remains the raw vendor-reported protocol value for diagnostics. Use device.availability_state as the canonical runtime liveness signal:

  • AvailabilityType.UNKNOWN: No MQTT liveness evidence has been observed yet.
  • AvailabilityType.AVAILABLE: Recent MQTT telemetry or an explicit online status proves the device is alive.
  • AvailabilityType.UNAVAILABLE: A fresh explicit offline status was received, or MQTT activity has gone stale.

MQTT activity is considered stale after 6 minutes. Because not every device publishes telemetry on its own, the client requests the state of every device every 2 minutes while MQTT is connected, so a responsive device stays available. This keepalive starts on connect() and stops on close().

Contributing

Contributions are welcome! Please familiarize yourself with the contribution guidelines. This document will also help you set up your development environment.


Thank you for your interest in the Python Aquatlantis Ori client! If you have any questions or need further assistance, feel free to open an issue or submit a pull request.

Metadata

Release files for aquatlantis-ori 0.0.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aquatlantis-ori 0.0.16
File Size Uploaded Provenance
aquatlantis_ori-0.0.16.tar.gz 126.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for aquatlantis-ori 0.0.16
File Interpreter ABI Platform
aquatlantis_ori-0.0.16-py3-none-any.whl Python 3 none any Details

Total release size: 148.4 kB

Release files / aquatlantis_ori-0.0.16.tar.gz

Download URL aquatlantis_ori-0.0.16.tar.gz
Size 126.1 kB
Tags Source
SHA-256 checksum
How to use checksums
48cd94e6a7c7d2fce0cfc2216e7a5ec7d5012068a64fd137ced3c6e9eeb94526
BLAKE2b-256 checksum
How to use checksums
598ebeaba5e1dcfd03875d9d28c3f85250246b9cc7da2fec7c291c5990c0f043
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / aquatlantis_ori-0.0.16-py3-none-any.whl

Download URL aquatlantis_ori-0.0.16-py3-none-any.whl
Size 22.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
78f9195b95124edf0e44531fab784ae29a6f7c3cbeb82a87931899599cbafc8d
BLAKE2b-256 checksum
How to use checksums
202d2726f20182d122463c28c7ea1919c06cb96936c59f24b3c20bbe4a4e9006
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for aquatlantis-ori 0.0.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for aquatlantis_ori-0.0.16.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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