Aller au contenu principal

Intégration domotique GeoJSON & GeoRSS feeds, gratuite et open source

Intégration GeoJSON & GeoRSS feeds pour Gladys Assistant

Événements géolocalisés (séismes, incendies, alertes) de flux GeoJSON ou GeoRSS, près de chez vous.

Un lecteur générique de flux d'événements géolocalisés pour Gladys Assistant : collez l'adresse de cinq flux au plus (séismes de l'USGS, alertes du GDACS, incendies du NSW Rural Fire Service, flux d'une préfecture ou d'un service local…), et Gladys suit les événements dans un rayon autour de votre maison, les affiche sur le tableau de bord et lance une scène quand l'un apparaît ou disparaît.

Formats lus : GeoJSON (FeatureCollection), GeoRSS (Simple et GML), W3C geo (geo:lat / geo:long), RSS 2.0, RSS 1.0 et Atom.

Pour les catastrophes mondiales ou les séismes européens, les intégrations dédiées GDACS et EMSC connaissent mieux leur source (niveaux d'alerte, révisions de magnitude) : celle-ci sert pour tous les autres flux.

Un complément, pas un système d'alerte de sécurité : suivez les consignes des autorités locales.

Ce que vous obtenez​

  • Un appareil par flux : le nombre d'événements dans la zone, la distance et le titre du plus proche, le dernier événement en toutes lettres, et un badge qui dit si le flux se lit.
  • Un widget de tableau de bord : les événements en cours de chaque flux, puis les plus proches.
  • Deux déclencheurs de scène : nouvel événement dans la zone, événement disparu.
  • Une action de scène qui lit les événements de votre zone en une phrase.

Prérequis​

  • Gladys Assistant 5.1.0 ou plus récent.
  • Un accès Internet depuis Gladys (les flux sont lus par le conteneur de l'intégration).
  • La position de votre maison dans Gladys (Paramètres → Maisons), ou des coordonnées saisies dans la configuration. Sans l'une ni l'autre, seuls les flux au rayon « Tout le flux » fonctionnent.
  • L'adresse d'un flux public. Quelques-uns qui marchent :
    • séismes du dernier jour de l'USGS : https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson
    • alertes de catastrophes du GDACS : https://www.gdacs.org/xml/rss.xml
    • grands incendies du NSW Rural Fire Service : https://www.rfs.nsw.gov.au/feeds/majorIncidents.json

Configuration​

Réglages​

Pour chacun des cinq flux :

RéglageUsage
Adresse du fluxhttp ou https, 5 Mo au plus. Vide : l'emplacement ne sert pas.
NomAffiché dans le widget et les scènes. Vide : « Flux géolocalisé 1 (hôte) ».
RayonDistance du centre à l'événement. « Tout le flux » : tous les événements, pour un flux local.
Catégories (facultatif)Ne garder que les événements dont la catégorie contient l'un de ces mots (séparés par virgule).
Propriété numérique (facultatif)Une propriété numérique des événements, mag pour l'USGS : envoyée aux scènes comme value.
Valeur minimale (facultatif)Les événements dont la propriété est plus basse, ou absente, sont ignorés.

Puis, pour tous les flux :

  • Latitude / longitude du centre : vides, la position de votre maison.
  • Fréquence de mise à jour : de 5 à 60 minutes.
  • Âge maximal des événements : les plus anciens sont ignorés ; ceux sans date lisible sont gardés.
  • Langue des textes : noms des appareils et fonctionnalités à leur création, textes envoyés aux scènes.

Enregistrez, puis ouvrez l'onglet Découverte et créez les appareils.

Lecture d'un flux​

  • GeoJSON : un Point est pris tel quel ; pour un Polygon, un MultiPolygon ou une ligne, le centre de ses points ; pour une GeometryCollection, son premier Point (NSW RFS envoie le point du feu et sa zone).
  • L'identifiant est id ou guid ; sans lui, une empreinte du titre, du lien et de la position.
  • Titre : title, name, headline ou place. Date : time, date, pubDate, published, updated. Catégorie : category ou type. Lien : url ou link.
  • RSS et Atom : georss:point, georss:polygon, georss:box, gml:pos ou geo:lat / geo:long ; titre, lien, guid ou id, pubDate ou updated, category. Les éléments sans position sont ignorés.
  • Rien d'un flux n'est jamais exécuté : il est seulement lu. Le DOCTYPE XML est ignoré.

Appareil​

Un appareil par flux, mis à jour par l'intégration elle-même (pas d'interrogation par Gladys) :

FonctionnalitéTypeValeur
Événements dans la zonecompteurLes événements suivis du flux.
Distance de l'événement le plus prochedistance, kmLe plus proche des événements suivis ; 20 038 km (le plus loin possible) sinon.
Événement le plus prochetexteSon titre.
Dernier événementtexteLe plus récent des événements suivis, avec sa distance.

Le badge de l'appareil affiche « Cloud » quand la dernière lecture a réussi, « Injoignable » sinon ; la raison (pas de réponse, erreur HTTP, pas un flux…) est dans l'état de l'intégration et le widget.

Widget du tableau de bord​

Événements géolocalisés : un titre avec le nombre d'événements, une ligne par flux (son nombre, ou pourquoi il ne se lit pas), les événements les plus proches (8 au plus) avec leur flux et leur distance, et l'heure de la dernière lecture. Touchez un événement : son résumé, sa date et un lien vers lui. Les réglages choisissent les flux affichés (vide : tous).

Déclencheurs de scène​

Flux géolocalisé : nouvel événement dans la zone : un événement entre dans les événements suivis d'un flux (rayon, âge, catégories et valeur minimale). Flux géolocalisé : événement disparu : un événement suivi quitte le flux, ou ne correspond plus (trop ancien, éloigné).

La première lecture d'un flux, et la première après un changement de configuration, ne déclenchent rien : ce qui est là est le point de départ. Un redémarrage non plus (les événements suivis sont gardés dans /data). Au plus 20 événements par flux et par lecture.

Filtre : le flux (vide : n'importe lequel). Variables :

VariableContenu
feed_nameLe nom du flux.
titleLe titre de l'événement.
categorySes catégories, séparées par des virgules.
distance_kmDistance au centre, vide sans centre.
valueLa propriété numérique choisie pour le flux, vide sans elle.
timeLa date de l'événement (ISO 8601), vide si inconnue.
urlLe lien de l'événement.
summaryTitre et distance, prêts pour un message.
latitudeLatitude de l'événement.
longitudeLongitude de l'événement.
propertiesLes propriétés simples de l'événement, en JSON.

Action de scène​

Flux géolocalisé : lire les événements relit les flux si besoin et répond par text (les événements en une phrase, du plus proche au plus lointain), count et nearest_km (20038 s'il n'y en a aucun). Le filtre de flux la limite à un seul flux. Le bouton Lire les flux maintenant de la configuration dit, flux par flux, ce qui a été lu.

Exemples de scènes​

  • Séisme proche : déclencheur « nouvel événement dans la zone » sur le flux USGS (rayon 250 km, propriété mag, minimum 4) → envoyer le message « {{summary}}, magnitude {{value}} ».
  • Feu de brousse : flux NSW RFS, catégories Watch and Act, Emergency, rayon 50 km → allumer une lampe en rouge et envoyer le lien {{url}}.
  • Point du matin : chaque jour à 7 h 30, action « lire les événements » → lire text à voix haute.

Sources des données, conditions et quotas​

Les données appartiennent à l'éditeur de chaque flux : lisez et respectez ses conditions d'utilisation, et citez-le si vous les partagez. Les flux de l'USGS sont dans le domaine public (earthquake.usgs.gov), le GDACS demande à être cité. L'intégration lit chaque flux au plus toutes les 5 minutes, avec son propre User-Agent, et lit 5 Mo au plus : assez pour les flux publics, mis à jour le plus souvent toutes les 5 à 15 minutes.

Dépannage​

  • « pas un flux GeoJSON, RSS ou Atom » : l'adresse donne une page web. Cherchez le lien du flux (GeoJSON, RSS, Atom) sur le site de l'éditeur.
  • Aucun événement alors que le flux en a : vérifiez le rayon et la position de votre maison, les catégories et la valeur minimale ; une propriété que les événements n'ont pas les exclut tous.
  • « Aucun centre » : indiquez la position de votre maison dans Gladys ou saisissez des coordonnées.
  • Les dates manquent (NSW RFS) : le flux donne des dates locales sans fuseau ; elles ne sont pas devinées. L'âge maximal garde ces événements.
  • Journaux : docker logs du conteneur de l'intégration ; LOG_LEVEL=debug montre chaque lecture.

Limites​

  • Cinq flux au plus ; un rayon et des filtres par flux.
  • La distance est mesurée jusqu'au centre d'une zone, pas jusqu'à son bord : une grande zone autour de votre maison peut être plus loin que le rayon.
  • Pas d'authentification : flux publics seulement (un jeton dans l'adresse fonctionne, et n'est jamais journalisé).
  • Non affiliée à l'USGS, au GDACS, au NSW RFS ni à aucun éditeur de flux.

Paramètres de configuration​

Voici les paramètres demandés par GeoJSON & GeoRSS feeds dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Vos fluxsectionNonCollez l'adresse de cinq flux d'événements géolocalisés au plus : GeoJSON, GeoRSS, RSS ou Atom (séismes, incendies, alertes d'un service local…). Chaque flux devient un appareil : enregistrez, puis créez-le dans l'onglet Découverte.
Flux 1sectionNonExemple : les séismes du dernier jour de l'USGS, https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson
Adresse du fluxstringNonhttp ou https. GeoJSON, GeoRSS, RSS 2.0 ou Atom, 5 Mo au plus.
NomstringNonAffiché dans le widget et les scènes. Vide : l'hôte de l'adresse.
RayonselectNonDistance du centre à l'événement (le centre d'une zone). Tout le flux : tous les événements, pour un flux local.
Catégories (facultatif)stringNonNe garder que les événements dont la catégorie contient l'un de ces mots, séparés par des virgules.
Propriété numérique (facultatif)stringNonNom d'une propriété numérique des événements (mag pour l'USGS) : envoyée aux scènes comme valeur, et filtrée par le minimum ci-dessous.
Valeur minimale (facultatif)stringNonLes événements dont la propriété est plus basse, ou absente, sont ignorés.
Flux 2sectionNonFacultatif : laissez l'adresse vide s'il ne sert pas.
Adresse du fluxstringNonhttp ou https. GeoJSON, GeoRSS, RSS 2.0 ou Atom, 5 Mo au plus.
NomstringNonAffiché dans le widget et les scènes. Vide : l'hôte de l'adresse.
RayonselectNonDistance du centre à l'événement (le centre d'une zone). Tout le flux : tous les événements, pour un flux local.
Catégories (facultatif)stringNonNe garder que les événements dont la catégorie contient l'un de ces mots, séparés par des virgules.
Propriété numérique (facultatif)stringNonNom d'une propriété numérique des événements (mag pour l'USGS) : envoyée aux scènes comme valeur, et filtrée par le minimum ci-dessous.
Valeur minimale (facultatif)stringNonLes événements dont la propriété est plus basse, ou absente, sont ignorés.
Flux 3sectionNonFacultatif : laissez l'adresse vide s'il ne sert pas.
Adresse du fluxstringNonhttp ou https. GeoJSON, GeoRSS, RSS 2.0 ou Atom, 5 Mo au plus.
NomstringNonAffiché dans le widget et les scènes. Vide : l'hôte de l'adresse.
RayonselectNonDistance du centre à l'événement (le centre d'une zone). Tout le flux : tous les événements, pour un flux local.
Catégories (facultatif)stringNonNe garder que les événements dont la catégorie contient l'un de ces mots, séparés par des virgules.
Propriété numérique (facultatif)stringNonNom d'une propriété numérique des événements (mag pour l'USGS) : envoyée aux scènes comme valeur, et filtrée par le minimum ci-dessous.
Valeur minimale (facultatif)stringNonLes événements dont la propriété est plus basse, ou absente, sont ignorés.
Flux 4sectionNonFacultatif : laissez l'adresse vide s'il ne sert pas.
Adresse du fluxstringNonhttp ou https. GeoJSON, GeoRSS, RSS 2.0 ou Atom, 5 Mo au plus.
NomstringNonAffiché dans le widget et les scènes. Vide : l'hôte de l'adresse.
RayonselectNonDistance du centre à l'événement (le centre d'une zone). Tout le flux : tous les événements, pour un flux local.
Catégories (facultatif)stringNonNe garder que les événements dont la catégorie contient l'un de ces mots, séparés par des virgules.
Propriété numérique (facultatif)stringNonNom d'une propriété numérique des événements (mag pour l'USGS) : envoyée aux scènes comme valeur, et filtrée par le minimum ci-dessous.
Valeur minimale (facultatif)stringNonLes événements dont la propriété est plus basse, ou absente, sont ignorés.
Flux 5sectionNonFacultatif : laissez l'adresse vide s'il ne sert pas.
Adresse du fluxstringNonhttp ou https. GeoJSON, GeoRSS, RSS 2.0 ou Atom, 5 Mo au plus.
NomstringNonAffiché dans le widget et les scènes. Vide : l'hôte de l'adresse.
RayonselectNonDistance du centre à l'événement (le centre d'une zone). Tout le flux : tous les événements, pour un flux local.
Catégories (facultatif)stringNonNe garder que les événements dont la catégorie contient l'un de ces mots, séparés par des virgules.
Propriété numérique (facultatif)stringNonNom d'une propriété numérique des événements (mag pour l'USGS) : envoyée aux scènes comme valeur, et filtrée par le minimum ci-dessous.
Valeur minimale (facultatif)stringNonLes événements dont la propriété est plus basse, ou absente, sont ignorés.
OptionssectionNon
Latitude du centrestringNonLaissez les deux coordonnées vides pour utiliser la position de votre maison dans Gladys.
Longitude du centrestringNonDegrés décimaux, positifs à l'est.
Fréquence de mise à jourselectNonChaque flux est lu à ce rythme. 5 minutes au moins : les flux sont des services publics.
Âge maximal des événementsselectNonLes événements plus anciens sont ignorés. Ceux sans date lisible sont gardés.
Langue des textesselectNonNoms des appareils et fonctionnalités (à leur création) et textes envoyés aux scènes.
Sources et limitessectionNonLes données appartiennent à l'éditeur de chaque flux : respectez ses conditions d'utilisation. Un complément, pas un système d'alerte de sécurité : suivez les consignes des autorités locales.

Comment installer GeoJSON & GeoRSS feeds dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : GeoJSON & GeoRSS feeds 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/guim31/gladys-geofeeds:1.0.0), 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/guim31/gladys-geofeeds.

GeoJSON & GeoRSS feeds 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​

GeoJSON & GeoRSS feeds 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 guim31, 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 🙂