Aller au contenu principal

Intégration domotique DriveBC, gratuite et open source

Intégration DriveBC pour Gladys Assistant

Non officiel. Événements routiers en Colombie-Britannique (données ouvertes DriveBC).

Intégration non officielle. Elle lit les événements routiers que DriveBC (Province de la Colombie-Britannique) publie sur son API Open511 publique : fermetures, travaux, incidents, météo et état des routes. Sans compte ni clé d'API.

Cette intégration n'est pas une source officielle. Avant de prendre la route, consultez DriveBC directement. Les données peuvent avoir du retard sur la route, et l'intégration peut manquer un événement.

Contient des renseignements sous licence Open Government Licence – British Columbia (Licence du gouvernement ouvert – Colombie-Britannique).

Ce que vous obtenez​

Jusqu'à trois zones, un appareil Gladys chacune. Une zone est un cercle autour d'un point (1 à 300 km), éventuellement limité à certaines routes (« Highway 1, Highway 99 »).

Chaque appareil de zone a :

FonctionTypeSens
Événements en courscompteurÉvénements actifs en cours dans la zone
Routes ferméescompteurCeux dont une route est indiquée fermée
Événements majeurscompteurCeux de gravité « majeure »
RésumétexteLes événements, fermetures d'abord, puis les majeurs, puis par distance

Le résumé est écrit dans la langue choisie dans la configuration (anglais ou français) ; les noms de routes et les textes de DriveBC restent en anglais, seule langue de l'API.

En cours veut dire : un événement actif dont l'intervalle de calendrier couvre l'heure actuelle, donnée par le serveur de DriveBC (en-tête Date). Un événement prévu plus tard n'est compté qu'au début de son intervalle. Les horaires quotidiens écrits seulement dans la description (« 7:00 AM to 7:00 PM, weekdays ») ne sont pas lus : un tel événement compte pendant tout son intervalle. Un événement sans calendrier lisible, ou une réponse sans heure de serveur lisible, compte comme en cours. Une heure de serveur à plus d'un jour de l'horloge de Gladys n'est pas crue (prise comme illisible).

Aucun événement : DriveBC répond à une boîte sans aucun événement par un HTTP 500 portant le code 1008 (« Error processing OP5 event data »), jamais par une liste vide (observé sur l'API réelle en octobre 2026). L'intégration lit cette réponse exacte comme « aucun événement » ; tout autre 500 est une panne. Quand une zone qui avait des événements passe à « aucun événement » par cette réponse, 0 n'est publié que si la lecture prévue suivante dit pareil (sans requête de plus) : un intervalle plus tard. Une première lecture, ou une zone déjà à 0, est publiée aussitôt. Une liste dont plus de la moitié des événements est illisible ne vaut jamais 0 : le statut dit que DriveBC envoie des événements illisibles, rien n'est publié, et les lectures continuent à l'intervalle (sans pause).

Déclencheur de scène : « Nouvel événement DriveBC dans une zone »​

Déclenché quand un événement en cours apparaît pour la première fois dans une zone et a été créé, mis à jour ou a commencé dans les 2 dernières heures (heure du serveur). Filtres : zone, types d'événement, gravité. Variables : route, titre et description (en anglais), type, gravité, fermée (oui/non), distance au centre de la zone (km), retard annoncé (minutes, vide quand inconnu), identifiant DriveBC de l'événement.

Il n'est pas déclenché par la première lecture d'une zone, ni après le déplacement d'une zone (nouveau centre, rayon ou routes) : cette lecture apprend seulement ce qui est déjà là. Il n'est pas déclenché quand la réponse n'a pas d'heure de serveur lisible. Au plus 20 événements par zone et par lecture.

Configuration​

  1. Langue du résumé : anglais ou français.
  2. Intervalle de lecture : 3 à 60 minutes (5 par défaut).
  3. Zone 1 (obligatoire), zones 2 et 3 (facultatives, laissées vides pour les désactiver) : un nom, la latitude et la longitude du centre (degrés décimaux, en Colombie-Britannique), le rayon en km (25 par défaut), et au besoin les routes à garder, séparées par des virgules, telles que DriveBC les écrit (« Highway 1 », « Highway 99 » ; « Hwy 99 » marche aussi ; la casse est ignorée). DriveBC nomme les routes locales « Other Roads ».

Un champ refusé est nommé dans le statut (la valeur tapée n'y est pas répétée).

Le bouton Voir la dernière lecture dit ce qu'a donné la dernière lecture de chaque zone et quand vient la suivante. Il ne lit pas DriveBC.

Cadence et égards envers DriveBC​

DriveBC limite son API et demande d'espacer les requêtes d'au moins 10 secondes. L'intégration :

  • envoie une requête à la fois, au moins 12 secondes entre les débuts de deux requêtes (une par zone et par tour ; une zone de plus de 500 événements prend une requête de plus par 500, jusqu'à 2000) ;
  • commence un tour à chaque intervalle, mesuré depuis le début du tour précédent ;
  • ne lit pas plus tôt après un redémarrage, une reconnexion à Gladys, une configuration enregistrée sans changement, une Découverte ou le bouton de test (l'heure de la dernière tentative est gardée dans /data, et en mémoire) ; déplacer une zone la lit aussitôt, 12 secondes après la dernière requête ;
  • quand /data ne peut pas dire la dernière tentative (fichier illisible, date dans le futur, /data non inscriptible ou qui ne répond pas en 2 secondes), attend 3 minutes après le démarrage avant la première lecture, et le dit dans le statut ; un /data qui cesse d'être inscriptible plus tard est dit aussi dans le statut : un redémarrage peut alors lire plus tôt ;
  • après un 429 (« trop de requêtes »), met toutes les lectures en pause 5 minutes, puis 10, 20… jusqu'à 6 heures ; après une erreur du serveur (5xx, hors réponse « aucun événement ») ou un autre statut inattendu (400, 403, 404…), 2 minutes, puis 4, 8… jusqu'à 6 heures ; un Retry-After plus long est respecté, jusqu'à 6 heures. Un refus qui arrive pendant l'enregistrement de la configuration, ou une reconnexion de Gladys, lance quand même la pause. La pause est gardée dans /data d'un redémarrage à l'autre ; le doublement repart de zéro après une lecture réussie ;
  • se présente avec le User-Agent gladys-drivebc/<version> (+https://github.com/LM1LC3N7/gladys-drivebc) ;
  • coupe une réponse après 30 secondes ou 16 Mo.

DriveBC n'offre ni ETag ni Last-Modified sur ses événements : chaque tour relit les événements.

Statut​

L'écran de configuration montre, pour chaque zone, les comptes de la dernière lecture et son heure (heure du Pacifique), ou la raison de l'échec et l'heure des dernières données. Des données de plus de 2 heures sont dites périmées. Quand une lecture échoue, rien n'est publié pour cette zone : les appareils gardent leurs dernières valeurs et le statut dit depuis quand. Un passage à 0 qui attend sa confirmation est dit aussi. L'intégration est montrée connectée quand la dernière lecture d'au moins une zone a réussi, il y a moins de 2 heures.

Vie privée​

Les coordonnées de vos zones restent dans la configuration de Gladys. DriveBC reçoit, pour chaque zone, la boîte autour du cercle (son centre est le milieu de la boîte). Le fichier de /data garde l'heure de la dernière tentative, la pause, et par zone les identifiants des événements déjà vus avec une empreinte salée de la zone, pas ses coordonnées.

Limites​

  • Colombie-Britannique seulement (le centre de la zone doit être en C.-B. ; les événements près des frontières sont inclus).
  • Essayée contre la vraie API de DriveBC le 2026-10-29 ; pas encore essayée par un utilisateur en Colombie-Britannique.
  • Les textes de DriveBC sont en anglais seulement.
  • « Aucun événement » est le HTTP 500 au code 1008 de DriveBC : si DriveBC envoyait un jour cette réponse exacte pendant une panne, une zone montrerait 0 après deux telles lectures de suite (à un intervalle d'écart).

Paramètres de configuration​

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

ParamètreTypeObligatoireDescription
Événements routiers DriveBCsectionNonFermetures, travaux, incidents et état des routes publiés par DriveBC (Province de la Colombie-Britannique), lus sur son API publique Open511 : sans compte ni clé. Jusqu'à trois zones, un appareil chacune. Données en anglais seulement, sous la Licence du gouvernement ouvert – Colombie-Britannique. Vérifiez DriveBC avant de prendre la route : cette intégration n'est pas une source officielle.
Langue du résuméselectNonLangue des noms d'appareils et du texte de résumé (les noms de routes DriveBC restent en anglais).
Intervalle de lecture (minutes)numberNonDe 3 à 60 minutes. DriveBC demande au moins 10 s entre deux requêtes : les zones sont lues l'une après l'autre, à 12 s d'écart.
Zone 1sectionNonUn cercle autour d'un point : les événements en cours à l'intérieur sont comptés. Obligatoire.
NomstringNonNom de l'appareil dans Gladys (60 caractères au plus).
LatitudenumberOuiCentre de la zone, en Colombie-Britannique (degrés décimaux).
LongitudenumberOuiCentre de la zone (degrés décimaux, négatif : ouest).
Rayon (km)numberNonDe 1 à 300 km.
Seulement ces routesstringNonFacultatif : noms de routes tels que DriveBC les écrit, séparés par des virgules (« Highway 1, Highway 99 » ; « Hwy 99 » marche aussi). Vide : toutes les routes de la zone.
Zone 2 (facultative)sectionNonUn cercle autour d'un point : les événements en cours à l'intérieur sont comptés. Laissez la latitude et la longitude vides pour la désactiver.
NomstringNonNom de l'appareil dans Gladys (60 caractères au plus).
LatitudenumberNonCentre de la zone, en Colombie-Britannique (degrés décimaux).
LongitudenumberNonCentre de la zone (degrés décimaux, négatif : ouest).
Rayon (km)numberNonDe 1 à 300 km.
Seulement ces routesstringNonFacultatif : noms de routes tels que DriveBC les écrit, séparés par des virgules (« Highway 1, Highway 99 » ; « Hwy 99 » marche aussi). Vide : toutes les routes de la zone.
Zone 3 (facultative)sectionNonUn cercle autour d'un point : les événements en cours à l'intérieur sont comptés. Laissez la latitude et la longitude vides pour la désactiver.
NomstringNonNom de l'appareil dans Gladys (60 caractères au plus).
LatitudenumberNonCentre de la zone, en Colombie-Britannique (degrés décimaux).
LongitudenumberNonCentre de la zone (degrés décimaux, négatif : ouest).
Rayon (km)numberNonDe 1 à 300 km.
Seulement ces routesstringNonFacultatif : noms de routes tels que DriveBC les écrit, séparés par des virgules (« Highway 1, Highway 99 » ; « Hwy 99 » marche aussi). Vide : toutes les routes de la zone.

Comment installer DriveBC dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : DriveBC 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-drivebc: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-drivebc.

DriveBC 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​

DriveBC 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 🙂