Energy contracts: EDF Zen Week-End added, and the question of weekend rates

Hello everyone, hello @pierre-gilles

I just opened a PR and an issue about consumption tracking, and since the topic goes beyond my personal case, it’s better to discuss it here.

The context. I just got a Lixee TIC, so I’m starting to track my consumption.
I’m with EDF on the Zen Week-End offer, with Off-Peak + WE option. During the week, it’s classic HP/HC (for me 4:30-8:30 and 12:30-16:30), but Saturday, Sunday, and public holidays are at the reduced rate all day, including peak hours. I wanted to add this contract to the energy-contracts repository, and I hit a wall.

The problem. Gladys doesn’t know how to represent a rate that depends on the day of the week. The hour_slots field is a list of half-hours applied identically to all days, and the contract types are limited to base, peak-off-peak, and edf-tempo. There is simply no « day » axis in the data model.

This is not an isolated case: Engie (Elec Week-end), OHM Energy (Evening & Week-End), Enercoop (Night & Week-End Flexibility), and Électricité de Strasbourg all offer the equivalent. It’s the standard commercial response to the reform of off-peak hours launched by the CRE and Enedis, so these offers are more likely to multiply than disappear.

What I did anyway. I submitted the contract as a simple peak-off-peak, dropping the weekend advantage: energy-contracts#16. The rates come from the official EDF grid of August 1, 2026 (22.60 c€/kWh in HP week, 16.92 in HC), and the 8 powers from 6 to 36 kVA are covered.

I prefer to be transparent about what it’s worth: the approximation overestimates the bill by about 5.5% for a flat consumption profile, and much more if you deliberately shift your heavy usage to the weekend — which is exactly what the offer encourages. The bias is systematic and always in the same direction; it doesn’t compensate over time. It’s better than nothing, but it’s not fair.

The real question. I opened Gladys#2999 to propose adding this dimension. Three approaches are described there, the one that seems most economical to me: extending day_type with values derived from the calendar (weekend, holiday, weekday) rather than imported. The mechanism already exists for Tempo, except that here the value is calculated instead of coming from RTE. Bonus, it would also cover offers like « + 1 day of your choice in the week » type Zen Week-End Plus.

It remains to be decided on the source of public holidays — the jours-feries API of api.gouv.fr, or a small static table. Note that these offers generally only retain national public holidays, excluding Alsace-Moselle specifics.

What I’m looking for. First, to know if others are concerned — if you’re on one of these offers, say so, it will help gauge the interest. Then, an opinion from the maintainers on the direction: I’m willing to do the PR on the Gladys core, but I prefer a green light on the approach before writing code, because it touches constants.js, server validation, the time slot selector in the front end, and translations.

Thanks! (and let’s thank Claude by the way ^^)

Great topic requesting features :wink:

Thanks @guim31 for the investigation and for your message :grinning_face_with_smiling_eyes:

I replied on GitHub. In my opinion, this feature should be implemented as an external integration rather than in the core of Gladys.

The API is still missing to enable this use case. If you’re up for it, I’d be happy if you created a feature request to add this possibility :slightly_smiling_face:

Got it, I’ll take care of it quickly.