# Afficher horaires de bus

**URL:** <https://forum.hacf.fr/t/afficher-horaires-de-bus/22643>\
**Category:** Entraide Home Assistant\
**Created:** [Avril 7, 2023, 6:08 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643 "2023-04-07T06:08:28Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gizmoz69](https://forum.hacf.fr/user_avatar/forum.hacf.fr/gizmoz69/32/22552_2.png) [@Gizmoz69](https://forum.hacf.fr/u/Gizmoz69)\
**Post date:** [Avril 7, 2023, 6:08 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/1 "2023-04-07T06:08:28Z")

</div>

Bonjour,

Je souhaite m’inspirer de se [TOPIC](https://forum.hacf.fr/t/horaire-de-bus/5337) pour intégrer et afficher les horraires de bus. Je suis de Lyon et j’ai trouvé les API de horaires de bus [ICI](https://data.grandlyon.com/jeux-de-donnees/lignes-bus-reseau-transports-commun-lyonnais-v2/info)  
Mais je ne sais pas quelle données il faut prendre ? Quel format ?  
Merci !

## Ma configuration

* * *

[center]## System Information

| version | core-2023.4.1 |
| --- | --- |
| installation\_type | Home Assistant OS |
| dev | false |
| hassio | true |
| docker | true |
| user | root |
| virtualenv | false |
| python\_version | 3.10.10 |
| os\_name | Linux |
| os\_version | 5.15.84-v8 |
| arch | aarch64 |
| timezone | Europe/Paris |
| config\_dir | /config |

> **Home Assistant Community Store**
>
> | GitHub API | ok |
> | --- | --- |
> | GitHub Content | ok |
> | GitHub Web | ok |
> | GitHub API Calls Remaining | 4747 |
> | Installed Version | 1.31.0 |
> | Stage | running |
> | Available Repositories | 1255 |
> | Downloaded Repositories | 40 |

> **Home Assistant Cloud**
>
> | logged\_in | true |
> | --- | --- |
> | subscription\_expiration | 1 janvier 2018 à 01:00 |
> | relayer\_connected | false |
> | relayer\_region | null |
> | remote\_enabled | true |
> | remote\_connected | false |
> | alexa\_enabled | true |
> | google\_enabled | false |
> | remote\_server | null |
> | can\_reach\_cert\_server | ok |
> | can\_reach\_cloud\_auth | ok |
> | can\_reach\_cloud | ok |

> **Home Assistant Supervisor**
>
> | host\_os | Home Assistant OS 9.5 |
> | --- | --- |
> | update\_channel | stable |
> | supervisor\_version | supervisor-2023.04.0 |
> | agent\_version | 1.4.1 |
> | docker\_version | 20.10.22 |
> | disk\_total | 116.5 GB |
> | disk\_used | 10.3 GB |
> | healthy | true |
> | supported | true |
> | board | rpi4-64 |
> | supervisor\_api | ok |
> | version\_api | ok |
> | installed\_addons | Terminal & SSH (9.6.1), SomfyProtect2MQTT (0.2.9), File editor (5.5.0), Mosquitto broker (6.2.0), Spotify Connect (0.12.3), Home Assistant Google Drive Backup (0.110.3), Duck DNS (1.15.0) |

> **Dashboards**
>
> | dashboards | 1 |
> | --- | --- |
> | resources | 24 |
> | views | 8 |
> | mode | storage |

> **Recorder**
>
> | oldest\_recorder\_run | 28 mars 2023 à 07:21 |
> | --- | --- |
> | current\_recorder\_run | 7 avril 2023 à 07:29 |
> | estimated\_db\_size | 390.48 MiB |
> | database\_engine | sqlite |
> | database\_version | 3.38.5 |

> **Spotify**
>
> | api\_endpoint\_reachable | ok |
> | --- | --- |

[/center] \_\_\_

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 6:30 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/2 "2023-04-07T06:30:33Z")

</div>

De leur site, je ne voix pas des données temps-reel, c’est correcte?  
T’as l’option d’utiliser le fichier json (dans Telechargements) et sensor REST mais je ne voix pas les infos par stop/halte.  
Avec gtfs (intégration HA de base), tu ouraait créer des sensor par stop, il faut chercher un peu comment la faire mais ça marche. Le seul truc (chez moi)…la qualité des données est de temps en temps hors norme (négative)

[Réseau urbain TCL - Open (GTFS, NeTEx, pdf) datasets - SYTRAL Mobilités](https://transport.data.gouv.fr/datasets/horaires-theoriques-du-reseau-transports-en-commun-lyonnais/)

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 6:32 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/3 "2023-04-07T06:32:16Z")

</div>

[General Transit Feed Specification (GTFS) - Home Assistant (home-assistant.io)](https://www.home-assistant.io/integrations/gtfs/)

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 6:37 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/4 "2023-04-07T06:37:54Z")

</div>

Ils ont aussi une site pour temps reel mais il faut se connecter avant…  
[data.grandlyon.com : Open data de la Métropole de Lyon](https://data.grandlyon.com/jeux-de-donnees/prochains-passages-reseau-transports-commun-lyonnais-rhonexpress-disponibilites-temps-reel/telechargements)  
Probablement, avec le json tu pourrait c’reer des sensor REST par bus, stop et direction

---

<div class="post-metadata">

**Author:** ![Gizmoz69](https://forum.hacf.fr/user_avatar/forum.hacf.fr/gizmoz69/32/22552_2.png) [@Gizmoz69](https://forum.hacf.fr/u/Gizmoz69)\
**Post date:** [Avril 7, 2023, 7:48 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/5 "2023-04-07T07:48:18Z")

</div>

Merci de ta réponse mais en gtfs se sont des infos dynamique ? ou juste une fiche horaire pré chargé ?

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 7:52 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/6 "2023-04-07T07:52:28Z")

</div>

GTFS est static, je l'utilise parallel avec les données temps-reel cause...qualité, voir ici ☹  
List: gtfs  
Realtime: ?????

 ![image](https://forum.hacf.fr/uploads/default/original/3X/a/4/a4af7eca1657c2dacb746135186a39710bb5718b.png)

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 7:53 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/7 "2023-04-07T07:53:33Z")

</div>

Si t’es inscrit sur temps reel, je peux voir comment t’aider si nécessaire…sans données je ne fait rien et je ne m’inscrit pas dans Lyon 🙂

---

<div class="post-metadata">

**Author:** ![Gizmoz69](https://forum.hacf.fr/user_avatar/forum.hacf.fr/gizmoz69/32/22552_2.png) [@Gizmoz69](https://forum.hacf.fr/u/Gizmoz69)\
**Post date:** [Avril 7, 2023, 8:16 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/8 "2023-04-07T08:16:11Z")

</div>

Je viens de m’inscrire mais le site plante totalement…

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 9:16 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/9 "2023-04-07T09:16:19Z")

</div>

Contrairement a mes môts avant, je me suis inscrit et demandé l’accès. Je ne sais pas si je suis accepté (loin de Lyon) et/ou quand

---

<div class="post-metadata">

**Author:** ![Gizmoz69](https://forum.hacf.fr/user_avatar/forum.hacf.fr/gizmoz69/32/22552_2.png) [@Gizmoz69](https://forum.hacf.fr/u/Gizmoz69)\
**Post date:** [Avril 7, 2023, 9:21 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/10 "2023-04-07T09:21:17Z")

</div>

J’ai aussi pu faire une demande. c’est en attente !

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 9:49 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/11 "2023-04-07T09:49:39Z")

</div>

J’ai l’accès (un peu curieux comment, mais bon)…  
Mais, je ne peux pas faire grand chose car les stops sont ‹&nbsp;codé&nbsp;› et je ne connait pas leurs ID

EDIT: j’aussi demandé accès vers leurs données gtfs, probablement, les stops sont détaillées dedans

```auto
{
  "fields": [
    "id", 
    "ligne", 
    "direction", 
    "delaipassage", 
    "type", 
    "heurepassage", 
    "idtarretdestination", 
    "coursetheorique", 
    "gid", 
    "last_update_fme"
  ], 
  "layer_name": "tcl_sytral.tclpassagearret", 
  "nb_results": 27980, 
  "table_href": "https://download.data.grandlyon.com/ws/rdata/tcl_sytral.tclpassagearret.json", 
  "values": [
    {
      "coursetheorique": "96A-052BM:1:1:19", 
      "delaipassage": "1 min", 
      "direction": "Quincieux Boulodrome", 
      "gid": 1, 
      "heurepassage": "2023-04-07 11:46:00", 
      "id": 1700, 
      "idtarretdestination": 46231, 
      "last_update_fme": "2023-04-07 11:43:52", 
      "ligne": "96A", 
      "type": "E"
    }, 
    {
      "coursetheorique": "96A-052BM:1:1:19", 
      "delaipassage": "3 min", 
      "direction": "Quincieux Boulodrome", 
      "gid": 2, 
      "heurepassage": "2023-04-07 11:48:00", 
      "id": 11452, 
      "idtarretdestination": 46231, 
      "last_update_fme": "2023-04-07 11:43:52", 
      "ligne": "96A", 
      "type": "E"
    }, 
    {
      "coursetheorique": "96A-052BM:1:1:19", 
      "delaipassage": "4 min",
```

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 10:46 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/12 "2023-04-07T10:46:47Z")

</div>

Les ID sont en effet dans gtfs, j’ai téléchargé une ancienne version (zip) et dans stops.txt tu trouves les détails

[Transitland • Transports en Commun Lyonnais (TCL) • GTFS feed details: f-u05-tcl~systral](https://www.transit.land/feeds/f-u05-tcl~systral)

Si t’es OK avec REST tu peux maintenant créer des sensor. Je peux t’aider un peu aussi mais il faut que tu me donne des détails:

- no. bus (ligne)
- stop (id ou nom)
- direction (idtarretdestination ou nom)

---

<div class="post-metadata">

**Author:** ![Gizmoz69](https://forum.hacf.fr/user_avatar/forum.hacf.fr/gizmoz69/32/22552_2.png) [@Gizmoz69](https://forum.hacf.fr/u/Gizmoz69)\
**Post date:** [Avril 7, 2023, 3:38 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/13 "2023-04-07T15:38:40Z")

</div>

Merci de ton aide ! Je n’ai pas tout compris au REST, mais je voulais faire remonté les infos sur le bus n°C18, stop Place Flammarion direction Hotel de ville.

---

<div class="post-metadata">

**Author:** ![Gizmoz69](https://forum.hacf.fr/user_avatar/forum.hacf.fr/gizmoz69/32/22552_2.png) [@Gizmoz69](https://forum.hacf.fr/u/Gizmoz69)\
**Post date:** [Avril 7, 2023, 4:10 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/14 "2023-04-07T16:10:10Z")

</div>

de plus cette intégration [GitHub - zacs/ha-gtfs-rt: Real-time transit information for Home Assistant](https://github.com/zacs/ha-gtfs-rt) ne permettrais pas d’avoir les infos en dynamique ?

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 5:52 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/15 "2023-04-07T17:52:14Z")

</div>

Si t’as recherché les ‹&nbsp;issues&nbsp;› t’as pu voir mes commentaires…donc: non utilisable

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 7, 2023, 6:29 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/16 "2023-04-07T18:29:35Z")

</div>

La structure Lyon preuve d’être différent que Zou-Maregionsud (Nice-CdA)…je vais voir dans le w/e

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 8, 2023, 5:07 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/17 "2023-04-08T05:07:48Z")

</div>

En dessous une première solution, aussi pour te donner uin peu plus d’infos comment ça marche

1. sensor qui collecte le fichier temps-reel et (!) filtre sur C18A et ton stop 2384 et tri par heuredepassage (pour avoir la première bus au dernier). Ça va creer une fichier dans ton dossier www lyon\_c18a\_2384.  
Il faut que to met ton user/mdp, en attendant que t’as l’accès maintenant  
Tu va voir plusieurs départ (heurepassage), ce qui est différent chez moi, j’ai que une (le prochain bus)  
Le sensor déclenche tout les 5 min. (300)

2. sensor qui utilise ce fichier, fait le contrôle si C18A et 2384 (oui, pas vraiment nécessaire mais si le fichier change avec plus de bus/stop…) et va creer le sensor bus\_c18a\_2384 avec le temps du prochain bus (je l’a formatté …mon choix)  
Le sensor déclenche tout les 3 min. (180)

En réalité je pourrais le faire plus compacte (un sensor au lieu de deux) mais je pense que c’est mieux si on commence avec ces trucs curl / jq / rest … c’est mieux lisible je trouve

```auto
sensor:
  - platform: command_line
    name: collect_lyon_realtime
    scan_interval: 300
    command: > 
        curl "https://download.data.grandlyon.com/ws/rdata/tcl_sytral.tclpassagearret/all.json?maxfeatures=-1" --user "USER:PASSWORD" | jq '[.values[] | select(.ligne=="C18A") | select(.id==2384) ]| sort_by(.heurepassage) | reverse'
        > www/lyon_c18A_2384.json  

  - platform: rest
    name: bus_c18a_2384
    scan_interval: 180
    resource: "http://192.168.1.20:8123/local/lyon_c18a_2384.json"
    value_template: >
         {% if value_json is defined %}
            {% set y = value_json | count %}
            {% set ns = namespace(val="--:--") %}
            {% for x in range(0,y) %} 
                {% if value_json[x]["ligne"] == "C18A" and value_json[x]["id"] == 2384 %}
                    {% set ns.val = as_local(as_datetime(value_json[x]["heurepassage"])).strftime("%H:%M") %}
                {% endif %}
            {% endfor %}
            {{ns.val}} 
          {% else %}
           --:--
          {% endif %}
```

---

<div class="post-metadata">

**Author:** ![Gizmoz69](https://forum.hacf.fr/user_avatar/forum.hacf.fr/gizmoz69/32/22552_2.png) [@Gizmoz69](https://forum.hacf.fr/u/Gizmoz69)\
**Post date:** [Avril 8, 2023, 6:41 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/18 "2023-04-08T18:41:16Z")

</div>

Merci de ta réponse super complète !!! Mais Jai plusieurs questions : Ou insérer les identifiants ? Et je n’ai aucun capteurs de créer, je n’ai peut être pas demander l’accès aux bonne ressources ?

---

<div class="post-metadata">

**Author:** ![vingerha](https://forum.hacf.fr/user_avatar/forum.hacf.fr/vingerha/32/30749_2.png) [@vingerha](https://forum.hacf.fr/u/vingerha)\
**Post date:** [Avril 9, 2023, 4:37 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/19 "2023-04-09T04:37:40Z")

</div>

Dans la premièe sensor…USER (email) et PWD…comme

```auto
--user "adresseemail:motdepasse"
```

---

<div class="post-metadata">

**Author:** ![Gizmoz69](https://forum.hacf.fr/user_avatar/forum.hacf.fr/gizmoz69/32/22552_2.png) [@Gizmoz69](https://forum.hacf.fr/u/Gizmoz69)\
**Post date:** [Avril 9, 2023, 6:05 UTC](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643/20 "2023-04-09T06:05:56Z")

</div>

D’accord, j’ai bien le fichier .json qui c’est créer avec des info à l’interieur. Le sensor Telechargement\_Horaire\_TCL est bien présent aussi.Comment le présenté dans une card ?

[Page suivante](https://forum.hacf.fr/t/afficher-horaires-de-bus/22643.md?page=2)
