Python client for L'eau d'Ile-de-France (SEDIF) water consumption data
Project description
pyeauidf
Python client for L'eau d'Île-de-France (SEDIF) water consumption data.
Fetches daily, weekly, or monthly water consumption history directly via the Salesforce Aura API — no browser or Selenium required.
Disclaimer
This integration relies on scraping the SEDIF customer portal. It is not based on an official API, so any change to the website's structure or authentication flow may break it without notice.
This integration was built with the help of Claude (Anthropic).
Home Assistant
A ready-to-use Home Assistant integration built on top of this library is available: ha_eauidf.
Installation
pip install .
Requires Python 3.10+ and requests.
Usage
CLI
# Last 7 days (default)
pyeauidf -u email@example.com -p password
# Custom number of days
pyeauidf -u email@example.com -p password --days 30
# Weekly aggregation
pyeauidf -u email@example.com -p password --days 90 --step weekly
# Credentials via environment variables
export EAUIDF_USERNAME=email@example.com
export EAUIDF_PASSWORD=password
pyeauidf
Python
from pyeauidf import EauIDFClient
from pyeauidf.client import TimeStep
from datetime import date, timedelta
with EauIDFClient("email@example.com", "password") as client:
client.login()
# Daily consumption (last 90 days by default)
records = client.get_daily_consumption()
for r in records:
print(f"{r.date:%Y-%m-%d}: {r.consumption_liters:.0f}L")
# Weekly or monthly
records = client.get_daily_consumption(time_step=TimeStep.WEEKLY)
# Custom date range
records = client.get_daily_consumption(
start_date=date(2026, 1, 1),
end_date=date(2026, 3, 1),
)
Data model
Each ConsumptionRecord contains:
| Field | Type | Description |
|---|---|---|
date |
datetime |
Timestamp of the reading |
consumption_liters |
float |
Water consumed (liters) |
meter_reading |
float |
Cumulative meter reading (m³) |
is_estimated |
bool |
Whether the value is estimated |
How it works
The library authenticates against the Salesforce Experience Cloud portal that powers L'eau d'Île-de-France, then calls the same Aura API endpoints that the website uses:
- Login via
LightningLoginFormController - Follow
frontdoor.jspto establish session cookies - Call Apex actions (
LTN015_ICL_ContratConsoHisto.getData) for consumption data
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 pyeauidf-0.1.1.tar.gz.
File metadata
- Download URL: pyeauidf-0.1.1.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbc60788aeff75374ed9f2ee15eec22e95f9a1b1816c388f1db4b2fcdd9be27f
|
|
| MD5 |
385a48adc0b350c082a0a585250c1acf
|
|
| BLAKE2b-256 |
3c97f3920551a6ce2f23b26c27162eaa1a1e76d2e3de95d5b5d2f9e8603f3932
|
Provenance
The following attestation bundles were made for pyeauidf-0.1.1.tar.gz:
Publisher:
publish.yml on TimoPtr/pyeauidf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyeauidf-0.1.1.tar.gz -
Subject digest:
cbc60788aeff75374ed9f2ee15eec22e95f9a1b1816c388f1db4b2fcdd9be27f - Sigstore transparency entry: 1052359317
- Sigstore integration time:
-
Permalink:
TimoPtr/pyeauidf@2785c0f91470a4c593f36739a39eabfc79d7c288 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/TimoPtr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2785c0f91470a4c593f36739a39eabfc79d7c288 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyeauidf-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pyeauidf-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
163fb1ad562b86c66629b5a83fc3107b7fdd3bd8fcbf2bfdc0c6c39d30f37c1c
|
|
| MD5 |
062c70a529f27e28c0bd66d80480cfe3
|
|
| BLAKE2b-256 |
54c554075f184e9b6e7a271417e3ffc6595959f5e2239c56c533c24bccfcbf3c
|
Provenance
The following attestation bundles were made for pyeauidf-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on TimoPtr/pyeauidf
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyeauidf-0.1.1-py3-none-any.whl -
Subject digest:
163fb1ad562b86c66629b5a83fc3107b7fdd3bd8fcbf2bfdc0c6c39d30f37c1c - Sigstore transparency entry: 1052359389
- Sigstore integration time:
-
Permalink:
TimoPtr/pyeauidf@2785c0f91470a4c593f36739a39eabfc79d7c288 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/TimoPtr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2785c0f91470a4c593f36739a39eabfc79d7c288 -
Trigger Event:
push
-
Statement type: