Async Python client for the mijn.ista.nl energy portal
Project description
mijn-ista-api
Async Python client for the mijn.ista.nl energy monitoring portal.
Installation
pip install mijn-ista-api
Requirements
- Python 3.12+
- aiohttp 3.9+
Usage
import asyncio
import aiohttp
from mijn_ista_api import MijnIstaAPI, MijnIstaAuthError, MijnIstaConnectionError
async def main():
async with aiohttp.ClientSession() as session:
api = MijnIstaAPI(session, "you@example.com", "your-password", lang="nl-NL")
# Authenticate (obtains JWT)
await api.authenticate()
# Fetch account + annual comparison data
user_data = await api.get_user_values()
for cus in user_data.get("Cus", []):
cuid = cus["Cuid"]
print(cus.get("Adress"), cus.get("City"))
# Full monthly history (polls until all shards are loaded)
month_data = await api.get_month_values(cuid)
# Building averages for the current billing year
periods = cus.get("curConsumption", {}).get("BillingPeriods", [])
if periods:
p = sorted(periods, key=lambda x: x["y"], reverse=True)[0]
avg_data = await api.get_consumption_averages(
cuid, p["s"][:10], p["e"][:10]
)
asyncio.run(main())
API overview
| Method | Endpoint | Description |
|---|---|---|
authenticate() |
POST /api/Authorization/Authorize |
Obtain JWT |
get_user_values() |
POST /api/Values/UserValues |
Account info, annual comparison |
get_month_values(cuid) |
POST /api/Consumption/MonthValues |
Full monthly history (auto-polls shards) |
get_consumption_values(cuid, billing_period) |
POST /api/Values/ConsumptionValues |
Meter totals for one billing year |
get_consumption_averages(cuid, start, end) |
POST /api/Values/ConsumptionAverages |
Building-wide normalised averages |
Error handling
from mijn_ista_api import MijnIstaAuthError, MijnIstaConnectionError
try:
await api.authenticate()
except MijnIstaAuthError:
# Bad credentials
...
except MijnIstaConnectionError:
# Network error or API unavailable
...
Notes
- The JWT is passed in the request body, not as an
Authorizationheader. - Every API response returns a refreshed JWT; the client handles this automatically.
get_month_valuespolls until the server has loaded all data shards (the API streams results).- Transient
425 Too Early/503 Service Unavailableresponses are retried with exponential backoff.
Home Assistant integration
This library powers the ista Nederland Home Assistant custom integration.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mijn_ista_api-0.1.6.tar.gz
(5.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mijn_ista_api-0.1.6.tar.gz.
File metadata
- Download URL: mijn_ista_api-0.1.6.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f1f3afee0a1564ee65196329a90f40b7bb42e3b8075ed43c9960314d4996a4e
|
|
| MD5 |
af1ac41a9a22b5588f2b0f7fec6f2744
|
|
| BLAKE2b-256 |
243d05b5a3275d6706807fbd2da5a6237544fb6d3a8b972d0c86bd871167a889
|
File details
Details for the file mijn_ista_api-0.1.6-py3-none-any.whl.
File metadata
- Download URL: mijn_ista_api-0.1.6-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65d53eebddedfae42d9a0972a29b7cf712ec284d8f1f06b020b4f39c0eff6f95
|
|
| MD5 |
e2abe3a71d3f7dae106554b29a590893
|
|
| BLAKE2b-256 |
d3e3483c1e4c9ed1eb247162d82deedd5e9330995ede477925f570366ca8a268
|