Skip to main content

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 aiohttp.

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

import asyncio
from pyeauidf import EauIDFClient
from pyeauidf.client import TimeStep
from datetime import date, timedelta

async def main():
    async with EauIDFClient("email@example.com", "password") as client:
        await client.login()

        # Daily consumption (last 90 days by default)
        records = await client.get_daily_consumption()
        for r in records:
            print(f"{r.date:%Y-%m-%d}: {r.consumption_liters:.0f}L")

        # Weekly or monthly
        records = await client.get_daily_consumption(time_step=TimeStep.WEEKLY)

        # Custom date range
        records = await client.get_daily_consumption(
            start_date=date(2026, 1, 1),
            end_date=date(2026, 3, 1),
        )

asyncio.run(main())

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:

  1. Login via LightningLoginFormController
  2. Follow frontdoor.jsp to establish session cookies
  3. Call Apex actions (LTN015_ICL_ContratConsoHisto.getData) for consumption data

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

pyeauidf-1.0.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyeauidf-1.0.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file pyeauidf-1.0.0.tar.gz.

File metadata

  • Download URL: pyeauidf-1.0.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyeauidf-1.0.0.tar.gz
Algorithm Hash digest
SHA256 eba25d7e895ac98d5173140f7d847a0c1f385fbdb0ef000f8846e1cc5635c853
MD5 cbf82162aad295ecc30e1b5b1147cb0c
BLAKE2b-256 c39e3dbbe2dee9c0025bffc063fd507874b93006a4ac12a5b8dc03ba46a53220

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeauidf-1.0.0.tar.gz:

Publisher: publish.yml on TimoPtr/pyeauidf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyeauidf-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyeauidf-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyeauidf-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 573be998756a3437983dd25ea074a324755c0f7d193ca6baf50f135d4525366a
MD5 096ea2030b833fbe6479527669073249
BLAKE2b-256 e4269b019ce7da4b405d484480dd73daed37ee89cac64687a374082e742fb8e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyeauidf-1.0.0-py3-none-any.whl:

Publisher: publish.yml on TimoPtr/pyeauidf

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page