Metadata-Version: 2.5
Name: aioengieromania
Version: 0.1.0
Summary: Async client for MyENGIE România accounts: places, meters, invoices, payments and self-readings.
Project-URL: Source, https://github.com/coffeerunhobby/aioengieromania
Project-URL: Issues, https://github.com/coffeerunhobby/aioengieromania/issues
Author: coffeerunhobby
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: aiohttp>=3.9
Description-Content-Type: text/markdown

# aioengieromania

Async Python client for MyENGIE România accounts (the API behind the MyENGIE mobile
app). It powers the [ENGIE România](https://github.com/coffeerunhobby/ha-engie) Home
Assistant integration.

Unofficial; not affiliated with or endorsed by ENGIE.

## Usage

```python
import aiohttp
from aioengieromania import EngieClient

async with aiohttp.ClientSession() as session:
    client = EngieClient("user@example.com", "password", device_id="<a stable uuid>", session=session)
    for place in await client.async_get_places():
        point = await client.async_get_point(place)
        print(place.address, point.amount_due, [m.last_index for m in point.meters])
```

`device_id` identifies your client to ENGIE the way the app's device id does; keep it
stable per installation. Payments are per client rather than per place:
`await client.async_get_payments(place.pa)`.

`async_submit_index(point, meter, index)` reports a self-read meter index. ENGIE only
accepts it inside the meter's self-reading window (`meter.self_read_open(today)`);
a refusal raises `EngieRejectedError` carrying ENGIE's reason.

Errors: `EngieAuthError` (credentials rejected), `EngieConnectionError` (unreachable or
timed out), `EngieRejectedError` (a submission was refused), all subclasses of
`EngieError`.

## License

MIT
