Metadata-Version: 2.4
Name: pyhidromotic
Version: 0.1.0
Summary: Python client for Hidromotic CHI Smart irrigation controllers
Author-email: bulju <bulju@users.noreply.github.com>
License: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/bulju/pyhidromotic
Project-URL: Bug Tracker, https://github.com/bulju/pyhidromotic/issues
Project-URL: Repository, https://github.com/bulju/pyhidromotic
Keywords: hidromotic,irrigation,smart home,home assistant
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
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: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp>=3.8.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Dynamic: license-file

# pyhidromotic

Python client for Hidromotic CHI Smart irrigation controllers.

## Installation

```bash
pip install pyhidromotic
```

## Usage

```python
import asyncio
from pyhidromotic import HidromoticClient

async def main():
    # Create client
    client = HidromoticClient("192.168.1.100")

    # Connect to device
    if await client.connect():
        # Wait for initial data
        await asyncio.sleep(2)

        # Get zones
        zones = client.get_zones()
        print(f"Found {len(zones)} zones")

        # Turn on zone 0
        await client.set_zone_state(0, True)

        # Check auto irrigation status
        if client.is_auto_riego_on():
            print("Auto irrigation is enabled")

        # Disconnect
        await client.disconnect()

asyncio.run(main())
```

## Features

- WebSocket-based communication with Hidromotic devices
- Support for CHI Smart and CHI Smart Mini models
- Control irrigation zones and tanks
- Enable/disable automatic irrigation
- Real-time status updates via callbacks
- Automatic reconnection on connection loss

## Supported devices

- Hidromotic CHI Smart (12 outputs)
- Hidromotic CHI Smart Mini (6 outputs)

## License

GPL-3.0-or-later
