Metadata-Version: 2.5
Name: zendure
Version: 0.1.0
Summary: Async local-network client for Zendure energy devices over the zenSDK HTTP protocol (no cloud, no app token).
Project-URL: Homepage, https://github.com/Zendure/zendure
Project-URL: Issues, https://github.com/Zendure/zendure/issues
Author: Zendure
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: energy,home-assistant,solarflow,zendure,zensdk
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Home Automation
Classifier: Typing :: Typed
Requires-Python: >=3.14.2
Requires-Dist: aiohttp>=3.9
Requires-Dist: yarl>=1.25.1
Provides-Extra: dev
Requires-Dist: mypy>=1.11; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Description-Content-Type: text/markdown

# zendure

Async Python client for Zendure energy devices over the local-network **zenSDK
HTTP** protocol — no cloud, no MQTT, no app token.

The device is reached directly on the LAN: `GET /properties/report` to read all
state, `POST /properties/write` to control it. This library is standalone and
**never imports `homeassistant`**; a thin Home Assistant integration consumes it
in a later phase.

## Status

Early development. First target model: **Max 5000 Pro** (`product =
SolarFlowMax5000Pro`), read + control. Protocol values are derived from a real
device report and the public zenSDK docs; items not yet checked on a Max 5000
Pro are marked *candidate* in the catalog and locked by tests until verified.

## Requirements

- Python 3.14.2+
- The device must already be added to HEMS (its local HTTP interface is then on)

## Development

```bash
uv pip install -e ".[dev]"
ruff format --check .
ruff check .
mypy
pytest
```

## License

Apache-2.0. See [LICENSE](LICENSE).
