Skip to main content

EGL - Veolia API (2024)

Deprecated version

This documentation details the technical implementation of the old konnector for EGL, using the Veolia API. A new version has been made based on the Efluid API, that planned to be released starting January 2025.

EGL repository, version v1.3.1.

This konnector fetches consumption measures from EGL API. The EGL API allows us to get a user's consumption data gathered by it's connected water meter "Téléo".

You should also check Cozy's official documentations for konnectors : https://docs.cozy.io/en/tutorials/konnector/getting-started/

Update or create data

This konnector updates data if it has changed since the last execution or creates a new entry if the data is new. It also updates month and year aggregates except for start month and start year to prevent overriding data if user has more than 3 years of data.

For this we use a combinaison of the hydrateAndFilter function and the updateOrCreate function.

Authentication

In order to authenticate to the EGL API we have to request the following route

Method : POST

Authentication Route : /connect.asp

"headers":
{
{
"AuthKey": "<your-auth-key>",
"Content-Type": "application/x-www-form-urlencoded"
}
}
"body":
{
"mode": "formdata"
{
"login": "<your-login>",
"pass": "<your-password>"
}
}

Once you've sent this request the API should answer with a code 100 if everything is ok and provides you a valid token and num_abt that you will use later in order to get data.

{
"codeRetour": 100,
"libelleRetour": "Connecté",
"resultatRetour": {
"num_abt": "toto",
"list_num_abt": ["toto", "tata"],
"token": "xxxxxxxxxxx"
}
}

Fetch Data

warning

The earliest data that can be fetched is November 2022 (not 3 years) due to migration from EGL to EPGL

In order to get data from the EGL API we have to request the following route :

Method : POST

Data Route : /getAllAgregatsByAbonnement.aspx


"body":
{
"mode": "formdata"
{
"token": "897555754A703055397897456568776E32704C3953514F5R",
"num_abt": 1895683,
"date_debut": "MM/DD/YYYY",
"date_fin": "MM/DD/YYYY"
}
}

The dates must be valid dates otherwise you'll get an error

The answer will provide you an array of data day by day with the value got by the water meter 'ValeurIndex' at this moment.

{
"codeRetour": 100,
"libelleRetour": "L'opération a réussi",
"resultatRetour": [
{
"DateReleve": "2020-07-01T00:00:00+02:00",
"TypeAgregat": "R",
"ValeurIndex": 562362
},
{
"DateReleve": "2020-07-02T00:00:00+02:00",
"TypeAgregat": "R",
"ValeurIndex": 562432
}
]
}

Daily data is calculated by subtracting current valeurIndex day with previous day.

TypeAgregats

  • "R" means the real value
  • "A" means an anomaly
  • "D" means a water meter changing
  • "V" means data has been estimated on a period
  • "X" marks the start and end of "V" estimated data
  • "T" means pending data

If you're looking for more information about the API, checkout the complete API documentation

Konnector Methods

MethodDescription
startInit Function
getDataRetrieve data from API
authenticateAuthentication method. Requires login, password, baseUrl and ApiAuthKey.
formatFormat data for DB storage and remove bad data (former "T" typeagregats remain in response even if the data was added later, leading to duplicated data)