Skip to content

Changes in the number of trains from 10 to 20 for the query: #13 + add divers#18

Open
ProBreizh35 wants to merge 15 commits into
Master13011:mainfrom
ProBreizh35:main
Open

Changes in the number of trains from 10 to 20 for the query: #13 + add divers#18
ProBreizh35 wants to merge 15 commits into
Master13011:mainfrom
ProBreizh35:main

Conversation

@ProBreizh35

Copy link
Copy Markdown

This minor change increases the maximum number of trains to 20.
image

@Master13011

Master13011 commented Apr 21, 2026

Copy link
Copy Markdown
Owner

Bonjour,

Merci pour ta contribution.

Je suis actuellement en train de tester les modifications que tu as apportées.

Par ailleurs, pourrais-tu réintégrer les fichiers qui ont été supprimés (Workflows, Exemple, requirements, etc.) ? Cela permettra de valider les bonnes pratiques auprès de HASS.

Merci d’avance pour ton retour.

@ProBreizh35

Copy link
Copy Markdown
Author

Bonjour,

Alors attand car je debute avec git. J'espère que je tes pas pull toute mes modification quand même.

Je vas regarder pour remettre les fichier de suite.

@ProBreizh35 ProBreizh35 changed the title Changes in the number of trains from 10 to 20 for the query: #13 Changes in the number of trains from 10 to 20 for the query: #13 + add divers Apr 21, 2026
@ProBreizh35

Copy link
Copy Markdown
Author

Ce qui a été ajouter :

  • 🕒 Correction du "Time-Glitch" (Décalage horaire) : Résolution définitive du bug critique qui affichait des trains "il y a 8 heures". Les capteurs gèrent désormais nativement les fuseaux horaires (Timezone ISO 8601).
  • 📡 Radar de Ligne (V3.3) : Intégration d'un "thermomètre de ligne" dynamique avec détection des badges d'arrêts supprimés ou exceptionnels. ⚠️ Ce paramètre est désactivé par défaut.
  • 🎭 Moteur d'Animation Dynamique : Possibilité de synchroniser la vitesse de l'emoji train sur la durée réelle du trajet (duration_minutes).
  • 🔍 Analyse des Perturbations : * Extraction de la cause officielle du retard (ex: Panne de signalisation, Défaut d'alimentation).
    • Gestion visuelle des Annulations (croix rouge et rail d'alerte).
    • Code couleur intelligent : Orange pour les retards, Rouge pour les suppressions.

📸 Aperçu Visuel

Version Précédente (Épurée) Nouvelle Version (Radar de Ligne)
Avant Maintenant

Note : Le radar de ligne affiche désormais tous les arrêts intermédiaires, mais peut être désactivé dans les options pour retrouver le design minimaliste.

@Master13011

Copy link
Copy Markdown
Owner

Non rien n'est merge :)

Par contre j'ai toujours ce soucis moi

image

@ProBreizh35

Copy link
Copy Markdown
Author

tu a essayer en navigation privé ? si cela fonctionne fait un ctrl +F5 pour recharger ton cache. j'ai chercher de mon coté, je n'est pas réussi à reproduire ton problème de carte

Moi çà donne çà :
image

@Master13011

Copy link
Copy Markdown
Owner

La carte apparait de nouveau ! apres un refresh

@Master13011

Copy link
Copy Markdown
Owner

Il y a le lint en erreur ->

`E701 Multiple statements on one line (colon)
--> custom_components/sncf_trains/sensor.py:165:48
|
163 | if stop_name and formatted_time:
164 | prefix = ""
165 | if stop_effect == "deleted": prefix = "[SUPPRIMÉ] "
| ^
166 | if stop_effect == "added": prefix = "[NOUVEAU] "
|

E701 Multiple statements on one line (colon)
--> custom_components/sncf_trains/sensor.py:166:46
|
164 | prefix = ""
165 | if stop_effect == "deleted": prefix = "[SUPPRIMÉ] "
166 | if stop_effect == "added": prefix = "[NOUVEAU] "
| ^
167 |
168 | stops_list.append(f"{prefix}{stop_name} ({formatted_time})")
|

E701 Multiple statements on one line (colon)
--> custom_components/sncf_trains/sensor.py:232:25
|
230 | departure_times.append(format_time(journey.get("departure_date_time", "")))
231 | delays.append(str(delay))
232 | if delay > 0: overall_has_delay = True
| ^
233 |
234 | self._attr_extra_state_attributes = {
|

Found 3 errors.`

correction apporté pour la vérification : Lint
@ProBreizh35

Copy link
Copy Markdown
Author

le lint doit maintenant être valide

@Master13011

Copy link
Copy Markdown
Owner

ans les details j'ai ca :

image

Base arrival time -> N/A

@ProBreizh35

ProBreizh35 commented Apr 22, 2026

Copy link
Copy Markdown
Author

j'ai fait en sorte que base_arrival_time, s'ajuste en fonction du retard(si il y à) afin d'afficher l'heure réel prévus avec retard inclus) Malheursement j'attend encore un train en retard et un train supprimé réellement afin de tester cette fonction. Dans tout les cas cela n'empêche en rien le fonctionnement cela crée juste un états de plus.

Cela peut être utile pour faire des automatision complète. avec heure de depart, heure arrivé déclencher uniquement en cas de retards ect

@Master13011

Copy link
Copy Markdown
Owner

Dans mon intégration initiale, je remettait la même information. Tu peux remettre ça stp ? Je m'en sers justement pour de l'automatisation et quand c est du n/a, ha n' aime pas trop 😅

Si tu veux tester des trais en retards, il y en a pas mal entre nice et monaco ^^

J'ai vu egalement que tu as fait des modifs sur outside interval et update interval. Tu es sur que rien n'est casse ?

En tout cas merci pour les améliorations !

Je n'ai plus trop le temps de m'en occuper en ce moment.

@Master13011

Copy link
Copy Markdown
Owner

Également, fait attention, mais il y a deux fois la card SNCF et translation/fr

Il faut que tu laisses aussi la version en 1.0.0 dans le manifest.

Un worflow fait le taff poir changer la version automatiquement :)

Je décroche pour aujourd'hui !
Bonne soiree

@ProBreizh35

Copy link
Copy Markdown
Author

j'ai rajouter ta demande, je teste de mon coté avent de refaire un pull,
nickel merci pour la ligne, je vais la configurer. afin de réaliser les test.

J'ai vu egalement que tu as fait des modifs sur outside interval et update interval. Tu es sur que rien n'est casse ? De mon coté çà a résolu le bug des train passés. je te laisse tester de ton coté également (on ne sais jamais)

Je ne comprend pas pourquoi la manifest a été modifier, je ne l'avais pas ouvert, je le remet en version 1.0.0.

Tinquiète, j'ai ajouter mes idées, tu regarde juste la card et tu verra que j'aime les infos complète, tout en laissant je choix au utilisateurs d'activer ou non.

Bien vue merci d'avoir indiqué les doublon, pas simple quand on débute avec github deskop.

Je me laisse 2 jours pour tester les correction et je te renvoie le pull

Bonne soirée à toi aussi.

@ProBreizh35

Copy link
Copy Markdown
Author

Salut,

Je te fait un récapitulatif de ce qui a été ajouter / modifier

1. Moteur Backend : Performance et Fiabilité

Les modifications dans les fichiers Python assurent une base de données propre et sans erreurs pour les automatisations.

api.py — Optimisation des flux :

  • Augmentation du count à 20 pour les trajets et les départs. Cela permet de récupérer un "réservoir" de trains suffisant pour filtrer les trajets avec correspondance localement sans consommer de requêtes supplémentaires sur le quota (1 appel = 1 requête, peu importe le nombre de trains retournés).

  • Renforcement de la gestion des erreurs (401 pour l'authentification et 429 pour les quotas).

coordinator.py :

Correction ISO 8601 : Résolution du décalage horaire en forçant le fuseau local lors des appels.

  • Requêtes "Live" : La fonction _build_datetime_param a été modifiée pour interroger l'API à partir de now (maintenant) dès que la plage horaire est active. On ne télécharge plus les données des trains déjà passés.

  • Intervalles dynamiques : Le système ajuste sa fréquence de rafraîchissement selon la proximité du départ.

sensor.py — Sécurité des données :

  • Anti-n/a (Double Miroir) : Synchronisation de arrival_time et base_arrival_time sur l'heure réelle pour éviter les valeurs vides dans les scripts utilisateur.

  • Analyse des causes : Extraction automatique de la cause du retard depuis les messages officiels de la SNCF.

  • Support des trains supprimés (En test) : Ajout d'une détection is_canceled basée sur le statut NO_SERVICE de la section. Ce paramètre est prêt pour être exploité visuellement.

2. Interface Frontend : La Carte SNCF V3.5

La sncf-train-card.js a été entièrement réécrite pour offrir une expérience utilisateur moderne et fluide.

Éditeur Visuel (GUI) :

  • Mise en place d'une interface de configuration (SncfTrainCardEditor) permettant de régler les options (Device ID, nombre de lignes, radar) directement dans l'interface sans toucher au YAML.

Moteur d'Animation Temps Réel :

  • Ajout d'un timer interne de 30 secondes qui force le recalcul de la position de l'émoji train. Le train avance désormais de manière fluide sur la barre de progression, même entre deux mises à jour de capteurs.

Masquage Intelligent des Trains :

  • Utilisation d'une condition de rendu stricte : ${pos >= 0 && pos <= 100 ? ...}. Le train n'apparaît sur la piste que lorsqu'il entre dans la fenêtre d'animation (ex: 30 min avant le départ) et disparaît dès son arrivée, évitant l'encombrement visuel.

Radar de Ligne (Thermomètre) :

  • Affichage optionnel des arrêts intermédiaires avec détection des gares supprimées ou des retards spécifiques par arrêt.

Quelque changement suplémentaire, surtout sur la carte ou j'ai corrigé le bug de l'émoji qui était affiché en permanance
@ProBreizh35

ProBreizh35 commented Apr 23, 2026

Copy link
Copy Markdown
Author
image Premier test en condition réel via l'api, mon ajout fonctionne bien. il a modifier toute les heure des gare intermédiaire . La cause est affiché si on veux. je vais pouvoir vérifer les fichier et push.

@Master13011

Copy link
Copy Markdown
Owner

Hello,

Je reviens vers toi concernant la MAJ,

Tout est ok de ton coté ?

@ProBreizh35

Copy link
Copy Markdown
Author

Hello, je revérifie les fichiers d'ici 2 jours et je te confirme cela.

Pour la suppression des train par contre je ne sais pas si cela fonctionne(même Nice-Monaco) n'en à pas eu encore.

@ProBreizh35

Copy link
Copy Markdown
Author

Salut,

Je te laisse tester la version définitive afin d'être sur que tu ne trouve pas des bugs, pour ma part tout est ok de mon coté, sauf la map sur le téléphone. Du coup, je pense divisé dans le futur la map dans une autre intégration histoire d'être tranquille. (Je te laisserai faire le repos si tes d'accord).

Comme indiqué prochaine maj, ajout de la voie de départ, de mon coté c'est fonctionel (via une intégration dédié), mais jéai des problème de stabilité et l'ajout des gares fonctionne très mal (obligé d'utilisé uic donc pas top)

Si ta des idée d'ajout n'hésite pas.

Ps: regarde la configuration de la carte si elle te convient et si tu la trouve clair.

@Master13011

Copy link
Copy Markdown
Owner

Pour moi les trains supprimés ne s'affichent pas car il sont supprimés dans HA.

Et oui j'ai aussi galéré avec les uic des gares...

Je ne peux pas plus t'aider...

L'api de la SNCF est assez complexe...

Je ne suis pas sur que tu es poussé ton code final sur cette branche.

Tu peux checker ?

@ProBreizh35

Copy link
Copy Markdown
Author

Pour moi les trains supprimés ne s'affichent pas car il sont supprimés dans HA. Bon et bien je vais me penché dessus.

La même je galère.

complexe et pas complète comme j'aimerais.

Mon push final a été fait le , je vient de le refaire au cas ou.

Pour te donnée une idée de ce que j'ai réussis a faire sans l'api :
image
mais a mêttre en place sur ce code çà sera plus complexe je pense (les gare intermédiaire défile aussi quand c'est trop longt)

@pa-martin pa-martin mentioned this pull request May 15, 2026
7 tasks
@ProBreizh35

Copy link
Copy Markdown
Author

Salut, pourrait tu crée une branche dédier au dev stp ? afin qu'on est les fichier à jours entre nous , çà serait top. Merci

@pa-martin

Copy link
Copy Markdown
Contributor

@ProBreizh35 Est-ce que tu pourrais m'ajouter en tant que collaborateur de ton projet git le temps d'appliquer mes modifications à ton développement stp ?
https://github.com/ProBreizh35/SNCF-API-HA/settings/access

@ProBreizh35

Copy link
Copy Markdown
Author

@pa-martin c'est fait, je tes mis en collaboration

@ProBreizh35

ProBreizh35 commented May 18, 2026

Copy link
Copy Markdown
Author
image Depuis la dernière maj le bug est revenu, de plus j'ai toujours le problème qui s'affiche de manière aléatoire malgré un ctrl +f5, reboot ha, reboot os effectuer rien à faire @pa-martin

@pa-martin

Copy link
Copy Markdown
Contributor

Depuis la dernière maj le bug est revenu

ça ne m'étonne pas, ça a dû réécrire tous les fichiers que tu avais modifié, y compris la ligne 145 du fichier coordinator.py. change la valeur de count par celle de ton choix (count=20 dans ton cas de mémoire) et tu retrouveras tous les trains dont tu as besoin.

de plus j'ai toujours le problème qui s'affiche de manière aléatoire malgré un ctrl +f5, reboot ha, reboot os effectuer rien à faire

ça par contre c'est plus étonnant. Pour ma part, avec la mise à jour le composant est redevenu celui "par défaut" (avant mes modifs donc) mais il apparait dans 100% des cas, quel que soit le type d'actualisation. Tu es bien sûr d'avoir le bon type de carte / la bonne référence ? Essaye peut-être d'en recréer une pour être sûr ?

D'ailleurs, je ne vais pas trop avoir le temps d'avancer sur le merge de mes modifs avec les tiennes pendant la semaine, j'essaye de finir ça ce weekend 🫡

@ProBreizh35

Copy link
Copy Markdown
Author

pour la valeur count ce n'est pas le problème car j'avais laisser 5 par default, mais c'est le mode de calcul du train qui bug, je vais tenté d'ici la fin de semaine de faire le fix que j'ai avec tes fichier.

Pour la carte cela ,e m'inquiète pas, çà vas se résoudre.

Pas de souci🫡

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants