Zum Hauptinhalt springen

GeoJSON & GeoRSS feeds Smart-Home-Integration, kostenlos und Open Source

GeoJSON & GeoRSS feeds-Integration für Gladys Assistant

Verortete Ereignisse (Erdbeben, Brände, Warnungen) aus GeoJSON- oder GeoRSS-Feeds, nahe deinem Haus.

Ein allgemeiner Leser für Feeds verorteter Ereignisse in Gladys Assistant: Füge die Adresse von bis zu fünf Feeds ein (Erdbeben des USGS, Warnungen von GDACS, Brände des NSW Rural Fire Service, der Feed einer örtlichen Behörde…), und Gladys verfolgt die Ereignisse in einem Radius um dein Haus, zeigt sie im Dashboard und startet eine Szene, wenn eines erscheint oder verschwindet.

Gelesene Formate: GeoJSON (FeatureCollection), GeoRSS (Simple und GML), W3C geo (geo:lat / geo:long), RSS 2.0, RSS 1.0 und Atom.

Für weltweite Katastrophen oder europäische Erdbeben kennen die eigenen Integrationen GDACS und EMSC ihre Quelle besser (Warnstufen, Magnitudenkorrekturen): Diese hier ist für alle anderen Feeds.

Eine Ergänzung, kein Sicherheitswarnsystem: Befolge die Anweisungen deiner örtlichen Behörden.

Was du bekommst​

  • Ein Gerät pro Feed: die Zahl der Ereignisse im Gebiet, Entfernung und Titel des nächsten, das neueste Ereignis in Worten und ein Badge, das zeigt, ob sich der Feed lesen lässt.
  • Ein Dashboard-Widget: die aktuellen Ereignisse jedes Feeds, dann die nächsten.
  • Zwei Szenen-Auslöser: neues Ereignis im Gebiet, Ereignis entfernt.
  • Eine Szenen-Aktion, die die Ereignisse deines Gebiets als einen Satz liest.

Voraussetzungen​

  • Gladys Assistant 5.1.0 oder neuer.
  • Internetzugang von Gladys aus (die Feeds liest der Container der Integration).
  • Der Standort deines Hauses in Gladys (Einstellungen → Häuser) oder in der Konfiguration eingetragene Koordinaten. Ohne beides funktionieren nur Feeds mit dem Radius „Ganzer Feed“.
  • Die Adresse eines öffentlichen Feeds. Einige, die funktionieren:
    • Erdbeben des letzten Tages vom USGS: https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson
    • Katastrophenwarnungen von GDACS: https://www.gdacs.org/xml/rss.xml
    • Große Einsätze des NSW Rural Fire Service: https://www.rfs.nsw.gov.au/feeds/majorIncidents.json

Konfiguration​

Einstellungen​

Für jeden der fünf Feeds:

EinstellungVerwendung
Feed-Adressehttp oder https, höchstens 5 MB. Leer: Der Platz wird nicht genutzt.
NameIm Widget und in den Szenen angezeigt. Leer: „Geo-Feed 1 (Host)“.
RadiusEntfernung vom Mittelpunkt zum Ereignis. „Ganzer Feed“: alle Ereignisse, für lokale Feeds.
Kategorien (optional)Nur Ereignisse behalten, deren Kategorie eines dieser Wörter enthält (durch Kommas getrennt).
Zahlen-Eigenschaft (optional)Eine Zahlen-Eigenschaft der Ereignisse, mag beim USGS: als value an die Szenen gesendet.
Mindestwert (optional)Ereignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert.

Dann, für alle Feeds:

  • Breiten- / Längengrad des Mittelpunkts: leer, der Standort deines Hauses.
  • Aktualisierungsintervall: 5 bis 60 Minuten.
  • Höchstalter der Ereignisse: ältere werden ignoriert; Ereignisse ohne lesbares Datum bleiben.
  • Sprache der Texte: Namen der Geräte und Funktionen bei ihrer Erstellung, Texte für die Szenen.

Speichere, öffne dann den Tab Entdecken und lege die Geräte an.

Wie ein Feed gelesen wird​

  • GeoJSON: Ein Point wird so genommen, wie er ist; bei Polygon, MultiPolygon oder Linie die Mitte ihrer Punkte; bei einer GeometryCollection ihr erster Point (NSW RFS sendet den Brandpunkt und seine Fläche).
  • Die Kennung ist id oder guid; ohne sie ein Fingerabdruck aus Titel, Link und Position.
  • Titel: title, name, headline oder place. Datum: time, date, pubDate, published, updated. Kategorie: category oder type. Link: url oder link.
  • RSS und Atom: georss:point, georss:polygon, georss:box, gml:pos oder geo:lat / geo:long; Titel, Link, guid oder id, pubDate oder updated, category. Einträge ohne Position werden übersprungen.
  • Nichts aus einem Feed wird je ausgeführt: Er wird nur gelesen. Der XML-DOCTYPE wird ignoriert.

Gerät​

Ein Gerät pro Feed, von der Integration selbst aktualisiert (keine Abfrage durch Gladys):

FunktionTypWert
Ereignisse im GebietZählerDie verfolgten Ereignisse des Feeds.
Entfernung des nächsten EreignissesEntfernung, kmDas nächste verfolgte Ereignis; 20.038 km (so weit wie möglich), wenn keins.
Nächstes EreignisTextSein Titel.
Neuestes EreignisTextDas neueste verfolgte Ereignis, mit seiner Entfernung.

Das Badge des Geräts zeigt „Cloud“, wenn das letzte Lesen geklappt hat, sonst „Nicht erreichbar“; der Grund (keine Antwort, HTTP-Fehler, kein Feed…) steht im Status der Integration und im Widget.

Dashboard-Widget​

Geo-Feed-Ereignisse: eine Überschrift mit der Zahl der Ereignisse, eine Zeile pro Feed (seine Zahl oder warum er sich nicht lesen lässt), die nächsten Ereignisse (höchstens 8) mit Feed und Entfernung und die Uhrzeit des letzten Lesens. Tippe auf ein Ereignis: seine Zusammenfassung, sein Datum und ein Link dazu. In den Einstellungen wählst du die angezeigten Feeds (leer: alle).

Szenen-Auslöser​

Geo-Feed: neues Ereignis im Gebiet: Ein Ereignis kommt zu den verfolgten Ereignissen eines Feeds hinzu (Radius, Alter, Kategorien und Mindestwert). Geo-Feed: Ereignis entfernt: Ein verfolgtes Ereignis verschwindet aus dem Feed oder passt nicht mehr (zu alt, entfernt).

Das erste Lesen eines Feeds und das erste nach einer Änderung der Konfiguration lösen nichts aus: Was da ist, ist der Ausgangspunkt. Ein Neustart auch nicht (die verfolgten Ereignisse liegen in /data). Höchstens 20 Ereignisse pro Feed und Lesen.

Filter: der Feed (leer: beliebig). Variablen:

VariableInhalt
feed_nameDer Name des Feeds.
titleDer Titel des Ereignisses.
categorySeine Kategorien, durch Kommas getrennt.
distance_kmEntfernung zum Mittelpunkt, leer ohne Mittelpunkt.
valueDie für den Feed gewählte Zahlen-Eigenschaft, leer ohne sie.
timeDas Datum des Ereignisses (ISO 8601), leer, wenn unbekannt.
urlDer Link des Ereignisses.
summaryTitel und Entfernung, fertig für eine Nachricht.
latitudeBreitengrad des Ereignisses.
longitudeLängengrad des Ereignisses.
propertiesDie einfachen Eigenschaften des Ereignisses, als JSON.

Szenen-Aktion​

Geo-Feed: Ereignisse lesen liest die Feeds bei Bedarf neu und antwortet mit text (die Ereignisse als ein Satz, die nächsten zuerst), count und nearest_km (20038, wenn es keins gibt). Der Feed-Filter beschränkt sie auf einen Feed. Die Schaltfläche Feeds jetzt lesen der Konfiguration zeigt Feed für Feed, was gelesen wurde.

Szenen-Beispiele​

  • Erdbeben in der Nähe: Auslöser „neues Ereignis im Gebiet“ auf dem USGS-Feed (Radius 250 km, Eigenschaft mag, Minimum 4) → Nachricht „{{summary}}, Magnitude {{value}}“ senden.
  • Buschfeuer: NSW-RFS-Feed, Kategorien Watch and Act, Emergency, Radius 50 km → eine Lampe rot einschalten und den Link {{url}} senden.
  • Morgenüberblick: jeden Tag um 7:30 die Aktion „Ereignisse lesen“ → text vorlesen.

Datenquellen, Bedingungen und Kontingente​

Die Daten gehören dem Herausgeber jedes Feeds: Lies und beachte seine Nutzungsbedingungen und nenne ihn, wenn du sie teilst. Die Feeds des USGS sind gemeinfrei (earthquake.usgs.gov), GDACS möchte genannt werden. Die Integration liest jeden Feed höchstens alle 5 Minuten, mit eigenem User-Agent, und liest höchstens 5 MB: genug für öffentliche Feeds, die meist alle 5 bis 15 Minuten aktualisiert werden.

Fehlerbehebung​

  • „kein GeoJSON-, RSS- oder Atom-Feed“: Die Adresse liefert eine Webseite. Suche auf der Seite des Herausgebers den Link des Feeds (GeoJSON, RSS, Atom).
  • Kein Ereignis, obwohl der Feed welche hat: Prüfe den Radius und den Standort deines Hauses, die Kategorien und den Mindestwert; eine Eigenschaft, die die Ereignisse nicht haben, schließt sie alle aus.
  • „Kein Mittelpunkt“: Gib deinem Haus in Gladys einen Standort oder trage Koordinaten ein.
  • Die Daten fehlen (NSW RFS): Der Feed liefert lokale Daten ohne Zeitzone; sie werden nicht geraten. Das Höchstalter behält diese Ereignisse.
  • Protokolle: docker logs des Containers der Integration; LOG_LEVEL=debug zeigt jedes Lesen.

Grenzen​

  • Höchstens fünf Feeds; ein Radius und Filter pro Feed.
  • Die Entfernung wird zur Mitte eines Gebiets gemessen, nicht zu seinem Rand: Ein großes Gebiet um dein Haus kann weiter weg sein als der Radius.
  • Keine Anmeldung: nur öffentliche Feeds (ein Token in der Adresse funktioniert und wird nie protokolliert).
  • Nicht mit dem USGS, GDACS, NSW RFS oder einem anderen Feed-Herausgeber verbunden.

Konfigurationseinstellungen​

Diese Einstellungen fragt GeoJSON & GeoRSS feeds in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Deine FeedssectionNeinFüge die Adresse von bis zu fünf Feeds mit verorteten Ereignissen ein: GeoJSON, GeoRSS, RSS oder Atom (Erdbeben, Brände, Warnungen eines örtlichen Dienstes…). Jeder Feed wird ein Gerät: Speichere und lege es dann im Tab „Entdecken“ an.
Feed 1sectionNeinBeispiel: die Erdbeben des letzten Tages vom USGS, https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson
Feed-AdressestringNeinhttp oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB.
NamestringNeinIm Widget und in den Szenen angezeigt. Leer: der Host der Adresse.
RadiusselectNeinEntfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed.
Kategorien (optional)stringNeinNur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt.
Zahlen-Eigenschaft (optional)stringNeinName einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert.
Mindestwert (optional)stringNeinEreignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert.
Feed 2sectionNeinOptional: Lass die Adresse leer, wenn du ihn nicht brauchst.
Feed-AdressestringNeinhttp oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB.
NamestringNeinIm Widget und in den Szenen angezeigt. Leer: der Host der Adresse.
RadiusselectNeinEntfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed.
Kategorien (optional)stringNeinNur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt.
Zahlen-Eigenschaft (optional)stringNeinName einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert.
Mindestwert (optional)stringNeinEreignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert.
Feed 3sectionNeinOptional: Lass die Adresse leer, wenn du ihn nicht brauchst.
Feed-AdressestringNeinhttp oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB.
NamestringNeinIm Widget und in den Szenen angezeigt. Leer: der Host der Adresse.
RadiusselectNeinEntfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed.
Kategorien (optional)stringNeinNur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt.
Zahlen-Eigenschaft (optional)stringNeinName einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert.
Mindestwert (optional)stringNeinEreignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert.
Feed 4sectionNeinOptional: Lass die Adresse leer, wenn du ihn nicht brauchst.
Feed-AdressestringNeinhttp oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB.
NamestringNeinIm Widget und in den Szenen angezeigt. Leer: der Host der Adresse.
RadiusselectNeinEntfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed.
Kategorien (optional)stringNeinNur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt.
Zahlen-Eigenschaft (optional)stringNeinName einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert.
Mindestwert (optional)stringNeinEreignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert.
Feed 5sectionNeinOptional: Lass die Adresse leer, wenn du ihn nicht brauchst.
Feed-AdressestringNeinhttp oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB.
NamestringNeinIm Widget und in den Szenen angezeigt. Leer: der Host der Adresse.
RadiusselectNeinEntfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed.
Kategorien (optional)stringNeinNur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt.
Zahlen-Eigenschaft (optional)stringNeinName einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert.
Mindestwert (optional)stringNeinEreignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert.
OptionensectionNein
Breitengrad des MittelpunktsstringNeinLass beide Koordinaten leer, um den Standort deines Hauses in Gladys zu verwenden.
Längengrad des MittelpunktsstringNeinDezimalgrad, Osten positiv.
AktualisierungsintervallselectNeinJeder Feed wird so oft gelesen. Mindestens 5 Minuten: Die Feeds sind öffentliche Dienste.
Höchstalter der EreignisseselectNeinÄltere Ereignisse werden ignoriert. Ereignisse ohne lesbares Datum bleiben.
Sprache der TexteselectNeinNamen der Geräte und Funktionen (bei ihrer Erstellung) und Texte für die Szenen.
Quellen und GrenzensectionNeinDie Daten gehören dem Herausgeber jedes Feeds: Beachte seine Nutzungsbedingungen. Eine Ergänzung, kein Sicherheitswarnsystem: Befolge die Anweisungen deiner örtlichen Behörden.

So installierst du GeoJSON & GeoRSS feeds in Gladys​

  1. Öffne in Gladys Integrationen: GeoJSON & GeoRSS feeds erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-geofeeds:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-geofeeds.

GeoJSON & GeoRSS feeds benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

GeoJSON & GeoRSS feeds ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂