Skip to main content

ENTSO-E smart home integration, free and open source

ENTSO-E integration for Gladys Assistant

Unofficial connector: ENTSO-E day-ahead electricity prices for Europe, per kWh.

Unofficial connector, not affiliated with ENTSO-E. It reads the day-ahead electricity prices of one European bidding zone on the ENTSO-E Transparency Platform, the public data platform of the European transmission system operators, with a free personal security token.

Never tested with a real token. This first version was built and tested against recorded-shape answers only (no ENTSO-E account was available). Please report what you see in the forum thread or in a GitHub issue.

What you get​

One device, ENTSO-E <zone>, with these sensors (prices in EUR/kWh):

SensorContent
Current pricethe price of the current period (15 or 60 minutes)
Next period pricethe price of the period that follows
Today's lowest / highest / averageover the periods of your local day (the average weighs each period by its length)
Today's cheapest period (start)HH:MM local time of the cheapest period of today
Tomorrow's lowest priceonce tomorrow is published (usually 12:45–13:30 Brussels time)
Tomorrow's cheapest period (start)HH:MM, or --:-- while tomorrow is not published
Rank of the current period0 = the cheapest period of the day, 95 the dearest (99 on the autumn DST day)

The rank is handy in scenes: "if the rank is below 16" means "during the 16 cheapest quarter hours of the day" (four hours). Equal prices share a rank (the rank counts the strictly cheaper periods), so more than 16 periods can be "below 16" on a day with ties.

Tomorrow's lowest price keeps its previous value until tomorrow's prices are published (a number cannot be "unknown" in Gladys): rely on "Tomorrow's cheapest period", which shows --:-- meanwhile. In a timezone west of Brussels (Lisbon, London, Canaries), the last local hour of a day belongs to the next market day: tomorrow's figures cover the hours already published.

Prices are wholesale prices. Your supplier adds its margin, the grid fees and the taxes. Two options bring them closer to your bill: fixed fees (EUR/kWh, added to the spot price) and VAT (%, applied to the sum): price = (spot ÷ 1000 + fees) × (1 + VAT ÷ 100). A negative spot price stays negative unless the fees exceed it.

Get a free security token​

  1. Create an account on the Transparency Platform (Login → Register), and confirm your e-mail address.
  2. Send an e-mail to [email protected] with the subject "Restful API access" and, in the body, the e-mail address of your account. ENTSO-E enables API access by hand, usually within a few working days.
  3. Once it is enabled, log in, open My Account Settings, and under Web API Security Token click Generate a new token. Copy the token (it looks like 1d9cd4bd-f8aa-476c-8cc1-3442dc91506d).

The token is personal and free; ENTSO-E allows 400 requests a minute, this integration makes a few a day.

Installation​

  1. Install the integration, paste the token in ENTSO-E security token, pick your bidding zone (France by default), and save.
  2. Press Read the prices now: the current price and today's average are shown under the button.
  3. Open Discovery and add the device ENTSO-E <zone>.

About the token: Gladys keeps it in its database (in clear, masked in the interface, and in its backups), never shows it again, and the integration only sends it to ENTSO-E (web-api.tp.entsoe.eu). The platform wants it in the address of the request, so the integration never logs an address.

Options​

OptionDefaultUse
Bidding zoneFR40 zones (France, Belgium, Germany/Luxembourg, Italy, Nordics, …). Changing it creates a new device; delete the old one.
VAT (%)00 to 50
Fixed fees0 EUR/kWh0 to 1
Gladys timezoneEurope/Paristhe timezone of your Gladys (Settings → System), as an IANA name. It sets where a day starts and the times shown. An unknown name falls back to Europe/Paris.

When prices are read​

  • At start: today and tomorrow (one request).
  • Tomorrow is asked from 13:00 Brussels time (the auction clears at noon), then again after 10, 20, 30 and every 60 minutes until it is published. The next reading is at 13:00 the day after.
  • In between, the sensors move every quarter hour from the prices in memory, without any network call. At midnight, tomorrow becomes today.
  • A reconnection to Gladys (the container keeps running) keeps the prices, the 429 pause, a refused token and the waiting time after an error, and does not read again when today and tomorrow are known. A restart of the container starts afresh: it reads once.
  • Saving the configuration reads at once, even with the same token after a refusal (one request).

Errors​

SituationWhat happens
Token refused (401)readings stop and the status says so; the last prices stay shown. Fix the token (or wait for ENTSO-E to enable your API access), then save the configuration or press Read the prices now.
Too many requests (429)every reading, the button included, waits for the delay ENTSO-E gives (one minute to six hours; ten minutes when none is given).
ENTSO-E down (5xx), network errornew attempt after 5, 15, 30, then every 60 minutes; the last prices stay shown.
No price for the zonethe status says so; asked again every hour.

How the data is read​

The integration asks the A44 document (day-ahead prices, contract type A01). Since 1 October 2025 the European day-ahead market uses 15-minute periods; older or other answers in 60-minute periods are read as well. In a "variable sized blocks" curve (A03), a period missing in the answer repeats the price before it (the ENTSO-E rule); in other curves a missing period stays without price. The 23- and 25-hour days of the clock changes are handled. The answer is read with a bounded, linear parser and refused beyond 256 KB.

Limits​

  • One zone per installation of the integration.
  • No scene trigger, widget or energy contract in this version.
  • Prices in EUR/MWh only: a zone ENTSO-E would price otherwise is reported in the status ("not priced in EUR/MWh") and asked again every six hours.
  • Never tested with a real ENTSO-E token (see the top of this page).

The parsing logic is ported from JaccoR/hass-entso-e (Apache-2.0).

Configuration settings​

These are the settings ENTSO-E asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
ENTSO-E day-ahead pricessectionNoUnofficial connector, not affiliated with ENTSO-E. It reads the day-ahead prices of one European bidding zone on the ENTSO-E Transparency Platform with your free security token: one device with the current and next price per kWh, the lowest, highest and average price of the day, the cheapest period of today and tomorrow, and the rank of the current period. Wholesale prices: your supplier adds its margin, the grid fees and the taxes; the VAT and fixed fees below are added for you.
ENTSO-E security tokensecretYesKept by Gladys in its database (in clear, masked in the interface), never shown again, and only sent to ENTSO-E.
Bidding zoneselectYesThe day-ahead market zone of your meter. Changing it creates a new device.
VAT (%)numberNoAdded to every price: (spot + fixed fees) × (1 + VAT). 0 keeps the wholesale price.
Fixed fees (EUR/kWh)numberNoAdded to the spot price of every kWh before VAT (supplier margin, grid fees, taxes).
Gladys timezonestringNoThe timezone of your Gladys (Settings → System): it sets the days and the times shown. IANA name, e.g. Europe/Brussels.

How to install ENTSO-E in Gladys​

  1. In Gladys, open Integrations: ENTSO-E appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/lm1lc3n7/gladys-entsoe:0.1.2), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/LM1LC3N7/gladys-entsoe.

ENTSO-E requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

ENTSO-E is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by LM1LC3N7, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂