Intégration externe - "Prix carburants"

J’aimerais bien, mais je ne suis pas du tout « mûr » pour tout comprendre !! J’essaye déjà de comprendre comment fonctionne github …

Il y a quelques temps c’était pareil pour moi :sweat_smile:
Et à force de regarder les vidéos de Pierre Gilles j’y arrive petit à petit :winking_face_with_tongue:

@prohand
c’est possible de supprimer/occulter les stations qui n’ont pas un carburant en particulier ?
Je suis à l’E85 et des stations sans E85 m’affichent ça -:

• 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 : au temps pour moi, elles ne se retrouvent pas dans Découverte, donc parfait :wink:

Bonjour @prohand ,

Merci pour cette intégration :heart_hands:

J’ai toutefois une remarque : au moins 4 stations sont disponibles autours de chez moi, mais lorsque je fais un test en bas d’intégration, aucune n’apparait (je n’habite toutefois pas au milieu de nulle-part …) :

[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

Dans le doute, l’intégration a été redémarrée, mais dans amélioration …

Une idée ?

Merci par avance,

Belle journée,

Jean

Merci pour la remontée du problème.

La nouvelle version 1.0.3 qui vient de sortir doit corriger ton problème
J’en ai d’ailleurs profiter pour corriger un bug que je rencontrais également et voici le retour de Claude sur la correction :

XXXXX — aucune station, quel que soit le rayon

Le centre du cercle de recherche était la position moyenne des stations portant ce code postal. « NOM VILLE » n’en a aucune dans le flux national → pas de centre → src/countries/france.js:125 sautait purement et simplement l’étape « rayon ». Agrandir le rayon ne pouvait rien changer : il n’y avait pas de cercle à agrandir.

Quand le flux ne sait pas situer le code postal, il est maintenant géocodé via la Base Adresse Nationale (src/countries/franceGeocode.js, officiel, sans clé). Best effort et mis en cache, dans l’esprit de franceNames.js : un géocodeur injoignable coûte les stations autour du code postal, jamais celles qui sont dedans.

XXXXX — certaines stations seulement (NOM STATION)

La requête par rayon était plafonnée à 300 enregistrements, et l’API répond à within_distance dans l’ordre du jeu de données — c’est-à-dire par id de station, c’est-à-dire par code postal. Un cercle tronqué ne perd donc pas les stations les plus lointaines, il perd les codes postaux les plus élevés : autour de Lyon, XXXXX et XXXXX tombent après 69000/69100. Et augmenter le rayon aggravait le problème, en ajoutant des concurrents à la même réponse tronquée.

La recherche parcourt maintenant des cercles concentriques à partir de 5 km, en doublant jusqu’au rayon configuré, et s’arrête au premier cercle complet contenant au moins limit stations — ce cercle contient alors nécessairement les plus proches. En ville c’est aussi moins cher qu’avant : une requête d’un petit cercle au lieu de trois pages d’un grand.

Bonjour,

J’ai bien coché deux carburants SP95 et SP98 mais je n’ai qu’un appareil SP98 et une seul prix.

Pas grave en soi car chez Total c’est pour l’instant idem sauf qu’ils sont en manque de 98 et affiche bien ‹ pas de valeur récente ›, logique. Je suppose que si j’avais SP95 j’aurais une valeur d’appareil.

Tu peux m’envoyer ton code postal en MP stp pour que je reproduise :slightly_smiling_face:

93160

Total energie avenue Médéric où je me sers habituellement…

Merci :wink:

Voici le retour de Claude : (J’en en même temps corrigé une issue remonté directement sur Github)

Issue #10 — tag « Cloud »

  • Le tag Local/Cloud vient du champ manifeste transports (vérifié dans le front Gladys : IntegrationCategory.jsx → integration.cloud ← manifest.transports).
  • Ajouté "transports": ["cloud"] dans gladys-assistant-integration.json.
  • local non déclaré exprès : ça afficherait le toggle « Préférer la connexion locale (LAN) », sans objet ici.
  • Manifeste validé contre le schéma de l’indexeur du store → valid: true. Test ajouté dans test/manifest.test.js.

SP95 invisible sur les TotalEnergies

Ce n’est pas un bug de code, c’est la donnée. Vérifié en direct sur l’open data :

  • 4835 stations publient un prix SP98 et aucun prix SP95.
  • Test du provider sur 92100/Paris : toutes les TotalEnergies ont sp95=null, sp98/e10 remplis.
  • Les TotalEnergies ont remplacé le SP95 par le E10 (SP95-E10). Comme une paire (station, carburant) sans prix n’est jamais publiée, aucun appareil SP95 n’est proposé.

Ce que j’ai changé pour que ça ne ressemble plus à un bug :

  • Aperçu « Prévisualiser les stations proches » : SP95 : non vendu au lieu d’un simple -, en FR et EN (avec l’espace avant les deux-points en français).
  • Si aucune station trouvée ne vend un carburant coché : une ligne l’annonce et propose E10 comme remplaçant du SP95.
  • Note ajoutée dans la description du champ « Type de carburant » et dans docs/fr.md / docs/en.md (section Dépannage).

Dispo dans la version 1.0.5

OK j’ai mis la version 1.0.5;

je vais attendre que la situation change car ce qui est dans ma liste des stations a évolué et les trois total seraient à sec…

En fait il faut que tu selectionnes SP95-E10 dans la partie configuration en plus de SP95 car Total ne vends que du SP95-E10

OK mais ce soir j’ai ajouté gazole voici la copie de la prévisualisation…

3 station(s) autour de 93160 :
• TotalEnergies - Noisy-le-Grand (0.4 km) — Gazole : non vendu, SP98 : non vendu, E10 (SP95-E10) : non vendu
• TotalEnergies - Noisy-le-Grand (1.2 km) — Gazole : 2.250 EUR/L, SP98 : non vendu, E10 (SP95-E10) : non vendu
• TotalEnergies - Noisy-le-Grand (1.6 km) — Gazole : 2.250 EUR/L, SP98 : non vendu, E10 (SP95-E10) : non vendu

Aucune de ces stations ne vend du SP98.
Aucune de ces stations ne vend du E10 (SP95-E10).

En fait si à sec l’affichage de ‹ pas de valeur récente › pour le SP98 était bon car je suis passé hier après-midi et le prix était 9.999 (à sec). Il est vrai qu’entre temps j’ai réinstallé …

Par ailleurs lorsqu’il y a deux Total :

Carburants

TotalEnergies - Noisy-le-Grand - SP98 (Texte) 20/09/2026 à 00:01
TotalEnergies - Noisy-le-Grand - Diesel (Monnaie) 2.25 €
TotalEnergies - Noisy-le-Grand - Diesel (Monnaie) 2.25 €

Rien ne les distingue au premier abord. Sauf à aller dans les paramètres techniques des appareils.

C’est corrigé dans la version 1.0.6 :

Ce que ça fait

  • Le nom reste court tant qu’il est unique : Esso - Noisy-le-Grand - Gazole.
  • Si deux stations ont la même enseigne et la même commune, la rue est insérée :
    • TotalEnergies - 33 Av. Médéric - Noisy-le-Grand - Gazole
    • TotalEnergies - 104/106 AV MEDERIC - Noisy-le-Grand - Gazole
  • Si même la rue est identique (aire d’autoroute, 2 sens), l’ID national est ajouté à la fin.
  • La rue est abrégée (Avenue → Av., Boulevard → Bd, Route → Rte…) et coupée à 28 caractères.

Limite à connaître
Les 2 appareils déjà créés gardent leur nom actuel (Gladys ne réécrit jamais un nom choisi/existant). Deux options :

  1. les renommer à la main dans Appareils (le plus simple, garde l’historique) ;
  2. les supprimer et les rajouter depuis Découverte → nouveau nom détaillé, mais historique de prix perdu.

Je viens de mettre en place 1.0.6.

Renommé à la main : OK c’est fait, très bien.

Nouvelle prévisualisation :

3 station(s) autour de 93160 :
• TotalEnergies - Rue du Centre Centre Reg… - Noisy-le-Grand (0.4 km) — Gazole : 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) — Gazole : 2.250 EUR/L, SP98 : non vendu, E10 (SP95-E10) : non vendu
• TotalEnergies - 104/106 AV MEDERIC - Noisy-le-Grand (1.6 km) — Gazole : non vendu, SP98 : non vendu, E10 (SP95-E10) : non vendu

Ajoutez celles que vous voulez depuis l’onglet Découverte.

Perso j’ai deux Total Energie dans la même rue, c’est bon pour les tests.

La station Mont d’est a du SP98.

Ce qui signifierait qu’un appareil ne peut être constitué que si le carburant est dispo, donc dans la période actuelle il convient de scanner régulièrement pour obtenir la totalité des appareils.

Je continue de veiller …

C’est corrigé en 1.0.7 :slight_smile: :

Le problème

  • Le flux ne publie pas de prix dans deux cas : la station ne vend pas ce carburant, ou elle est en rupture. L’intégration lisait les deux comme « non vendu ».
  • Vérifié sur vos stations : 93160001 et 93160009 (Noisy-le-Grand) sont en rupture temporaire sur gazole/SP98/E10 — pas « non vendu ».

Ce qui change

  • Lecture des ruptures du flux : colonnes sp98_rupture_type/_debut (v2) et tableau rupture imbriqué (ancien modèle). temporaire (ou type vide) → en rupture ; definitive → non vendu ; un prix publié l’emporte toujours.
  • Nouveau src/availability.js : 3 états par carburant (available / out_of_stock / not_sold).
  • Découverte : une station en rupture est désormais proposée (le prix revient avec le camion), plus besoin de repasser dans Découverte.
  • Appareil : la fonctionnalité texte affiche « En rupture depuis le 18/09/2026 à 08:09 », le dernier prix connu reste sur la courbe.
  • Bouton « Rechercher les stations » : « SP98 : en rupture » au lieu de « SP98 : non vendu », et la note « aucune station ne vend… » devient une note de rupture quand c’est le cas.
  • Docs FR/EN + CLAUDE.md mis à jour.

Version 1.0.7 :

3 station(s) autour de 93160 :
• TotalEnergies - Rue du Centre Centre Reg… - Noisy-le-Grand (0.4 km) — Gazole : 2.250 EUR/L, SP98 : en rupture, E10 (SP95-E10) : en rupture
• TotalEnergies - 33 Av. Médéric - Noisy-le-Grand (1.2 km) — Gazole : en rupture, SP98 : en rupture, E10 (SP95-E10) : en rupture
• TotalEnergies - 104/106 AV MEDERIC - Noisy-le-Grand (1.6 km) — Gazole : en rupture, SP98 : en rupture, E10 (SP95-E10) : non vendu

Le SP98 est en rupture dans toutes ces stations : les appareils sont proposés, le prix reviendra avec le carburant.
Le E10 (SP95-E10) est en rupture dans toutes ces stations : les appareils sont proposés, le prix reviendra avec le carburant.

Ajoutez celles que vous voulez depuis l’onglet Découverte.

Bien plus lisible… super.

Toutefois E10(SP95-E10) non vendu pour 104/106 avenue Médéric me surprend. J’irais voir sur place.

Je vais continuer de suivre

Oui tiens moi au courant si tu trouves un bug :wink:

Merci

Bonsoir @prohand et merci pour cette intégration très utile en cette période.

J’ai vu qu’il fallait préciser une pièce pour chaque produit par station. Est-il prévu de retrouver les informations dans un tableau de bord ?

Je ne comprends pas ce que tu entends par « une pièce pour chaque produit par station »

La V2 arrive avec les widgets mais il y a visiblement un bug que je viens de poster sur le forum :

La version 2.0.5 est dispo avec les widgets, déclencheurs et actions :slight_smile: