Aller au contenu principal

Intégration domotique MBTA Boston, gratuite et open source

Intégration MBTA Boston pour Gladys Assistant

Non officiel. Prochains départs et alertes du MBTA à vos arrêts (Boston).

Les prochains départs (métro, tramway, bus, train de banlieue, traversier) et les alertes de service à cinq arrêts au plus du MBTA (région de Boston), dans Gladys.

Cette intégration n'est pas officielle : elle n'est liée ni au MBTA ni au MassDOT, et ce n'est pas une source officielle. Vérifiez sur mbta.com ou aux arrêts avant de partir. Elle n'a jamais été testée sur une vraie installation de Gladys par son auteur ; elle a été vérifiée contre la vraie API du MBTA.

Démarrer en 3 étapes​

Sans compte ni clé : il n'y a rien à créer.

  1. Trouvez l'identifiant de votre arrêt. Ouvrez l'arrêt sur mbta.com : l'identifiant est la fin de l'adresse de sa page. mbta.com/stops/place-pktrm est Park Street (une station : tous ses quais), mbta.com/stops/1 un arrêt de bus.
  2. Installez l'intégration depuis le catalogue, ouvrez sa configuration et tapez l'identifiant dans Arrêt 1 → Identifiant de l'arrêt. Enregistrez.
  3. Ouvrez l'onglet Découvrir et appuyez sur Ajouter sur l'arrêt. Son nom est le nom MBTA de l'arrêt (ex. « MBTA – Park Street ») une fois que l'intégration l'a vérifié, ou le nom que vous avez tapé.

Un appareil par arrêt. Un appareil appartient à un emplacement et à son arrêt. Si vous tapez un autre arrêt dans un emplacement, l'intégration propose un nouvel appareil dans l'onglet Découvrir : l'appareil de l'ancien arrêt n'est plus mis à jour et garde ses dernières valeurs ; la page de configuration le cite sous « Plus mis à jour », supprimez-le dans Gladys. Changer les lignes ou la direction garde l'appareil.

Le message en haut de la page de configuration dit où en est chaque arrêt, par exemple « MBTA – Park Street : prochain dans 4 min (Red Line), 9 départ(s) dans les 60 min, lu 30 oct., 08 h 05 (heure de l'Est) ; 0 alerte(s)… ». Le bouton Voir la dernière lecture montre le même message ; il ne lit jamais le MBTA lui-même. Les heures de lecture viennent du serveur du MBTA ; la prochaine lecture et la fin d'une pause, de l'horloge de la machine de Gladys.

Choisir ce que vous voyez​

ChampExempleSens
Identifiantplace-pktrmune station : tous ses quais
Identifiant70075un quai (ici Park Street, Red Line vers le sud)
Seulement ces lignesRedla Red Line seulement
Seulement ces lignes1, 47les bus 1 et 47 (identifiant de ligne ou numéro du bus)
Direction0 ou 10 : sortante, vers le sud ou l'ouest ; 1 : entrante, vers le nord ou l'est

Chaque ligne du filtre doit desservir l'arrêt : l'intégration le vérifie une fois auprès du MBTA, et une ligne qui n'y passe pas est refusée (le statut la nomme), pour qu'un arrêt ou une ligne inconnus ne se lisent pas « aucun départ ».

Ce que contient chaque appareil​

  • Prochain départ et Départ suivant : des textes avec la ligne, la destination, les minutes d'attente (comptées sur l'heure du serveur du MBTA) et l'heure de départ, par exemple Red Line → Ashmont dans 4 min (08:09). Sans départ, ils le disent avec l'heure de lecture : Aucun départ prévu (lu à 08:05), Aucun départ suivant (lu à 08:05). Ce sont des textes pour qu'un départ qui n'existe plus ne reste jamais affiché comme un nombre : Gladys ne sait pas effacer un nombre.
  • Départs prévus (60 min) : combien de départs le MBTA prévoit à l'arrêt dans l'heure qui vient.
  • Départs : un résumé qui commence par l'heure de lecture, par exemple 08:05 · Red Line → Ashmont 4, 11 min · Red Line → Alewife 6 min.
  • Alertes en cours : combien d'alertes du MBTA sont en vigueur maintenant pour l'arrêt (et ses lignes et sa direction si vous les avez filtrées).
  • Alerte : le texte de la plus grave, ou « Aucune alerte ».

Les noms d'arrêts et les textes d'alertes sont en anglais, seule langue de l'API du MBTA. Les noms d'appareils et le résumé suivent la langue choisie.

Ce que sont les nombres, et ce qu'ils ne sont pas​

  • Les départs sont les prévisions temps réel du MBTA. Un trajet que le MBTA ne suit pas encore n'est pas compté : un bus pas encore parti de son terminus, un train de banlieue lointain. « Aucun départ prévu » ne veut pas dire « pas de service » ; la nuit, c'est souvent la fin du service.
  • Quand aucun départ n'est prévu, le compteur montre 0 et les trois textes le disent. Chaque lecture republie toutes les valeurs.
  • Quand une lecture échoue, rien n'est publié : les valeurs de la dernière bonne lecture restent dans Gladys. Chaque texte porte son heure (de départ ou de lecture), et la page de configuration dit les données périmées après 3 intervalles (5 minutes au moins).
  • Un arrêt n'est compté à 0 qu'une fois l'arrêt (et les lignes du filtre) confirmés par le MBTA. Avant, une réponse vide ne publie rien.
  • Rien n'est publié (ni 0, ni ancienne valeur renvoyée) quand une lecture échoue, quand la réponse est illisible, quand elle n'a pas d'heure de serveur utilisable, quand cette heure diffère de plus de 5 minutes de l'horloge de la machine (horloge fausse, ou vieille copie servie par un cache), ou quand les données du MBTA derrière elle ont plus de 10 minutes (flux temps réel figé). La page de configuration le dit alors, avec l'heure des dernières bonnes données.

Scènes​

Déclencheur « Départ MBTA imminent » : un départ prévu à un arrêt suivi passe à 1, 2, 3, 5, 10 ou 15 minutes ou moins (au choix), entre deux lectures : il était plus loin à la lecture d'avant. Un départ qui apparaît déjà aussi proche (première lecture après un démarrage, bus qui vient de quitter son terminus) n'est pas annoncé. Exemple : « quand un bus de l'arrêt 1 est à 5 minutes, allumer l'entrée ». La scène reçoit les minutes, la ligne, la destination et l'heure de départ.

Déclencheur « Nouvelle alerte MBTA à un arrêt » : une alerte en vigueur apparaît pour la première fois à un arrêt suivi, et elle a été créée, mise à jour ou a commencé dans les 2 dernières heures. Filtres : l'arrêt (obligatoire), l'effet (retard, navettes, suspension, détour, arrêt ou station fermés…) et la gravité (grave de 7 à 10, modérée de 4 à 6, mineure de 0 à 3). La première lecture d'un arrêt apprend seulement les alertes déjà là. La scène reçoit le texte de l'alerte, son effet, sa gravité, sa cause, sa période et son lien.

Les compteurs servent aussi dans les scènes habituelles de Gladys, par exemple « si les départs prévus de l'arrêt valent 0, m'envoyer un message ».

Rythme et courtoisie envers le MBTA​

Le MBTA permet 20 requêtes par minute sans clé. L'intégration envoie une requête à la fois, à 3 secondes d'écart au moins :

  • les départs de tous les arrêts en une requête, à l'intervalle choisi (60 secondes par défaut, de 30 à 600) ;
  • les alertes toutes les 5 minutes, une requête par arrêt ;
  • la vérification des arrêts (nom, lignes) une fois, puis de nouveau 30 minutes plus tard pour un arrêt ou une ligne que le MBTA ne connaît pas (1 minute après une vérification en échec, doublée à chaque fois, 30 minutes au plus).

Quand le MBTA signale que sa limite est proche, la requête suivante attend la fin de la minute. Un « 429 » (trop de requêtes) met toutes les lectures en pause pour 2 minutes, doublées à chaque fois, ou jusqu'à la remise à zéro de la limite du MBTA si elle est plus tardive ; une erreur du serveur sur les départs met aussi les lectures en pause (1 minute, doublée à chaque fois). Une pause dure 6 heures au plus. Elle est gardée après un redémarrage, et un redémarrage attend l'intervalle après la dernière lecture (30 secondes après le démarrage quand /data ne dit pas quand elle a eu lieu). Un échec des alertes ou de la vérification des arrêts, sauf un 429, ne retient jamais les départs, et une vérification des arrêts en échec ne retient jamais les alertes.

Dépannage​

MessageQue faire
« le MBTA ne connaît pas cet identifiant »Vérifiez l'identifiant à la fin de la page de l'arrêt sur mbta.com.
« une ligne du filtre ne dessert pas cet arrêt »Corrigez ou retirez la ligne nommée dans le message (identifiant de ligne ou numéro du bus).
« l'arrêt n'a pas encore pu être vérifié »Le MBTA n'a pas répondu à la vérification ; elle est retentée, les départs sont lus quand même.
« diffère de l'horloge de cette machine »Réglez l'horloge de la machine de Gladys (heure automatique) ; la lecture reprend seule.
« Plus mis à jour … à supprimer dans Gladys »Un emplacement a reçu un autre arrêt : supprimez l'ancien appareil dans Gladys.
« flux figé »Les données temps réel du MBTA ne sont plus mises à jour ; rien n'est publié d'ici là.
« le MBTA demande de ralentir (429) »Un autre programme de votre réseau utilise peut-être l'API du MBTA ; la lecture reprend seule.
Un arrêt reste à « Aucun départ prévu »Normal la nuit, ou pour une ligne dont le prochain trajet n'est pas encore suivi.

Vie privée, données et licences​

  • Sans compte, sans clé, sans position : seuls les identifiants d'arrêts que vous tapez sont envoyés au MBTA, dans l'adresse des requêtes.
  • Données : MassDOT / MBTA (api-v3.mbta.com), utilisées selon le MassDOT Developers License Agreement. MassDOT ne donne aucune garantie sur les données, cette intégration non plus.
  • Code de l'intégration : licence Apache 2.0.

Paramètres de configuration​

Voici les paramètres demandés par MBTA Boston dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Départs et alertes du MBTAsectionNonLes prochains départs (métro, tramway, bus, train de banlieue, traversier) et les alertes de service à cinq arrêts au plus du MBTA (région de Boston), lus sur l'API publique MBTA V3 : sans compte ni clé. Chaque arrêt est un appareil. Les départs sont les prévisions temps réel du MBTA : un trajet pas encore suivi n'est pas compté. Données : MassDOT / MBTA, en anglais seulement, selon le MassDOT Developers License Agreement. Vérifiez sur mbta.com avant de partir : cette intégration n'est pas une source officielle.
Langue des textesselectNonLangue des noms d'appareils et du résumé des départs (les noms d'arrêts et les alertes du MBTA restent en anglais).
Intervalle de lecture des départs (secondes)numberNonDe 30 à 600 secondes. Une requête lit les départs de tous les arrêts ; les alertes sont lues toutes les 5 minutes. Le MBTA permet 20 requêtes par minute sans clé.
Arrêt 1sectionNonUn arrêt ou une station du MBTA. Son identifiant est à la fin de sa page sur mbta.com : mbta.com/stops/place-pktrm est Park Street (une station : tous ses quais), mbta.com/stops/1 un arrêt de bus. Obligatoire.
NomstringNonNom de l'appareil dans Gladys (60 caractères au plus). Vide : le nom MBTA de l'arrêt.
Identifiant de l'arrêtstringOuiL'identifiant de l'arrêt ou de la station sur mbta.com (lettres, chiffres, - et _).
Seulement ces lignesstringNonFacultatif : identifiants de lignes ou numéros de bus, séparés par des virgules (« Red », « Green-B », « 1, 47 », « CR-Worcester »). Chacune doit desservir l'arrêt. Vide : toutes les lignes de l'arrêt.
DirectionselectNonLe MBTA numérote 0 et 1 les deux directions d'une ligne.
Arrêt 2 (facultatif)sectionNonUn arrêt ou une station du MBTA. Son identifiant est à la fin de sa page sur mbta.com : mbta.com/stops/place-pktrm est Park Street (une station : tous ses quais), mbta.com/stops/1 un arrêt de bus. Laissez l'identifiant vide pour le désactiver.
NomstringNonNom de l'appareil dans Gladys (60 caractères au plus). Vide : le nom MBTA de l'arrêt.
Identifiant de l'arrêtstringNonL'identifiant de l'arrêt ou de la station sur mbta.com (lettres, chiffres, - et _).
Seulement ces lignesstringNonFacultatif : identifiants de lignes ou numéros de bus, séparés par des virgules (« Red », « Green-B », « 1, 47 », « CR-Worcester »). Chacune doit desservir l'arrêt. Vide : toutes les lignes de l'arrêt.
DirectionselectNonLe MBTA numérote 0 et 1 les deux directions d'une ligne.
Arrêt 3 (facultatif)sectionNonUn arrêt ou une station du MBTA. Son identifiant est à la fin de sa page sur mbta.com : mbta.com/stops/place-pktrm est Park Street (une station : tous ses quais), mbta.com/stops/1 un arrêt de bus. Laissez l'identifiant vide pour le désactiver.
NomstringNonNom de l'appareil dans Gladys (60 caractères au plus). Vide : le nom MBTA de l'arrêt.
Identifiant de l'arrêtstringNonL'identifiant de l'arrêt ou de la station sur mbta.com (lettres, chiffres, - et _).
Seulement ces lignesstringNonFacultatif : identifiants de lignes ou numéros de bus, séparés par des virgules (« Red », « Green-B », « 1, 47 », « CR-Worcester »). Chacune doit desservir l'arrêt. Vide : toutes les lignes de l'arrêt.
DirectionselectNonLe MBTA numérote 0 et 1 les deux directions d'une ligne.
Arrêt 4 (facultatif)sectionNonUn arrêt ou une station du MBTA. Son identifiant est à la fin de sa page sur mbta.com : mbta.com/stops/place-pktrm est Park Street (une station : tous ses quais), mbta.com/stops/1 un arrêt de bus. Laissez l'identifiant vide pour le désactiver.
NomstringNonNom de l'appareil dans Gladys (60 caractères au plus). Vide : le nom MBTA de l'arrêt.
Identifiant de l'arrêtstringNonL'identifiant de l'arrêt ou de la station sur mbta.com (lettres, chiffres, - et _).
Seulement ces lignesstringNonFacultatif : identifiants de lignes ou numéros de bus, séparés par des virgules (« Red », « Green-B », « 1, 47 », « CR-Worcester »). Chacune doit desservir l'arrêt. Vide : toutes les lignes de l'arrêt.
DirectionselectNonLe MBTA numérote 0 et 1 les deux directions d'une ligne.
Arrêt 5 (facultatif)sectionNonUn arrêt ou une station du MBTA. Son identifiant est à la fin de sa page sur mbta.com : mbta.com/stops/place-pktrm est Park Street (une station : tous ses quais), mbta.com/stops/1 un arrêt de bus. Laissez l'identifiant vide pour le désactiver.
NomstringNonNom de l'appareil dans Gladys (60 caractères au plus). Vide : le nom MBTA de l'arrêt.
Identifiant de l'arrêtstringNonL'identifiant de l'arrêt ou de la station sur mbta.com (lettres, chiffres, - et _).
Seulement ces lignesstringNonFacultatif : identifiants de lignes ou numéros de bus, séparés par des virgules (« Red », « Green-B », « 1, 47 », « CR-Worcester »). Chacune doit desservir l'arrêt. Vide : toutes les lignes de l'arrêt.
DirectionselectNonLe MBTA numérote 0 et 1 les deux directions d'une ligne.

Comment installer MBTA Boston dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : MBTA Boston apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/lm1lc3n7/gladys-mbta:0.1.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-mbta.

MBTA Boston nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

MBTA Boston est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par LM1LC3N7, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂