Forum eedomus
http://forum.eedomus.fr/

Récupérer les prochains passages du bus
http://forum.eedomus.fr/viewtopic.php?f=50&t=3101
Page 1 sur 1
Auteur:  ubu89 [ 21 Sep 2015 17:24 ]
Sujet du message:  Récupérer les prochains passages du bus

Bonjour à tous,

Topic présentation or not topic présentation ? Commençons directement ici, puisque ce topic est l'une des principales raisons de ma venue.
J'envisage donc de m'équiper en box domotique, initialement pour commander à distance mes chauffages électriques à fil pilote du fait de mes horaires assez aléatoires. Mon étude de marché, qui a placé la eedomus+ en shortlist, a été l'occasion de préciser le besoin et d'envisager les usages... dont celui qui va suivre !

Je souhaite donc récupérer les horaires du bus au coin de ma rue. Dans un premier temps pour de l'affichage (j'envisage de placarder au mur une tablette cheap dédiée en panneau de contrôle), voire par la suite de l'intégrer dans des scénarios. On verra à l'usage.

J'ai donc écrit un petit code en utilisant une bibliothèque dispo pour parser du HTML, qu'il convient de télécharger ici. Pour le reste, ce code est codé avec les pieds, mais il fonctionne : il renvoie bien un tableau contenant les valeurs (en minutes) des prochains passages :
Code : Tout sélectionner
<?php
error_reporting(E_ALL);
include_once('simple_html_dom.php');

// Create DOM from URL or file
$html = file_get_html('http://wap.transdevtvo.mobi/horaireligne.php?ligne=268435457&arret=BERRY');

$table = $html->find('table', 0);

$horaires = array();

foreach($table->find('tr') as $row) {
    // initialize array to store the cell data from each row
    $flight = array();
    foreach($row->find('td') as $cell) {
        // push the cell's text to the array
       $str = $cell->plaintext;
      $result = strpos($str,'GARE DE SARTROUVILLE');
      if($result) {
         $pieces = explode(" ", $str);
         foreach($pieces as $piece) {
            $result = strpos($piece,'mn');
            if($result) $horaires[]=trim(trim($piece,'n'),'m') . '<br />';
         }
      }
    }
}

// Debug : test
print_r($horaires);

?>


Ma question est donc toute trouvée : puis-je réaliser ceci facilement sur la eedomus+ dont le langage de scripting semble être... PHP ? :)

Et si quelqu'un peut me montrer le "rendu", histoire d'achever de me convaincre, alors ce serait top :D

Merci par avance,

François
Auteur:  eedomusbox [ 22 Sep 2015 09:50 ]
Sujet du message:  Re: Récupérer les prochains passages du bus

Salut,
je n'ai pas la box sous la main mais à première vue, ton script ne vas pas fonctionner. il y a des instructions php qui ne sont pas supportées par la box comme "find". tu as la doc ici.
http://doc.eedomus.com/view/Scripts

Par contre, tu peux le mettre sur un raspberry et là tu auras un résultat probant.
tu peux voir un exemple ici sur les horaires de train http://www.domo-blog.fr/horaires-de-train-leedomus/ou de trajet voiturehttp://www.domo-blog.fr/info-trajet-waze-eedomus-version-raspberry/.

//hervé
Auteur:  ubu89 [ 22 Sep 2015 10:06 ]
Sujet du message:  Re: Récupérer les prochains passages du bus

eedomusbox a écrit:Salut,
je n'ai pas la box sous la main mais à première vue, ton script ne vas pas fonctionner. il y a des instructions php qui ne sont pas supportées par la box comme "find".

Ah oui, je n'avais pas conscience de ces limitations. Je vais regarder tes liens, mais j'imagine qu'en tant que solution de secours je peux faire un script distant (quitte à le faire pas plus distant qu'en réseau local :lol: ) et récupérer ces valeurs par un simple appel ?

EDIT : C'est bien ce qu'il fait pour le script Waze, appel d'un script qui tourne sur une machine Rpi :)
Auteur:  xianghua [ 22 Sep 2015 12:56 ]
Sujet du message:  Re: Récupérer les prochains passages du bus

Si quelqu'un a fait la chose pour Grenoble ça m'intéresse :D
Auteur:  ubu89 [ 22 Sep 2015 13:43 ]
Sujet du message:  Re: Récupérer les prochains passages du bus

Comment sont accessibles ces résultats ?
Auteur:  xianghua [ 22 Sep 2015 18:02 ]
Sujet du message:  Re: Récupérer les prochains passages du bus

ubu89 a écrit:Comment sont accessibles ces résultats ?


Pour Grenoble? je n'y connais pas grand chose, je ne suis pas développeur web

C'est le réseau tag
http://www.tag.fr/86-lignes-et-horaires.htm
http://www.tag.fr/89-infotrafic.htm

Sur le google play y'a pleins d'applications https://play.google.com/store/search?q= ... oble&hl=fr , j'imagine donc que les données sont récupérables...

J'imagine le scénario qui si il y a une alerte info trafic, ma box lit l'alerte vocalement, ou que selon l'horaire de réveil, ça dit vocalement à quelle heure prendre le tram.
Page 1 sur 1 Le fuseau horaire est UTC+1 heure