Hello,
J’ai pris en compte vos remarques, et je publie donc une nouvelle version contenant quelques nouveautés
Mise à jour v0.1.0-alpha.1
Cette version comprend les mises à jour suivantes :
- Ajout de l’intégration via HACS
- Vous pouvez maintenant installer et sélectionner la version via HACS
- Ajout d’une entité « journeys » qui contient l’ensemble des prochains trajets demandés dans une liste
- Ajout d’une fonction expérimentale permettant d’arrêter de requêter l’API entre les horaires de fermeture et d’ouverture
- Modification des noms par défaut des entités pour une meilleure lisibilité
- Quelques améliorations du code
Renommage des entités :
Les entités sont maintenant nommées selon le trajet de l’appareil qu’elles suivent pour une meilleure lisibilité selon le schéma suivant :
sensor.train_traveler_<départ>_<arrivée>_next_journey_<numero_prochain_train>
où :
<départ>
sont les 3 premières lettres de la gare de départ<arrivée>
sont les 3 premières lettres de la gare d’arrivée<numéro_prochain_train>
représente l’indice du train dans la liste
Exemple pour un trajet « Paris - Marseille » qui suit les 2 prochains trains, les entités seront nommées de la manière suivante :
sensor.train_traveler_par_mar_next_journey_1
sensor.train_traveler_par_mar_next_journey_2
Entité sensor.train_traveler_<départ>_<arrivée>_journeys
:
Grâce à cette version, il est maintenant possible de ne travailler qu’avec une seule entité pour récupérer les informations des prochains trains.
Merci @roumano pour la suggestion
Exemple :
Avec le code suivant (utilisation de custom:flex-table-card) :
type: custom:flex-table-card
title: Départ - Arrivée
strict: true
sort_by:
- Départ+
columns:
- data: journeys
modify: new Date(x.departure_time).toLocaleString()
name: Départ
- data: journeys
modify: new Date(x.arrival_time).toLocaleString()
name: Arrivée
- data: journeys
modify: |
if (parseInt(x.delay) >= 3600 )
'<div style="color:#E70B0B;">' + Math.trunc(x.delay /3600) + 'h' + Math.trunc((x.delay %3600)/60) + 'm</div>'
else if (parseInt(x.delay) >= 60 )
'<div style="color:#E70B0B;">' + Math.trunc(x.delay/60) + 'm'+ '</div>'
else if (parseInt(x.delay) >= 1 )
'<div style="color:#E70B0B;">' + x.delay + 's</div>'
else '<div style="color:#139523;">Aucun retard</div>'
name: Retard
entities:
include: sensor.train_traveler_mar_bor_journeys
Cela nécessite l’installation d’une card custom, c’est pourquoi j’ai laissé le détail par entité également pour les personnes qui souhaitent plutôt travailler en mode « vanilla ».
Expérimentation : arrêt des appels API entre les horaires d’ouverture et de fermeture
Vous pouvez activer cette option à la configuration d’un appareil (trajet), elle est notée « expérimentale » car il est possible que quelques effets de bords surviennent. Désactivez-là si vous rencontrez des soucis et un petit retour pour m’en faire part serait le bienvenu
A+ et n’hésitez pas à me faire vos retours