Accueil » Domotique » guides domotiques » Eedomus » La box eedomus reprend le train
Eedomus

La box eedomus reprend le train

Un titre qui sonne comme du déjà vu? et oui ce n’est pas faux. C’était l’année dernière et je vous avais proposé ce script afin de récupérer les horaires de train. Depuis, la SNCF a fait un peut le ménage dans son code et  il n’est plus possible d’utiliser ce script.

Je me suis donc penché de plus près sur ce que proposait la SNCF et j’ai trouvé une api https://data.sncf.com/api que nous allons utiliser pour récupérer nos horaires de train. (ouf je ne vais plus être en retard au taf 🙂 )

J’ai développé ce script en PHP pour un Raspberry mais bien sur, on peut le modifier pour le faire fonctionner directement sur la box Eedomus.

La mise en oeuvre des horaires de train dans eedomus

Dans un premier temps, il faut obtenir une clé d’accès sur le site de la SNCF. https://data.sncf.com/api/fr/register

sncfapi

Vous allez rapidement recevoir un mail avec la clé d’accès nécessaire pour la suite.

sncfmail

Téléchargement du script depuis github

git clone https://github.com/domoblog/eedomus_train.git
Télécharger depuis Github

 

Création d’un capteur pour récupérer les informations

Création d’un état dans la box Eedomus.

Récupérer le code API pour la suite

sncfeedomus

Modification du script 

Changer les valeurs suivantes avec vos propres données.

// Identifiants de l'API Eedomus
$api_user  = "XXXXXX";
$api_secret= "YYYYYYYYYYY";
$IPeedomus = "api.eedomus.com";   //IP eedomus
$IPLocal   = "192.168.0.XX/api";  //IP locale de votre box Eedomus
$periph_id = 'ZZZZZZZ';           //Code du capteur créer précédement   

// Identifiants de l'API SNCF https://data.sncf.com/api/fr/documentation
$api_sncf_user = 'TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT'; //Clé envoyer par mail (étape précédente)
$api_sncf_mdp  = '';

Récupération des coordonnées des villes

Voici la partie la moins simple du script car il faut exécuter une requête et lire le code JSON renvoyé.

Ensuite il faudra changer dans le scripts les deux valeurs trouvées.

Cliquer sur le lien suivant en indiquant bien sur la ville désirée. Dans mon exemple, je prendrais LYON.

https://api.sncf.com/v1/coverage/sncf/places?q=LYON

Authentifier vous avec le code API.

sncfconnect

On obtient un superbe fichier JSON, pas vraiment lisible pour tout le monde.

Faire une recherche sur le mot ID et vous devriez retrouver le code associé à votre gare.

Il commence par admin:

sncfrecherche

Faire le même travail pour la ville d’arrivée et renseignez ces deux codes dans le script.

// Initialiation des variables
$VilleDepart  = 'admin:139203extern';
$VilleArrivee = 'admin:117905extern';

Utilisation du script

Il n’y a qu’un paramètre à renseigner dans la requête, c’est le sens du trajet entre les deux villes.

trajet=a  –> Trajet entre la ville de départ et la ville d’arrivée (Trajet allé).

trajet=r –> Trajet entre la ville d’arrivée et la ville de départ (Trajet retour)

Depuis votre navigateur , (remplacer XX par l’adresse IP de votre Raspberry)

http://192.168.0.XX/eedomus/scripts/gare2.php?trajet=a

ou

http://192.168.0.XX/eedomus/scripts/gare2.php?trajet=r

sncflog

Depuis l’Eedomus:

Créer un Actionner HTTP

sncfact sncfval

Ensuite il ne reste plus qu’à planifier l’exécution de ces requêtes.

Résultat

Trafic normal

snfcresult

Trafic avec un retard de 15 mn

sncfretard

 

 

Pour aller plus loin

Moi, je préfère laisser la planification au Raspberry.

Rien de bien compliqué. Comme pour la version navigateur, il existe deux lignes de commande,

une pour l’aller

/usr/bin/php /var/www/eedomus/scripts/gare.php a

et une pour le retour

/usr/bin/php /var/www/eedomus/scripts/gare.php r

Se connecter en SSH au rapsberry.

Exécuter la commande

sudo crontab -e

Ajouter les lignes suivantes pour une programmation toutes les 10 minutes de 7h à 9h et de 16h à 18h.

*/10 7,8 * * * /usr/bin/php /var/www/eedomus/scripts/gare.php a
*/10 16,17 * * * /usr/bin/php /var/www/eedomus/scripts/gare.php r

sncfrasp

 

Bonus

Voici deux icônes pour faire joli.

 

Trains Trajet2

 

Domo-blog a fait le choix de ne pas polluer votre lecture avec de la publicité. Vous trouverez cependant des liens affiliés vers les produits recommandés dans le contenu. Cela ne perturbe en rien votre experience de lecture et permet de financer le blog.
Vous pouvez également soutenir le blog en m'offrant un café sur Ko-Fi.


discord

Restez connecté aux nouveautés domotiques, inscrivez-vous à notre newsletter

A propos de cet auteur

eedomusbox

Informaticien spécialisé dans les ERP, je me suis mis à la domotique en 2014 avec ma première box domotique l'eedomus que j'ai depuis associée à un deux raspberry Pi 2

8 Comments

Cliquez ici pour poster un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  • Bonjour, J’y suis presque mais que mettre dans les champs “Type” et “Paramètres” de l’onglet valeur de l’actionneur HTTP ?
    Je ne sais pas si ça vient de là mais j’ai une erreur du type “Une erreur est survenue lors de la mise à jour [{ “success”: “0”, “body”: { “error_code”: “6”, “error_msg”: “Unknown peripheral value [06h28, 06h44, 06h58, 07h14].” } }]” en toute fin d’exécution du script

    • Salut, moi j’ai autre chose: (et merci pour le script!!!)

      Une erreur est survenue lors de la mise à jour [{ “success”: “0”, “body”: { “error_code”: “23”, “error_msg”: “HTTP protocol not allowed on your account.” } }]

      • C’est bon j’ai trouvé, il faut remplacer le http par https

        $url = “https://”.$IPLocal.”/set?action=periph.value”;

    • Aurel, j’ai oublié un point essentiel : te remercier pour ton script et te féliciter pour ton blog en général.
      Pour info, le https ne résoud pas mon erreur mais je ne désespère pas

      • Merci, mais ce script n’est pas de moi, il est de eedomus box. Il a codé et redigé ce tuto pour vous, difficile de repondre a vos question du fait que ce n’est pas mon script, mais je ne doute pas qu’il va passer par ici pour vous donner une solution.

        A+

  • Bonjour,
    Le principe de la domotique c’est de vous simplifier la vie, pas de la compliquer. Il existe déjà des applis très bien faites pour consulter les horaires de train. Ma femme prend le train tous les jours à la même heure pour aller bosser, quand elle prend son petit déjeuner une voix sympathique lui annonce si son train est à l’heure, la température extérieure (pour savoir comment se vêtir), les prévisions météo et si il va pleuvoir dans la demi-heure qui suit (pour savoir si elle doit prendre son parapluie). Il ne faut pas grand chose pour rendre une femme heureuse…. 😉
    A bientôt,

construction et domotique
promos domotique
Choix box domotique
promos domotique

La mise en oeuvre des horaires de train dans eedomus

Dans un premier temps, il faut obtenir une clé d’accès sur le site de la SNCF. https://data.sncf.com/api/fr/register

Téléchargement du script depuis github

git clone https://github.com/domoblog/eedomus_train.git

Création d’un capteur pour récupérer les informations

Création d’un état dans la box Eedomus.

Modification du script 

Changer les valeurs suivantes avec vos propres données.

Récupération des coordonnées des villes

Récupération des coordonnées des villes

Voici la partie la moins simple du script car il faut exécuter une requête et lire le code JSON renvoyé.

Utilisation du script

Utilisation du script

Il n’y a qu’un paramètre à renseigner dans la requête, c’est le sens du trajet entre les deux villes.

Résultat

Trafic normal

  • La mise en oeuvre des horaires de train dans eedomus
  • Téléchargement du script depuis github
  • Création d’un capteur pour récupérer les informations
  • Modification du script 
  • Récupération des coordonnées des villes
  • Utilisation du script
  • Résultat