Intégration domotique Border Wait Times Canada/US, gratuite et open source

Non officiel. Attente aux frontières Canada / États-Unis (ASFC, CBP).
Intégration non officielle, sans lien avec l'Agence des services frontaliers du Canada (ASFC) ni avec le U.S. Customs and Border Protection (CBP). Elle lit les temps d'attente aux postes frontaliers terrestres entre le Canada et les États-Unis, dans les deux sens, à partir des données ouvertes des deux agences : pas de compte, pas de clé.
- Vers le Canada : fichier de l'ASFC (
bwt-eng.csv, etbwt-fra.csvpour les noms en français), attente des voyageurs et des véhicules commerciaux. - Vers les États-Unis : flux du CBP (
bwt.cbp.gov), attente des véhicules de tourisme, des voies NEXUS et Ready Lane, des véhicules commerciaux et des voies FAST. Seule la frontière canadienne est gardée.
Lecture seule : rien n'est jamais envoyé aux agences, à part des requêtes GET. Essayée contre les vrais fichiers de l'ASFC et du CBP le 29 octobre 2026 ; le module n'a pas encore été utilisé dans une vraie installation Gladys par un voyageur : dites-nous ce que vous voyez.
Les temps affichés sont des estimations publiées par les agences, à titre indicatif : ils peuvent changer vite et ne remplacent pas les informations officielles.
Installation
- Installez l'intégration, choisissez la langue des noms et l'intervalle de lecture (de 10 à 60 minutes, 15 par défaut), puis enregistrez.
- La première lecture part aussitôt (ou à l'intervalle après la précédente si le conteneur vient de redémarrer). Ouvrez l'onglet Découverte : chaque passage y apparaît deux fois au plus, un appareil par sens (« Vers le Canada : … » et « Vers les États-Unis : … »).
- Créez les passages qui vous intéressent.
Ce que vous obtenez
| Appareil | Fonction | Unité |
|---|---|---|
| Vers le Canada | Attente voyageurs | min |
| Vers le Canada | Attente véhicules commerciaux | min |
| Vers les États-Unis | Attente véhicules de tourisme | min |
| Vers les États-Unis | Attente NEXUS | min |
| Vers les États-Unis | Attente Ready Lane | min |
| Vers les États-Unis | Attente véhicules commerciaux | min |
| Vers les États-Unis | Attente FAST | min |
| Les deux | État | texte |
Une voie que le passage n'a pas ne reçoit simplement jamais de valeur.
- « No Delay » (ASFC) vaut 0 minute : c'est une attente nulle annoncée par l'agence. Au CBP, le nombre de minutes donné est publié tel quel, que la voie soit marquée « delay » ou « no delay » (le flux réel donne « no delay » avec 0, 1 ou 5 minutes).
- « Closed », « Not Applicable », « -- », « Lanes Closed », « Update Pending », « N/A » ou un texte inconnu ne sont jamais publiés comme un nombre : la fonction État le dit (« Fermé », « Voies fermées », « Mise à jour en attente à la source », « Sans objet pour ce passage », « Pas de mesure publiée par la source », « Valeur illisible : rien publié »).
- L'état donne aussi l'heure du relevé : celle de l'ASFC avec son fuseau
(ex.
2026-10-29 16:40 EDT), celle du CBP en heure locale du poste.
Fraîcheur
- Chaque relevé n'est publié qu'une fois (dédoublonné sur l'heure donnée par la source, gardée dans /data) : une scène « attente sous X minutes » part donc sur un nouveau relevé, pas à chaque lecture.
- Un relevé de plus de 2 heures (âge compté comme ci-dessous) n'est jamais publié ; l'état devient
« Relevé périmé (plus de 2 h) » avec son heure. L'âge se compte depuis l'en-tête
Datedu serveur (ASFC) ou l'heure locale du poste (CBP). - Le flux du CBP indique l'heure de chaque poste : s'il ne bouge plus pendant plus de 2 heures, plus rien n'en est publié et l'état devient « Source muette depuis plus de 2 h : rien publié ».
- Le CBP saisit le fuseau à la main (on y voit « EST » en octobre) : il n'est
pas utilisé. Chaque poste a son fuseau (d'après son district du CBP : Est,
Centre, Rocheuses, Pacifique, Alaska ; un district inconnu prend le fuseau
dont le décalage correspond à l'heure du flux comparée à l'en-tête
Date) : les heures locales deviennent des instants exacts, changements d'heure compris, la veille si elles sont plus tard que l'heure du poste. - Changement d'heure : en mars, un relevé d'avant le saut garde son âge réel. En novembre, l'heure de 1 h à 2 h passe deux fois : une heure de relevé dans cette plage, jamais vue avant, est prise comme la première des deux (la plus ancienne) ; un relevé de plus de 2 heures n'est donc jamais pris pour un frais, au prix, une fois par an, d'un relevé frais de cette heure-là écarté. Une heure qui suit un relevé déjà publié pour la même voie est prise comme la seconde : le nouveau relevé est publié.
- Un poste d'un district inconnu (aucun aujourd'hui : les 30 postes du flux ont leur district) peut être dans plusieurs fuseaux au moment d'un changement d'heure, en mars comme en novembre : le relevé le plus ancien possible est retenu ; jamais de relevé périmé publié, quelques relevés frais de ces heures-là écartés. Les fuseaux devinés sont gardés et affinés de lecture en lecture.
- Un poste dont l'heure s'écarte de plus de 2 heures de l'en-tête
Datedu serveur (flux servi depuis un cache, poste figé) ne publie rien ; tout le flux de même si son heure la plus récente est dans ce cas. - Gladys garde la dernière valeur publiée d'une fonction : quand une attente n'est plus connue, c'est la fonction État qui le dit, pas la valeur.
Déclencher une scène « attente sous X minutes »
Dans une scène, choisissez le déclencheur Changement d'état de l'appareil, la fonction d'attente voulue et la condition « inférieur à X ». Elle part au premier relevé frais sous X.
Rythme et sources
- Une lecture toutes les N minutes (10 à 60), jamais plus souvent pour une même source : enregistrer le formulaire, une reconnexion, l'onglet Découverte, un appareil créé ou un redémarrage ne relancent aucune lecture (l'heure de la dernière tentative est écrite dans /data avant chaque lecture). Exceptions : un intervalle raccourci dans le formulaire rend la lecture suivante due plus tôt (au plus tôt à la nouvelle durée après la dernière) ; une lecture coupée par un enregistrement ou une reconnexion reprend une minute plus tard, pour les seules sources qu'elle n'avait pas encore demandées (une source demandée, même coupée, attend son intervalle) ; un redémarrage alors que /data n'a pu être lu ou écrit lit aussitôt.
- Un appareil créé reçoit tout de suite les relevés frais déjà en mémoire (sans lecture) ; renommer ou déplacer un appareil ne renvoie rien.
- Une requête à la fois : l'ASFC en anglais, l'ASFC en français (seulement si la langue est le français, pour les noms), puis le CBP. Chaque requête est bornée à 20 secondes et en taille (256 Ko pour l'ASFC, 4 Mo pour le CBP).
- L'ASFC reçoit les en-têtes
If-None-Match/If-Modified-Sincequ'elle propose ; le CBP n'en propose pas. - User-Agent :
gladys-attente-frontiere/<version> (+adresse du dépôt). - Une réponse 429 ou 5xx met cette source en pause (5 minutes doublées à
chaque échec,
Retry-Afterrespecté, entre 60 secondes et 6 heures), pause gardée au redémarrage. L'autre source continue d'être lue. Le fichier français de l'ASFC (même serveur) n'est pas demandé quand le fichier anglais vient d'être refusé ou est en pause. - Les noms français de l'ASFC ne bloquent jamais rien : sans eux, les noms anglais sont utilisés.
Statut de l'intégration
« Connecté » dès qu'au moins une des deux sources a été lue à sa dernière tentative (le CBP ne compte que si son flux bouge encore). Après un redémarrage, avant la lecture suivante : « connecté » si une source avait été lue avec succès dans l'intervalle (gardé dans /data), sinon « En attente de la première lecture (dans N min) » ; les états des appareils restent ceux déjà affichés. Le message dit pour chaque source ce qui ne va pas : injoignable, pas de réponse à temps, pause après un 429 ou un 5xx, format inattendu, flux figé ou en retard ; et aussi un intervalle remplacé (hors 10-60 minutes), un /data illisible (mis de côté sous un autre nom) ou non inscriptible, des valeurs reportées à la lecture suivante (Gladys accepte 300 états par minute, le module en envoie 250 au plus sur une minute glissante ; au-delà, les valeurs reportées passent en tête la fois suivante, à tour de rôle).
Données et licences
- Contient des informations visées par la Licence du gouvernement ouvert – Canada (ASFC, jeu de données « Temps d'attente actuels à la frontière »).
- Les données du CBP sont une œuvre du gouvernement des États-Unis, dans le domaine public.
- Aucune donnée personnelle n'est lue ni gardée.
Paramètres de configuration
Voici les paramètres demandés par Border Wait Times Canada/US dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Temps d'attente aux frontières | section | Non | Données ouvertes de l'Agence des services frontaliers du Canada (vers le Canada) et du U.S. Customs and Border Protection (vers les États-Unis) : sans compte ni clé. Intégration non officielle, sans lien avec ces agences. Les attentes sont des estimations des agences, mises à jour environ toutes les heures, montrées telles qu'elles les publient : un relevé de plus de 2 heures n'est jamais publié. Après l'enregistrement, ouvrez l'onglet Découverte et créez les passages voulus : un appareil par passage et par sens. |
| Langue des noms | select | Non | Langue des noms d'appareils proposés dans la Découverte et des textes d'état. Les noms français des passages viennent de l'ASFC ; ceux du CBP n'existent qu'en anglais. |
| Lecture toutes les (minutes) | number | Non | Temps entre deux lectures des sources, de 10 à 60 minutes. Les agences mettent leurs données à jour environ toutes les heures. |
Comment installer Border Wait Times Canada/US dans Gladys
- Dans Gladys, ouvrez Intégrations : Border Wait Times Canada/US apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/lm1lc3n7/gladys-attente-frontiere:0.1.2), 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). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-attente-frontiere.
Border Wait Times Canada/US 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
Border Wait Times Canada/US 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.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation