External integration - "Fuel prices"

I’d love to, but I’m not at all « ripe » to understand everything!! I’m already trying to figure out how GitHub works…

It was the same for me not long ago :sweat_smile:
And by watching Pierre Gilles’ videos, I’m getting there little by little :winking_face_with_tongue:

@prohand
Is it possible to delete/hide stations that don’t have a particular fuel?
I’m on E85 and stations without E85 show this -:

• Système U - xxx (0.8 km) — E85 (Superethanol): -
• 5 ALLEE DE L’ECONOMIE - xxx (0.8 km) — E85 (Superethanol): 0.824 EUR/L
• TotalEnergies Access - xxx (6.7 km) — E85 (Superethanol): 0.839 EUR/L
• TotalEnergies - xxx (7.9 km) — E85 (Superethanol): 0.839 EUR/L
• Auchan - xxx (8.2 km) — E85 (Superethanol): 0.839 EUR/L
• Système U - xxx (8.5 km) — E85 (Superethanol): -
• TotalEnergies - xxx (8.9 km) — E85 (Superethanol): -
• Carrefour - xxx (9.0 km) — E85 (Superethanol): -
… +12

EDIT: My mistake, they don’t appear in Discovery, so perfect :wink:

Hello @prohand,

Thank you for this integration :heart_hands:

I do have a comment though: at least 4 stations are available around my place, but when I test the integration, none appear (though I don’t live in the middle of nowhere…):

[2026-08-10T07:39:25.435Z] [INFO] Starting the fuel prices integration...
[2026-08-10T07:39:26.839Z] [INFO] [gladys-sdk] connected to Gladys (http://172.30.0.1:8082)
[2026-08-10T07:39:27.143Z] [INFO] 0 station device(s) tracked
[2026-08-10T07:39:27.146Z] [WARN] No postal code configured yet: nothing to discover
[2026-08-10T07:39:27.149Z] [INFO] [refresh] Prices will be refreshed every 3600s
[2026-08-10T07:41:07.825Z] [INFO] onConfigUpdated -> new configuration received
[2026-08-10T07:41:07.827Z] [INFO] [refresh] Prices will be refreshed every 3600s
[2026-08-10T07:41:08.278Z] [WARN] [provider-fr] No station found in postal code 67750: cannot widen the search around it
[2026-08-10T07:41:08.338Z] [INFO] [devices] Discovery: 0 station(s) around 67750, 1 device(s) published for Diesel, SP95, SP98, E10 (SP95-E10)
[2026-08-10T07:41:10.772Z] [WARN] [provider-fr] No station found in postal code 67750: cannot widen the search around it

In doubt, the integration was restarted, but no improvement…

Any ideas?

Thanks in advance,

Have a nice day,

Jean

Thanks for reporting the issue.

The new version 1.0.3 that just came out should fix your problem
I also took the opportunity to fix a bug I was encountering as well and here is Claude’s feedback on the fix:

XXXXX — no stations, regardless of radius

The center of the search circle was the average position of stations with this postal code. « NOM VILLE » has none in the national feed → no center → src/countries/france.js:125 simply skipped the « radius » step. Increasing the radius couldn’t change anything: there was no circle to expand.

When the feed doesn’t know the location of the postal code, it is now geocoded via the National Address Database (src/countries/franceGeocode.js, official, no key). Best effort and cached, in the spirit of franceNames.js: an unreachable geocoder costs stations around the postal code, never those that are inside.

XXXXX — only certain stations (NOM STATION)

The radius query was limited to 300 records, and the API responds to within_distance in the order of the dataset — that is, by station ID, that is, by postal code. A truncated circle therefore does not lose the furthest stations, it loses the highest postal codes: around Lyon, XXXXX and XXXXX fall after 69000/69100. And increasing the radius worsened the problem, by adding competitors to the same truncated response.

The search now goes through concentric circles starting from 5 km, doubling until the configured radius, and stops at the first complete circle containing at least limit stations — this circle then necessarily contains the closest ones. In the city it’s also cheaper than before: a query from a small circle instead of three pages of a large one.

Hello,

I have indeed selected two fuels SP95 and SP98, but I only have one SP98 device and one price.

Not a big deal in itself as at Total it’s the same for now except they are out of 98 and correctly display ‹ no recent value ›, which makes sense. I assume that if I had SP95, I would have a device value.

Could you send me your postal code in a private message please so I can reproduce it :slightly_smiling_face:

93160

Total energy avenue Médéric where I usually go…

Thanks :wink:

Here’s Claude’s feedback: (I also fixed an issue reported directly on Github at the same time)

Issue #10 — « Cloud » tag

  • The Local/Cloud tag comes from the transports field in the manifest (verified in the Gladys frontend: IntegrationCategory.jsx → integration.cloud ← manifest.transports).
  • Added "transports": ["cloud"] in gladys-assistant-integration.json.
  • local not declared on purpose: it would display the « Prefer local connection (LAN) » toggle, which is not relevant here.
  • Manifest validated against the store indexer’s schema → valid: true. Test added in test/manifest.test.js.

SP95 invisible on TotalEnergies

This is not a code bug, it’s the data. Verified live on open data:

  • 4835 stations publish a SP98 price and no SP95 price.
  • Provider test on 92100/Paris: all TotalEnergies have sp95=null, sp98/e10 filled.
  • TotalEnergies have replaced SP95 with E10 (SP95-E10). As a (station, fuel) pair without a price is never published, no SP95 device is offered.

What I changed to make it not look like a bug:

  • « Preview nearby stations »: SP95: not sold instead of a simple -, in FR and EN (with the space before the colon in French).
  • If no found station sells a checked fuel: a line announces it and suggests E10 as a replacement for SP95.
  • Note added in the description of the « Fuel type » field and in docs/fr.md / docs/en.md (Troubleshooting section).

Available in version 1.0.5

OK I’ve installed version 1.0.5;

I’ll wait for the situation to change because what’s in my station list has evolved and the three total would be out of fuel…

Actually, you need to select SP95-E10 in the configuration section in addition to SP95, as Total only sells SP95-E10.

OK but this evening I added diesel here is the preview copy…

3 station(s) around 93160:
• TotalEnergies - Noisy-le-Grand (0.4 km) — Diesel: not sold, SP98: not sold, E10 (SP95-E10): not sold
• TotalEnergies - Noisy-le-Grand (1.2 km) — Diesel: 2.250 EUR/L, SP98: not sold, E10 (SP95-E10): not sold
• TotalEnergies - Noisy-le-Grand (1.6 km) — Diesel: 2.250 EUR/L, SP98: not sold, E10 (SP95-E10): not sold

None of these stations sell SP98.
None of these stations sell E10 (SP95-E10).

Actually if out of stock the display of ‹ no recent value › for SP98 was correct because I went by yesterday afternoon and the price was 9.999 (out of stock).

This is fixed in version 1.0.6:

What it does

  • The name remains short as long as it is unique: Esso - Noisy-le-Grand - Diesel.
  • If two stations have the same sign and the same town, the street is inserted:
    • TotalEnergies - 33 Av. Médéric - Noisy-le-Grand - Diesel
    • TotalEnergies - 104/106 AV MEDERIC - Noisy-le-Grand - Diesel
  • If even the street is identical (motorway service area, 2 directions), the national ID is added at the end.
  • The street is abbreviated (Avenue → Av., Boulevard → Bd, Route → Rd…) and cut to 28 characters.

Limitation to know
The 2 devices already created keep their current name (Gladys never rewrites a chosen/existing name). Two options:

  1. rename them manually in Devices (the simplest, keeps the history);
  2. delete them and add them again from Discovery → new detailed name, but price history lost.

I just set up 1.0.6.

Renamed manually: OK, it’s done, very well.

New preview:

3 station(s) around 93160:
• TotalEnergies - Rue du Centre Centre Reg… - Noisy-le-Grand (0.4 km) — Diesel: 2.250 EUR/L, SP98: 1.990 EUR/L, E10 (SP95-E10): 1.990 EUR/L
• TotalEnergies - 33 Av. Médéric - Noisy-le-Grand (1.2 km) — Diesel: 2.250 EUR/L, SP98: not sold, E10 (SP95-E10): not sold
• TotalEnergies - 104/106 AV MEDERIC - Noisy-le-Grand (1.6 km) — Diesel: not sold, SP98: not sold, E10 (SP95-E10): not sold

Add the ones you want from the Discovery tab.

Personally, I have two TotalEnergies in the same street, which is good for testing.

The Mont d’est station has SP98.

This would mean that a device can only be constituted if the fuel is available, so in the current period it is necessary to scan regularly to obtain all the devices.

I continue to monitor…

This has been fixed in 1.0.7 :slight_smile: :

The issue

  • The feed does not publish prices in two cases: the station does not sell this fuel, or it is out of stock. The integration read both as « not sold ».
  • Verified on your stations: 93160001 and 93160009 (Noisy-le-Grand) are temporarily out of stock on diesel/SP98/E10 — not « not sold ».

What has changed

  • Reading stockouts from the feed: columns sp98_rupture_type/_start (v2) and nested rupture table (old model). temporary (or empty type) → out of stock; definitive → not sold; a published price always takes precedence.
  • New src/availability.js: 3 states per fuel (available / out_of_stock / not_sold).
  • Discovery: a station that is out of stock is now offered (the price returns with the truck), no need to go back to Discovery.
  • Device: the text feature displays « Out of stock since 18/09/2026 at 08:09 », the last known price remains on the curve.
  • « Search for stations » button: « SP98: out of stock » instead of « SP98: not sold », and the note « no station sells… » becomes a stockout note when applicable.
  • FR/EN Docs + CLAUDE.md updated.

Version 1.0.7:

3 station(s) around 93160:
• TotalEnergies - Rue du Centre Centre Reg… - Noisy-le-Grand (0.4 km) — Diesel: 2.250 EUR/L, SP98: out of stock, E10 (SP95-E10): out of stock
• TotalEnergies - 33 Av. Médéric - Noisy-le-Grand (1.2 km) — Diesel: out of stock, SP98: out of stock, E10 (SP95-E10): out of stock
• TotalEnergies - 104/106 AV MEDERIC - Noisy-le-Grand (1.6 km) — Diesel: out of stock, SP98: out of stock, E10 (SP95-E10): not sold

SP98 is out of stock at all these stations: the pumps are available, the price will return with the fuel.
E10 (SP95-E10) is out of stock at all these stations: the pumps are available, the price will return with the fuel.

Add the ones you want from the Discovery tab.

Much more readable… great.

However, E10 (SP95-E10) not sold at 104/106 avenue Médéric surprises me. I’ll go check in person.

I’ll keep following up

Yes, please keep me updated if you find a bug :wink:

Thanks

Good evening @prohand and thank you for this very useful integration at this time.

I noticed that a room needs to be specified for each product per station. Is it planned to find the information in a dashboard?

I don’t understand what you mean by « a room for each product per station »

V2 comes with widgets but there’s apparently a bug that I just posted on the forum:

Version 2.0.5 is out with widgets, triggers, and actions :slight_smile: