Intégrer les horaires des trains nationaux et des TER dans sa domotique

Suite à mon article de lundi qui présentait une manière de récupérer les horaires des Transiliens afin de les intégrer dans sa domotique, j’ai eu des demandes pour tenter de contenter ceux qui avaient les mêmes besoins mais sur d’autres réseaux ferrés.  Tout le monde n’habite pas en Île de France m’a-t-on gentiment dit.  Et bien je vous ai compris! Voici aujourd’hui une manière de récupérer les données non seulement des TER mais également des trains nationaux.

sncf-direct

Cette fois-ci c’est le site Infolignes ou SNCF Direct qui va pouvoir nous aider.

Afin de connecter les données temps réel de la SNCF concernant l’ensemble des lignes et donc le réseau national et régional, c’est encore une fois Google Drive qui va être mis à contribution.  Comme pour les données Vigicrues ou les données du Transilien, nous allons pouvoir utiliser la fonction « ImportHTML« .  Encore une fois également c’est l’apposition d’un horodatage en fin d’URL qui va pouvoir garantir le rafraîchissement de la donnée.  Si vous souhaitez plus de détails sur le fonctionnement je vous laisse consulter le billet précédent.

Voici comment procéder pour récupérer les données.

Première étape : récupérer les codes des gares de départ et de destination sur le site Infolignes.

sncf-direct-selection-gare

  • Indiquer sa gare de départ et sa gare d’arrivée et cliquer sur « Valider ».  Dans mon exemple on utilise quotidiennement le TER de Lamotte-Beuvron à St-Cyr-en-Val-La-Source. (spéciale dédicace ;) )

sncf-direct-resultat

La page ainsi obtenue a une URL du style:

http://www.infolignes.com/recherche.php?date_num_train=2013%7C09%7C03&num_train=&depart=gare+de+Lamotte-Beuvron&cityDepart=OCE87543140&destination=gare+de+St-Cyr-en-Val-La-Source&cityDestination=OCE87543116&via=&cityVia=&type_heure=1&train_horaire_depart=18%7C00&station=&stationCode=&sens=1&next_horaire=18%7C00&depart_ext=&destination_ext=&via_ext=

  • A l’intérieur de cette URL il relever le code de la gare de départ (cityDepart=OCE87543140 dans mon exemple)  ainsi que le code de la gare d’arrivée (cityDestination=OCE87543116)

Deuxième étape : récupérer la feuille de calcul Google Drive et la paramétrer.

Dans Google Drive:

  • Récupérer la feuille de calcul Horaires trains SNCF et enregistrez-là dans votre environnement Google Drive (la récupération d’une feuille de calcul et l’enregistrement dans votre Google Drive se fait simplement via « Fichier => Créer une copie » )
  • En cellule C1 et C2 inscrivez respectivement les codes de votre gare de départ et de votre gare d’arrivée que vous avez obtenus sur le site Infoligne à l’étape précédente.

La feuille de calcul que je vous propose permet de récupérer les 6 prochains trains annoncés par le site Infolignes de la SNCF.  En colonnes F,G et H sont présentés des données nettoyées et prêtes à servir.  J’ai dû supprimer le « ‘ » dans les informations communiquées car la récupération de l’apostrophe posait problème par la suite.  La phrase « A l’heure » transformée en « A l heure » reste tout de même lisible.

sncf-direct-feuille-recup

En cellule E1 vous trouverez le résultat que je souhaitais obtenir à savoir la liste des 6 prochains trains avec la voie prévue.  Pour la mettre en forme en XML pour votre système domotique continuez comme suit.

Dans Google Drive:

  • Aller dans le menu « Fichier => Publier sur le Web »
  • Créer la publication en RSS de la cellule E1 uniquement
  • relever l’URL résultante afin de pouvoir la reporter dans votre système domotique

transilien-export-xml

La dernière étape consiste à intégrer cette donnée mise en forme en XML dans votre système domotique.

Si l’on prend comme lundi l’exemple de la box eedomus on pourra alors créer un périphérique « Capteur HTTP » ayant un type de données « Texte ».

sncf-direct-eedomus-param

Il aura comme URL l’URL de votre flux RSS créé à l’étape ce dessus et comme chemin xpath l’expression suivante:

//channel/item/description

Maintenant que la donnée est dans votre système domotique vous pouvez l’utiliser pour être averti avant vos déplacements de l’état du trafic.

sncf-direct-eedomus-resultat

Franciliens et provinciaux je peux vous annoncer que nous sommes maintenant sur un même pied égalité! Avec mes humbles moyens, mon investissement du jour a permis de rééquilibrer les inégalités en France. ;)

Faites-en bon usage.

PS : Cette méthode marche aussi pour toutes les gares du Transilien ;)

Ceci pourrait vous intéresser:

5 commentaires

  1. a dit:

    Super, merci :D
    Par contre j’ai un soucis chez moi avec la publication Web: dans insérer un lien vers les données publiées, je n’ai pas RSS, juste page web, code html, csv, txt ou pdf ?

    4 septembre 2013
    Répondre
    • Hervé a dit:

      C’est bizarre ça.
      Il doit y avoir un paramétrage spécial sur tom compte Google bridant les exports possibles.
      Peux-tu tenter d’appeler quand même L’URL de ton document en RSS. Pour la construire choisit par exemple l’export en TXT tu auras une URL de la forme:
      https://docs.google.com/spreadsheet/pub?key=LA_CLE_DE_TON_DOCUMENT&range=E1&output=txt
      L’URL du même document en RSS sera:
      https://spreadsheets.google.com/feeds/cells/LA_CLE_DE_TON_DOCUMENT/od6/public/basic?range=E1&alt=rss

      4 septembre 2013
      Répondre
      • a dit:

        Oui, j’avais essayé ca aussi, mais Google ne trouve pas la page :/
        Bon, j’ai fait un autre essai qui fonctionne: j’utilise un compte « entreprise », qui intègre tous les outils Google. J’ai essayé avec un compte lambda, et là j’ai bien l’export RSS. Il y a donc une différence entre les deux versions d’application. Embêtant si je dois avoir un compte « normal » à côté, car c’est plus pratique de tout grouper, mais si je ne trouve pas d’autre solution je ferai comme ca. En attendant j’ai créé mes deux fichiers excel pour l’aller retour, et ca fonctionne impec :D Super pratique !

        4 septembre 2013
        Répondre
        • Hervé a dit:

          Bon bah cool si tu as retrouvé l’export RSS.
          Même si ce n’est pas l’idéal du point de vue regroupement de fonctionnalités, ça ne devrait pas être trop pénalisant car une fois cette feuille de calcul paramétrée on n’y touche plus. Elle se met à jour automatiquement sans plus d’intervention.

          5 septembre 2013
          Répondre
  2. a dit:

    J’ai repris le principe dans un script perl effectuant le parsing des résultats d’infolignes.com permettant de s’affranchir de l’utilisation d’une feuille Google.

    A dispo pour ceux que ça intéresse. Resultat visible ici : http://spyou.org/sncf/

    Merci pour les idées :)

    24 novembre 2013
    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


7 − = 3