Bornes de recharge (IRVE) smart home integration, free and open source

Live availability of public EV charging stations near you in France (national open data, IRVE).
The live availability of public EV charging stations around your home, in France, from the national IRVE open data (Infrastructures de Recharge pour Véhicules Électriques): the static base of data.gouv.fr (address, operator, power, connectors) matched with the national consolidation of the real-time states of transport.data.gouv.fr. No account, no key.
Unofficial integration, not affiliated with the charging operators, data.gouv.fr or transport.data.gouv.fr. Developed without an electric car at hand: the data was checked live on 2026-10-22, but feedback is welcome.
What you get
- One device per station you add: free charge points, charge points, out of service, maximum power and data age.
- A widget "Charging stations": your stations on one row each, green when a point is free, red when everything is taken or out of service.
- Three scene triggers: a charge point becomes free, station all taken, station out of service.
- A scene action: find, among your stations, the nearest one with a free point, with a sentence ready to send.
Requirements
- Gladys Assistant 5.2.0 or later.
- A located house in Gladys (Settings → Houses, click on the map), or a position typed in the configuration.
- Internet access from Gladys. No account, no API key.
Installation
- In Gladys, open Integrations → Install from GitHub.
- Paste the address
https://github.com/guim31/gladys-irveand install. - The install screen asks for access to the position of your houses: it only serves to find the stations nearby. The position does not leave Gladys: only the search box is sent to the data.gouv.fr API.
Configuration
Settings
- House: the center of the search. Empty: the first located house.
- Other position (optional):
latitude, longitude, your workplace for example. It replaces the house. - Radius: 1, 2, 5, 10 or 20 km around the position (5 km by default). In a very dense area the radius is reduced automatically; the "Status" action says so.
- Minimum power and Connector: only the matching charge points are counted (a station of four points, two of them Combo CCS, counts 2 points with the "Combo CCS" filter). A station without any matching point is not offered.
- Other stations: station ids (
id_station_itinerance), separated by commas, wherever they are (20 at most). The Find a station action gives them. - Refresh: every 5, 10 (default) or 15 minutes.
- Language of names and messages: French by default. Feature names are fixed when the device is added.
Adding stations
Save the configuration: the stations of the circle that publish their live state appear in the Discover tab of the integration, nearest first (30 at most), together with the listed stations. Add the ones you use to Gladys: they are your followed stations. The widget, the triggers and the scene action only deal with them.
To follow a station far from home, run the Find a station action with a town or street name,
copy the id (FR…) into Other stations, save: it appears in Discover.
Checking
The Status action shows the position and radius used, the number of stations found and how many publish live data, the age of the last reading, the last error and the number of stations added.
Devices
Each station added becomes a read-only device:
| Feature | Value |
|---|---|
| Free charge points | points in service and free |
| Charge points | points of the station (matching the filters) |
| Out of service | points out of service |
| Maximum power | power of the most powerful point, in kW |
| Data age | minutes since the newest state published by the operator (7 days max.) |
An "occupied" or "reserved" point is neither free nor out of service; a point whose state is "unknown", or whose last state is more than 7 days old, is not counted anywhere. Without any point published live, only "Charge points" and "Maximum power" are updated.
Dashboard widget
The Charging stations widget shows one row per followed station (10 at most, or the ones picked in its settings): "2 / 4 free" in green, "all taken" or "out of service" in red, "0 / 4 free" in orange when the occupation of some points is unknown, and in grey "data out of date" (no state for 48 h), "no live data" or "no matching point".
Scene triggers
Each trigger can be limited to some stations (empty: any followed station) and gives the variables station name, address, free points, charge points, out of service, maximum power and distance (km).
- A charge point becomes free: the station has more free points than at the previous reading. The Station before field reacts only if it was all taken, or on the contrary if it already had a free point.
- Station all taken: every point in service is now taken.
- Station out of service: every point with a known state is out of service.
The triggers only compare two close readings: nothing fires when the data comes back after an outage, nor for a station whose data is out of date.
Scene action
Find the nearest free station: among your followed stations (all of them, or the ones picked),
the nearest to the configured position with a free point and recent data. Outputs: found (1 or
0), sentence (for example "TOULOUSE - 9 Boulevard d'Arcole: 2 free charge points out of 4, up to
22.1 kW, 0.7 km away."), station name, address, free points, charge points, maximum power, distance
in km. Use "Continue only if" with found = 1 before sending the sentence.
Scene examples
- Tell me when the charger of my street is free: trigger "A charge point becomes free", the station of your street, "Station before: was all taken"; action "Send a message" with the station name and the number of free points.
- Where to charge before leaving?: manual trigger or morning alarm; action "Find the nearest
free station", then "Continue only if"
found= 1, then sendsentenceas a message or have a speaker say it. - Warn me if the office station breaks down: trigger "Station out of service" on the office station; action "Send a message".
Data and refresh
- Static base: the national consolidation of data.gouv.fr (dataset "Base nationale des IRVE", updated daily), queried through the data.gouv.fr tabular API on the box around the circle, or by station ids: a few hundred rows instead of the whole file. Read once a day and on every configuration change.
- Dynamic data: the national IRVE dynamic consolidation of transport.data.gouv.fr (beta), built on every request from the feeds of the operators that publish one. About 125,000 charge points, 9 MB (1.6 MB compressed): the file is read line by line and only the points of your stations are kept in memory. Read at the chosen pace (10 minutes by default, about 230 MB a day).
- Coverage: many operators publish no live state yet. On 2026-10-22, in Toulouse, a little more than half of the public charge points had one; depending on the city, between a quarter and nine out of ten. Stations without live data are not offered.
- Age: the timestamp is the operator's, usually the last change of state. A quiet station may keep the same state for hours without the data being wrong: after 48 h without any change it is marked out of date; a point without news for more than 7 days is ignored.
- License: Licence Ouverte / Open Licence 2.0 (Etalab).
Troubleshooting
- Nothing in Discover: run Status. "No position": locate the house in Gladys or type a position. "0 with live data": the operators of your area publish no live state; widen the radius or relax the filters.
- Unknown station ids in Status: check the id with Find a station (the operator may have renamed the station).
- "Data out of date": the operator has published nothing for this station for 48 h.
- Error
tabular-api.data.gouv.frorproxy.transport.data.gouv.fr: the service is temporarily unavailable; the last values stay shown and the integration tries again at the next cycle. - Detailed logs with the variable
LOG_LEVEL=debug.
Limitations
- Open data, without guarantee: a "free" point may be taken by the time you arrive, and some operators publish wrong or old states.
- Only the public charging stations in France declared in the national IRVE base.
- No prices, no booking, no command: the integration only reads.
- Station names are the operators', sometimes in capitals or not very telling.
- The connector filter relies on the operator's declaration; the per-connector state is not used.
Credits
- Data: Base nationale des IRVE (data.gouv.fr, Etalab) and IRVE dynamic consolidation (transport.data.gouv.fr), Licence Ouverte 2.0.
- Integration written by guim31, under the Apache-2.0 license.
Configuration settings
These are the settings Bornes de recharge (IRVE) asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| How it works | section | No | The public charging stations around your house (or the ones you list) that publish their live state appear in the Discover tab. Add the ones you use to Gladys. No account, no key. |
| House | select | No | Center of the search. Empty: the first located house. |
| Other position (optional) | string | No | Latitude, longitude: replaces the house (your workplace, for example). |
| Radius | select | No | |
| Minimum power | select | No | Only charge points at least this powerful are counted. |
| Connector | select | No | |
| Other stations (ids) | string | No | Station ids, separated by commas, wherever they are: use the "Find a station" action below. |
| Refresh | select | No | |
| Language of names and messages | select | No | Feature names are fixed when a device is added. |
How to install Bornes de recharge (IRVE) in Gladys
- In Gladys, open Integrations: Bornes de recharge (IRVE) appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/guim31/gladys-irve:1.0.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/guim31/gladys-irve.
Bornes de recharge (IRVE) requires Gladys >=5.2.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
Bornes de recharge (IRVE) 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 guim31, not by the Gladys core team.
- Browse all integrations, native and community
- Build and publish your own external integration
- Source code on GitHub — source of this documentation