Metadata-Version: 2.4
Name: aliste
Version: 2.1.0
Summary: Async Python SDK for Aliste Smart Home devices.
Keywords: aliste,iot,mqtt,smart-home
Author: Raj Kishore
Author-email: Raj Kishore <40551183+rkzofficial@users.noreply.github.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Home Automation
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: aiohttp>=3.13.3,<4.0.0
Requires-Dist: aiomqtt>=2.5.1,<3.0.0
Requires-Dist: aws-signv4-mqtt>=0.2.0,<0.3.0
Requires-Dist: boto3>=1.42.67,<2.0.0
Requires-Dist: certifi>=2026.2.25,<2027.0.0
Requires-Python: >=3.11
Project-URL: Homepage, https://github.com/rkzofficial/aliste-smart-home-sdk
Project-URL: Repository, https://github.com/rkzofficial/aliste-smart-home-sdk
Project-URL: Issues, https://github.com/rkzofficial/aliste-smart-home-sdk/issues
Description-Content-Type: text/markdown

# Aliste Smart Home SDK for Python

`aliste` 2.0 is an async-first SDK for discovering and controlling Aliste smart home devices from Python.

## Requirements

- Python 3.11 or newer
- An Aliste account with at least one configured home

## Install

```bash
uv add aliste
```

For a plain `pip` install:

```bash
pip install aliste
```

## Development

```bash
uv sync --group dev
uv run ruff check .
uv run mypy aliste
uv build --no-sources
```

## Quickstart

```python
import asyncio

from aliste import AlisteHub


async def main() -> None:
    async with AlisteHub() as hub:
        await hub.connect("+91xxxxxxxxxx", "your-password")

        if hub.home is None:
            return

        print(f"Connected to {hub.home.name}")

        living_room_light = hub.home.get_device("device-id")
        if living_room_light is not None:
            await living_room_light.turn_on()


asyncio.run(main())
```

## Live Smoke Test

List the first few devices on a real account:

```bash
ALISTE_USERNAME="+91xxxxxxxxxx" ALISTE_PASSWORD="your-password" \
uv run python scripts/test_live.py --action list
```

Toggle a specific device:

```bash
ALISTE_USERNAME="+91xxxxxxxxxx" ALISTE_PASSWORD="your-password" \
uv run python scripts/test_live.py --action toggle --device-id your-device-id
```

## 2.0 Migration Notes

- The minimum supported Python version is now 3.11.
- Packaging and local development use `uv` instead of Poetry.
- `await hub.connect(username, password)` replaces `hub.init(...)`.
- `async with AlisteHub()` or `await hub.close()` now manages HTTP and MQTT lifecycle cleanly.
