Zum Hauptinhalt springen
Data Connectors · Information

RSS Feed

Der Node ruft einen RSS- oder Atom-Feed ab, filtert bereits bekannte Einträge heraus und gibt jeden neuen Beitrag als einzelnes NewsObserved-Objekt aus. Er eignet sich für Nachrichten, Pressemitteilungen und Veranstaltungshinweise von Kommunen und Verbänden.

  • Datenquelle
  • Triggerbasiert
  • NewsObserved
Node-Typ
rss-feed
Paket
@htag/node-red-contrib-hypertegrity-information
Eingänge / Ausgänge
1 / 1
Datenquelle
Beliebiger öffentlicher RSS- oder Atom-Feed

Wofür Sie den Node verwenden​

Viele Kommunen, Verwaltungen und Vereine veröffentlichen Neuigkeiten als RSS- oder Atom-Feed. Der RSS-Feed-Node bringt diese Beiträge in einen Node-RED-Flow, ohne dass Sie das Feed-Format selbst auswerten müssen. Jeder Beitrag wird nur einmal weitergegeben, auch wenn der Feed mehrmals täglich abgefragt wird.

Typische Einsatzfälle sind:

  • Kommunale Nachrichten in einen NGSI-LD Context Broker übernehmen, damit Dashboards und Apps sie anzeigen können.
  • Pressemitteilungen mehrerer Quellen in einem einheitlichen Datenmodell zusammenführen.
  • Veranstaltungshinweise regelmäßig abfragen und nur neue Einträge weiterverarbeiten.

So funktioniert der Node​

1

Auslösen

Eine eingehende Nachricht startet den Abruf. Der Node fragt den Feed nicht von selbst ab.

2

Abrufen und parsen

Der Feed wird geladen und in einzelne Einträge zerlegt. RSS und Atom werden gleichermaßen unterstützt.

3

Duplikate ausfiltern

Jeder Eintrag wird anhand seiner GUID mit einem gespeicherten Cache verglichen. Bekannte Einträge werden übersprungen.

4

Ausgeben

Jeder neue Eintrag verlässt den Node als eigene Nachricht mit einem flachen NewsObserved-Objekt.

Ergebnis: Ein Strom einzelner, noch nicht gesehener Beiträge, der direkt in den NGSI-LD Builder geführt werden kann.

Der Node ist bewusst triggerbasiert. Kombinieren Sie ihn mit einem Inject-Node, der in einem festen Intervall auslöst, zum Beispiel alle 15 Minuten. So behalten Sie die Kontrolle über die Abrufhäufigkeit und belasten den Feed-Anbieter nicht unnötig.

Konfiguration​

Die Einstellungen finden Sie im Bearbeitungsdialog des Nodes auf der Registerkarte Einstellungen. Die Registerkarte Informationen enthält Hinweise zur Zeichenkodierung.

FeldTypStandardBedeutung
NameTextleerAnzeigename des Nodes im Flow.
RSS URLTyped Input (str, msg, flow, global, env)leerAdresse des Feeds. Als Text können Sie Umgebungsvariablen in der Form ${NAME} einsetzen.
Cache GrößeZahl (num, flow, global, env)100Anzahl der gemerkten GUIDs. Ältere Einträge fallen nach dem FIFO-Prinzip heraus und könnten erneut ausgegeben werden.
URL-Kodierung aktivierenKontrollkästchenaktivKodiert Titel und Beschreibung URL-konform und ersetzt Klammern. Emojis werden unabhängig von dieser Einstellung immer entfernt.
Cache-Größe richtig wählen

Die Cache-Größe sollte größer sein als die Zahl der Einträge, die der Feed gleichzeitig ausliefert. Liefert ein Feed stets die letzten 50 Beiträge, sind 100 Einträge im Cache ein sinnvoller Wert.

Eingang​

Der Eingang dient als Auslöser und als Steuerkanal. Eine beliebige Nachricht ohne Steuerbefehl startet den Abruf.

EigenschaftTypBedeutung
msg.payloadbeliebigLöst den Abruf aus. Enthält der Payload einen der folgenden Steuerbefehle, wird nur der Cache bearbeitet und kein Feed abgerufen.
msg.payload = "flush"TextLeert den gesamten GUID-Cache. Beim nächsten Abruf werden alle Einträge erneut ausgegeben.
msg.payload = "flush_first"TextEntfernt den ältesten Eintrag aus dem Cache.
msg.payload = "<GUID oder URL>"TextEntfernt genau diesen Eintrag aus dem Cache, damit der zugehörige Beitrag erneut ausgegeben wird. Erkannt werden Texte, die mit http beginnen, einen Schrägstrich enthalten oder länger als 10 Zeichen sind.
msg.flushCache = trueBooleanLeert den Cache und führt den Abruf anschließend trotzdem aus.
msg.urlTextWird verwendet, wenn die RSS URL im Dialog auf den Typ msg mit dem Pfad url gesetzt ist.

Ausgang​

Für jeden neuen Beitrag sendet der Node eine eigene Nachricht. Der Payload ist ein flaches Objekt, das sich an das Smart Data Model NewsObserved anlehnt und ohne weitere Umformung an den NGSI-LD Builder übergeben werden kann.

{
"id": "https___www_beispielstadt_de_aktuelles_neues_rathaus",
"type": "NewsObserved",
"dateObserved": "2026-10-01T08:15:00.000Z",
"newsTitle": "Neues%20Rathaus%20er%C3%B6ffnet",
"newsIntro": "Die%20Stadt%20er%C3%B6ffnet%20...",
"publishedAt": "2026-09-30T14:00:00.000Z",
"newsUrl": "https://www.beispielstadt.de/aktuelles/neues-rathaus"
}
FeldBedeutung
idAus der GUID des Beitrags abgeleitet. Alle Zeichen außer Buchstaben und Ziffern werden durch _ ersetzt.
typeImmer NewsObserved.
dateObservedZeitpunkt des Abrufs im ISO-8601-Format.
newsTitleTitel des Beitrags, bereinigt und bei aktiver Kodierung URL-kodiert.
newsIntroKurzbeschreibung oder Inhalt des Beitrags, ebenfalls bereinigt.
publishedAtVeröffentlichungsdatum aus dem Feed. Fehlt es, wird der Abrufzeitpunkt verwendet.
newsUrlLink zum vollständigen Beitrag.

Bei aktiver URL-Kodierung sind Texte in der Datenbank kodiert abgelegt. Die Registerkarte Informationen im Node zeigt eine PostgreSQL-Funktion, mit der Sie die Texte bei Abfragen wieder dekodieren.

Beispiel-Flow​

Das Paket bringt einen Beispiel-Flow mit. Sie importieren ihn in Node-RED über Menü → Importieren → Beispiele → @htag/node-red-contrib-hypertegrity-information → rss-feed.

Schritt 1

Inject

Ein Inject-Node löst den Abruf manuell oder in einem festen Intervall aus.

Schritt 2

RSS Feed

Der Node ruft den konfigurierten Feed ab und gibt neue Einträge einzeln aus.

Schritt 3

Debug

Ein Debug-Node zeigt die NewsObserved-Objekte in der Seitenleiste an.

Beispiel-Flow als JSON anzeigen
[
{"id": "tab1", "type": "tab", "label": "RSS Feed", "disabled": false, "info": ""},
{"id": "inject1", "type": "inject", "z": "tab1", "name": "", "props": [{"p": "payload"}, {"p": "topic", "vt": "str"}], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 160, "y": 140, "wires": [["rss1"]]},
{"id": "rss1", "type": "rss-feed", "z": "tab1", "name": "St. Katharinen", "url": "https://www.st-katharinen.de/rss-news", "urlType": "str", "cacheSize": 100, "cacheSizeType": "num", "encodeTextMode": true, "x": 420, "y": 140, "wires": [["debug1"]]},
{"id": "debug1", "type": "debug", "z": "tab1", "name": "RSS Ausgabe", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "x": 680, "y": 140, "wires": []}
]

Status und Fehler​

AnzeigeBedeutung
Blauer Punkt „Cache geleert“Der Cache wurde über flush oder msg.flushCache zurückgesetzt.
Blauer Ring „Ältesten entfernt“Der älteste Cache-Eintrag wurde über flush_first entfernt.
Blauer Ring „Entfernt: …“Ein einzelner Eintrag wurde gezielt aus dem Cache entfernt.
Fehler „Keine RSS-URL aufgelöst“Die URL ist leer oder die referenzierte Kontextvariable existiert nicht.
Fehler „Fehler beim Abrufen oder Parsen“Der Feed ist nicht erreichbar oder kein gültiges RSS/Atom. Die Meldung enthält die Ursache.

Fehler werden über node.error gemeldet und können mit einem Catch-Node abgefangen werden.

Hinweise​

  • Persistenter Kontext: Der GUID-Cache liegt im globalen Kontext unter dem Schlüssel rss_guid_cache_<Node-ID>. Damit er einen Neustart von Node-RED übersteht, muss in der Datei settings.js ein persistenter Kontextspeicher konfiguriert sein. Ohne diese Einstellung werden nach jedem Neustart alle Einträge erneut ausgegeben.
  • Abrufhäufigkeit: Wählen Sie das Intervall des Inject-Nodes mit Augenmaß. Für kommunale Nachrichtenfeeds reichen Intervalle von 15 bis 60 Minuten in der Regel aus.
  • Personenbezogene Daten: Feeds können Namen von Autorinnen und Autoren oder Ansprechpersonen enthalten. Prüfen Sie vor der Weitergabe an einen Context Broker, ob diese Inhalte veröffentlicht werden dürfen.

Weiterführende Themen​

Referenzen​