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

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
- Erdbeben des letzten Tages vom USGS:
Konfiguration
Einstellungen
Für jeden der fünf Feeds:
| Einstellung | Verwendung |
|---|---|
| Feed-Adresse | http oder https, höchstens 5 MB. Leer: Der Platz wird nicht genutzt. |
| Name | Im Widget und in den Szenen angezeigt. Leer: „Geo-Feed 1 (Host)“. |
| Radius | Entfernung 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
idoderguid; ohne sie ein Fingerabdruck aus Titel, Link und Position. - Titel:
title,name,headlineoderplace. Datum:time,date,pubDate,published,updated. Kategorie:categoryodertype. Link:urloderlink. - RSS und Atom:
georss:point,georss:polygon,georss:box,gml:posodergeo:lat/geo:long; Titel, Link,guidoderid,pubDateoderupdated,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):
| Funktion | Typ | Wert |
|---|---|---|
| Ereignisse im Gebiet | Zähler | Die verfolgten Ereignisse des Feeds. |
| Entfernung des nächsten Ereignisses | Entfernung, km | Das nächste verfolgte Ereignis; 20.038 km (so weit wie möglich), wenn keins. |
| Nächstes Ereignis | Text | Sein Titel. |
| Neuestes Ereignis | Text | Das 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:
| Variable | Inhalt |
|---|---|
feed_name | Der Name des Feeds. |
title | Der Titel des Ereignisses. |
category | Seine Kategorien, durch Kommas getrennt. |
distance_km | Entfernung zum Mittelpunkt, leer ohne Mittelpunkt. |
value | Die für den Feed gewählte Zahlen-Eigenschaft, leer ohne sie. |
time | Das Datum des Ereignisses (ISO 8601), leer, wenn unbekannt. |
url | Der Link des Ereignisses. |
summary | Titel und Entfernung, fertig für eine Nachricht. |
latitude | Breitengrad des Ereignisses. |
longitude | Längengrad des Ereignisses. |
properties | Die 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“ →
textvorlesen.
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 logsdes Containers der Integration;LOG_LEVEL=debugzeigt 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.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Deine Feeds | section | Nein | Fü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 1 | section | Nein | Beispiel: die Erdbeben des letzten Tages vom USGS, https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_day.geojson |
| Feed-Adresse | string | Nein | http oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB. |
| Name | string | Nein | Im Widget und in den Szenen angezeigt. Leer: der Host der Adresse. |
| Radius | select | Nein | Entfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed. |
| Kategorien (optional) | string | Nein | Nur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt. |
| Zahlen-Eigenschaft (optional) | string | Nein | Name einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert. |
| Mindestwert (optional) | string | Nein | Ereignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert. |
| Feed 2 | section | Nein | Optional: Lass die Adresse leer, wenn du ihn nicht brauchst. |
| Feed-Adresse | string | Nein | http oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB. |
| Name | string | Nein | Im Widget und in den Szenen angezeigt. Leer: der Host der Adresse. |
| Radius | select | Nein | Entfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed. |
| Kategorien (optional) | string | Nein | Nur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt. |
| Zahlen-Eigenschaft (optional) | string | Nein | Name einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert. |
| Mindestwert (optional) | string | Nein | Ereignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert. |
| Feed 3 | section | Nein | Optional: Lass die Adresse leer, wenn du ihn nicht brauchst. |
| Feed-Adresse | string | Nein | http oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB. |
| Name | string | Nein | Im Widget und in den Szenen angezeigt. Leer: der Host der Adresse. |
| Radius | select | Nein | Entfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed. |
| Kategorien (optional) | string | Nein | Nur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt. |
| Zahlen-Eigenschaft (optional) | string | Nein | Name einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert. |
| Mindestwert (optional) | string | Nein | Ereignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert. |
| Feed 4 | section | Nein | Optional: Lass die Adresse leer, wenn du ihn nicht brauchst. |
| Feed-Adresse | string | Nein | http oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB. |
| Name | string | Nein | Im Widget und in den Szenen angezeigt. Leer: der Host der Adresse. |
| Radius | select | Nein | Entfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed. |
| Kategorien (optional) | string | Nein | Nur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt. |
| Zahlen-Eigenschaft (optional) | string | Nein | Name einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert. |
| Mindestwert (optional) | string | Nein | Ereignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert. |
| Feed 5 | section | Nein | Optional: Lass die Adresse leer, wenn du ihn nicht brauchst. |
| Feed-Adresse | string | Nein | http oder https. GeoJSON, GeoRSS, RSS 2.0 oder Atom, höchstens 5 MB. |
| Name | string | Nein | Im Widget und in den Szenen angezeigt. Leer: der Host der Adresse. |
| Radius | select | Nein | Entfernung vom Mittelpunkt zum Ereignis (die Mitte eines Gebiets). Ganzer Feed: alle Ereignisse, für einen lokalen Feed. |
| Kategorien (optional) | string | Nein | Nur die Ereignisse behalten, deren Kategorie eines dieser Wörter enthält, durch Kommas getrennt. |
| Zahlen-Eigenschaft (optional) | string | Nein | Name einer Zahlen-Eigenschaft der Ereignisse (mag beim USGS): als Wert an die Szenen gesendet und mit dem Minimum unten gefiltert. |
| Mindestwert (optional) | string | Nein | Ereignisse mit kleinerer oder fehlender Eigenschaft werden ignoriert. |
| Optionen | section | Nein | |
| Breitengrad des Mittelpunkts | string | Nein | Lass beide Koordinaten leer, um den Standort deines Hauses in Gladys zu verwenden. |
| Längengrad des Mittelpunkts | string | Nein | Dezimalgrad, Osten positiv. |
| Aktualisierungsintervall | select | Nein | Jeder Feed wird so oft gelesen. Mindestens 5 Minuten: Die Feeds sind öffentliche Dienste. |
| Höchstalter der Ereignisse | select | Nein | Ältere Ereignisse werden ignoriert. Ereignisse ohne lesbares Datum bleiben. |
| Sprache der Texte | select | Nein | Namen der Geräte und Funktionen (bei ihrer Erstellung) und Texte für die Szenen. |
| Quellen und Grenzen | section | Nein | Die 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
- Öffne in Gladys Integrationen: GeoJSON & GeoRSS feeds erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- 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). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- 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.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation