Python Aquatlantis Ori
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aquatlantis_ori-0.0.16.tar.gz | 126.1 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.