Du Wifi à bord du train …
Thalys, la société ferroviaire Belge, propose le Wifi à bord à ses passagers de première et seconde classe, respectivement nommées Comfort 1 et Comfort 2.
Nommé ThalysNet, ce service permet de bénéficier d’un accès Internet pendant la durée du voyage à hauteur de 1 Go pour la 1ere classe et de 250 Mo pour la seconde. Un libre accès à Internet, mails, musique, VPN et même ports exotiques durant votre trajet.
Encore en phase de test pendant le mois d’aout, Thalys indique :
Le nouveau WiFi est offert à tous les voyageurs à bord de ce train et variable selon votre profil passager. Pendant une phase de tests durant le mois d’août, nous augmentons momentanément votre forfait data en Comfort 1 et en Comfort 2.
La connexion est de bonne qualité. Je n’ai remarqué que très peu de coupures durant mes multiples voyages que ce soit en première ou en seconde classe. Il faut dire que la couverture réseau semble également bonne via mon mobile (Bouygues Télécom).
Et c’est aussi un peu normal, le système repose sur une solution d’IComera basée sur de puissants récepteurs GSM à base de Sierra Wireless MC7710 et MC7304. La solution utilise plusieurs réseaux pour accroître la couverture réseau et la puissance de réception (Mobistar, Orange, et Proximus).
Comme indiqué par SpeedTest, les résultats sont honorables pour un usage en situation de mobilité !
…vers de l’Open Data en voyage
Connectivité et informations réseaux
Sur le portail ThalysNet, un picto vous indique la qualité du signal en temps réel. Une barre de progression vous indique quand à elle la quantité de data utilisée sur votre quota alloué (xx des 1000 MB). En regardant le code source, on s’aperçoit que le site fait appel à un script connectivity_proxy pour checker la connectivité périodiquement et qui contient :
- La version de l’API
- L’IP de la connexion
- Des informations relatives à la session
- La liste des modems GSM 3G/4G contenant le type de modem, la force du signal, le mode de connexion (3G/4G), l’APN, ainsi que des informaitons UMTS.
Informations utilisateur et d’usage
Ce n’est pas tout, le site fait appel également au flux JSON User contenant l’ensemble des informations liées à la sessions :
({
"version":"1.X",
"ip":"10.1.1.1",
"mac":"01:23:45:67:89:AB",
"online":"0",
"timeleft":"0",
"authenticated":"1",
"userclass":"1",
"expires":"Never",
"timeused":"6",
"data_download_used":"0",
"data_upload_used":"0",
"data_total_used":"0",
"data_download_limit":"0",
"data_upload_limit":"0",
"data_total_limit":"1048576000",
"bandwidth_download_limit":"250000",
"bandwidth_upload_limit":"250000",
"cap_level":""
});
On y retrouve l’IP, l’adresse MAC de son périphérique (PC ou Mobile), le temps avant la fin de session, la data utilisée, la limite haute d’utilisation ainsi que la classe dans laquelle on se situe (Comfort 1 ou Comfort 2) en fonction de l’APN auquel nous sommes connecté.
Vitesse et position GPS
Un peu plus loin, la page de géolocalisation fait appelle aux flux JSON Position qui nous permet de récupérer, en temps réel, les informations de géolocalisation du train (latitude, longitude, altitude et vitesse) ainsi que le nombre de satellites fournissant l’information.
({
"version":"1.9",
"time":"1502890898",
"age":"0",
"latitude":"50.551648",
"longitude":"3.107557",
"altitude":"37.9",
"speed":"79.878",
"cmg":"230.76",
"satellites":"9",
"mode":"3"
});
Il en résulte une belle carte indiquant vitesse et position en temps réel pour l’utilisateur lambda :
Si on creuse un peu, on trouve également une autre API non documentée qui fournit le nombre actif et total de personnes connectées au Wifi à bord à un moment donné.
Dès lors, on peut imaginer réaliser tout un tas de scripts / applications détournées utilisant ces informations. En parcourant GitHub, j’ai trouvé quelques exemples de scripts :
- Logger de données au format JSON / GPX
- Stockage des données de position au format JSON
- Affichage temps réel sur une carte des coordonnées
Le plus intéressant restant sûrement les informations fournies en temps réel par le GPS qui peuvent être stockées pour réaliser un itinéraire complet ou utilisées en temps réel pour proposer et afficher des POI / informations utiles à l’utilisateur en fonction de sa position.