Datenquelle prüfen
Prüfen Sie mit einem kleinen Funktionstest, ob die benötigten Daten tatsächlich erreichbar sind. Die Beispiele zeigen vier häufige Quellenwege über HTTP, MQTT, S3 und eine Datenbank – weitere Quellen und Protokolle sind ebenfalls möglich.
Am Anfang steht die Frage: Wo liegen die Daten heute und wie kann die UDSP sie erreichen? Die vier Tabs zeigen dafür die häufigsten Wege. Eine lokale Datei kann über den UDSP-Dateispeicher erreichbar gemacht werden; bereits vorhandene Daten lassen sich beispielsweise direkt aus einer freigegebenen Datenbank lesen.
Die Wege sind Beispiele, keine vollständige Liste. Auch bei einer anderen Quelle müssen Ressource, Erreichbarkeit, Format und Funktionstest geklärt werden. Betreiben Sie die Quelle nicht selbst, nutzen Sie den passenden Tab als Übergabehilfe für die zuständige Stelle.
Datenquelle auswählen und testen
Wählen Sie den Weg, der Ihrer Quelle am nächsten kommt. Die genannten Angaben sind ein praxistauglicher Ausgangspunkt. Optionen wie Authentifizierung, Pagination, TLS oder ein Zeitfeld werden nur benötigt, wenn die konkrete Quelle sie tatsächlich verwendet.
- HTTP-API
- MQTT
- Datei / S3
- Datenbank
Passt, wenn die Daten über einen aufrufbaren Endpunkt bereitstehen und Node-RED sie einmalig oder regelmäßig abrufen soll.
Endpunkt und Methode
Basis-URL sowie die tatsächlich verwendete HTTP-Methode eindeutig benennen.
Benötigte Parameter
Filter, Zeitraum und Pagination nur angeben, soweit der Endpunkt sie unterstützt oder verlangt.
Schutz berücksichtigen
Bei einer geschützten API den technischen Authentifizierungsweg und benötigte Rechte klären.
Beispielantwort sichern
Einen begrenzten realen Abruf mit erwarteter Antwort und relevanten Statuscodes nachweisen.
Für eine API reicht die Aussage „es gibt einen Endpunkt“ nicht. Rufen Sie einen kleinen, fachlich bekannten Ausschnitt selbst ab. Dafür eignet sich das Kommandozeilenwerkzeug curl, das auf vielen Systemen bereits vorhanden ist. Fehlt es, verwenden Sie die offizielle curl-Downloadseite für Ihr Betriebssystem. Das folgende Beispiel kommt ohne Zugangsdaten im Befehl aus:
curl --silent --show-error --fail-with-body \
--get 'https://data.beispiel-organisation.de/v1/traffic-counts' \
--header 'Accept: application/json' \
--data-urlencode 'updated_since=2026-08-19T07:55:00Z' \
--data-urlencode 'limit=100' \
--write-out '\nHTTP %{http_code}\n'
{
"items": [
{
"counting_station_id": "zaehlstelle-017",
"observed_at": "2026-08-19T08:00:00Z",
"vehicle_count": 126
}
],
"next": null
}
curl hängt an die Antwort die Zeile HTTP 200 an. Prüfen Sie nicht nur diesen Status, sondern auch, ob items die erwarteten Felder, Datentypen und einen bekannten Testwert enthält. Bei einer geschützten API führen Sie denselben Test über den freigegebenen Authentifizierungsweg aus. Schreiben Sie Tokens nicht direkt in den Befehl oder die Shell-Historie. Klären Sie außerdem – soweit vorhanden – Pagination, Rate Limits und dokumentierte Fehlerstatus wie 401, 403, 429 oder 5xx.
der gezeigte curl-Abruf über den vorgesehenen Zugriffsweg die erwartete Beispielantwort und den
dokumentierten Status liefert – bei einer geschützten API mit dem dafür eingerichteten technischen Zugang.
Im nächsten Schritt wird derselbe Zugang aus Node-RED verwendet.
Passende Referenzen
Passt, wenn eine Quelle neue Ereignisse oder Messwerte fortlaufend an ein vereinbartes Topic sendet.
Broker erreichen
Host, Port und den von Node-RED erreichbaren Broker eindeutig benennen.
Topic begrenzen
Das konkrete Topic oder ein bewusst eingeschränktes Topic-Muster vereinbaren.
Payload beschreiben
Format, Zeichencodierung und eine ungefährliche reale Testnachricht bereitstellen.
QoS und Schutz klären
QoS sowie bei geschütztem Zugang TLS, Credentials und Topic-Rechte festlegen.
MQTT transportiert Nachrichten. Retained Messages oder persistente Sitzungen können die Zustellung unterstützen, ersetzen aber keinen fachlich abfragbaren Datenbestand. Benennen Sie Topic und Inhalt einer einzelnen Nachricht ausdrücklich:
Broker: mqtts://mqtt.beispiel-organisation.de:8883
Topic: city/traffic/zaehlstelle-017/counts
QoS: 1
Payload: JSON, UTF-8
Zeitbezug: observed_at stammt aus der Messung
{
"counting_station_id": "zaehlstelle-017",
"observed_at": "2026-08-19T08:00:00Z",
"vehicle_count": 126
}
Starten Sie einen begrenzten Test-Subscriber und lassen Sie anschließend die bekannte Testnachricht veröffentlichen. mosquitto_sub gehört zu den Mosquitto-Clientwerkzeugen; passende Pakete und Installationswege finden Sie auf der offiziellen Mosquitto-Downloadseite.
mosquitto_sub \
-h mqtt.beispiel-organisation.de \
-p 8883 \
--cafile /pfad/zur/ca.crt \
-t 'city/traffic/zaehlstelle-017/counts' \
-q 1 \
-R \
-C 1 \
-W 15 \
-v
city/traffic/zaehlstelle-017/counts {"counting_station_id":"zaehlstelle-017","observed_at":"2026-08-19T08:00:00Z","vehicle_count":126}
Für einen geschützten Brokerzugang stellt dessen Betreiber TLS-Vertrauen, technische Credentials und Topic-Berechtigungen bereit. Der Befehl enthält bewusst keine Zugangsdaten; verwenden Sie dafür ausschließlich die vorgesehene geschützte Client-Konfiguration. Bei QoS 1 muss eine mögliche Doppelzustellung berücksichtigt werden.
mosquitto_sub innerhalb des Zeitlimits die bekannte Nachricht im exakten Testtopic empfängt.
Retained Messages werden für diesen Nachweis ignoriert. Im nächsten Schritt wird dasselbe Topic in Node-RED
abonniert; mögliche Doppelzustellungen bleiben dort weiterhin zu berücksichtigen.
Passende Referenzen
Passt, wenn Daten als Datei vorliegen – beispielsweise lokal auf Ihrem Rechner, in einem UDSP-Bucket oder in einem externen S3-kompatiblen Speicher.
Endpoint festlegen
UDSP-MinIO oder einen erreichbaren externen S3-kompatiblen Speicher auswählen.
Bucket und Key benennen
Bucket und vollständigen Object Key statt nur eines losen Dateinamens übergeben.
Datei beschreiben
Format, Zeichencodierung, Trennzeichen und Lieferstand soweit relevant festhalten.
Leserecht prüfen
Technischen Lesezugang sowie anbieterabhängig Region, Path-Style oder Signatur klären.
Das folgende Beispiel wird in den weiteren Integrationsschritten wiederverwendet:
counting_station_id;observed_at;vehicle_count
zaehlstelle-017;2026-08-19T08:00:00Z;126
zaehlstelle-021;2026-08-19T08:00:00Z;84
Variante A: Datei in den UDSP-Dateispeicher hochladen
Sofern der Upload für Ihren Zugang eingerichtet und geprüft ist, öffnen Sie in HYPERSENSUS Daten → Datenspeicher, wählen den vereinbarten Bucket verkehr-rohdaten und laden verkehrszaehlung-2026-08-19.csv hoch. Damit kann auch eine zunächst nur lokal vorliegende Datei für einen Datenfluss erreichbar werden.
Übergeben Sie anschließend den vollständigen technischen Bezug:
Endpoint: https://s3-minio.<MANDANTENDOMAIN>
Bucket: verkehr-rohdaten
Object Key: verkehrszaehlung-2026-08-19.csv
Format: CSV; UTF-8; Semikolon; Kopfzeile vorhanden
Lieferstand: 2026-08-19
HYPERSENSUS legt die Datei derzeit mit ihrem Dateinamen als Object Key im ausgewählten Bucket ab. Ein erneuter Upload mit demselben Namen kann das aktuelle Objekt überschreiben; nur bei aktivierter Bucket-Versionierung bleibt eine frühere Objektversion erhalten. Verwenden Sie daher beispielsweise ein Lieferdatum im Dateinamen. Ein verschachtelter Präfix lässt sich im aktuellen Uploaddialog nicht auswählen.
Variante B: Datei in einem eigenen S3-Speicher bereitstellen
Ein Datenfluss kann dieselbe Datei auch aus einem selbst betriebenen oder extern bereitgestellten S3-kompatiblen Speicher lesen. Dieser Speicher ist nicht Bestandteil der UDSP-Dateiverwaltung:
- Buckets und Objekte erscheinen nicht in HYPERSENSUS.
- Dateien können nicht über HYPERSENSUS dorthin hochgeladen werden.
- Bereitstellung, Aufbewahrung, Versionierung, Netzfreigabe und Berechtigungen liegen beim Betreiber.
- Der fachliche Leseablauf in Node-RED bleibt gleich; je nach Anbieter ändern sich Endpoint, Credentials, Region, Path-Style oder Signaturvorgaben.
Endpoint: https://s3.beispiel-organisation.de
Bucket: verkehr-rohdaten
Object Key: eingang/2026/08/19/verkehrszaehlung.csv
TLS: gültiges, von Node-RED prüfbares Zertifikat
Zugriff: technischer Schlüssel mit Leserecht auf genau diesen Präfix
Verantwortung: Betreiber des externen S3-Speichers
Für die Quellenprüfung muss der Endpoint mit dem vorgesehenen S3-Lesezugang erreichbar sein. Das folgende Beispiel verwendet die AWS CLI, die auch mit vielen S3-kompatiblen Speichern funktioniert. Installieren Sie sie bei Bedarf nach der offiziellen AWS-Anleitung. Mit einem bereits sicher eingerichteten CLI-Profil können Sie anschließend Objektmetadaten und Inhalt prüfen:
aws --profile integration-source \
--endpoint-url "$S3_ENDPOINT" \
s3api head-object \
--bucket verkehr-rohdaten \
--key eingang/2026/08/19/verkehrszaehlung.csv
aws --profile integration-source \
--endpoint-url "$S3_ENDPOINT" \
s3 cp \
s3://verkehr-rohdaten/eingang/2026/08/19/verkehrszaehlung.csv - \
| sed -n '1,3p'
Erwartet werden die Objektmetadaten sowie Kopfzeile und zwei bekannte Beispielzeilen. $S3_ENDPOINT und das Profil werden außerhalb des Skripts bereitgestellt; Access Key und Secret Key gehören nicht in die Befehlszeile oder ein Repository.
Betreiberbeispiel für einen bereits eingerichteten S3-Zugang anzeigen
Wie die Datei in den externen Speicher gelangt, ist Aufgabe seines Betreibers. Mit einem bereits sicher eingerichteten AWS-CLI-Profil kann die Übergabe beispielsweise so erfolgen:
aws --profile integration-source \
--endpoint-url "$S3_ENDPOINT" \
s3 cp \
verkehrszaehlung-2026-08-19.csv \
s3://verkehr-rohdaten/eingang/2026/08/19/verkehrszaehlung.csv
$S3_ENDPOINT und das Profil werden außerhalb des Skripts bereitgestellt. Access Key und Secret Key gehören nicht in die Befehlszeile oder ein Repository.
das bezeichnete Objekt in HYPERSENSUS oder mit dem gezeigten S3-Client gefunden und mit den erwarteten Beispielzeilen gelesen werden kann. Ein externer Bucket wird in HYPERSENSUS nicht angezeigt. Im nächsten Schritt wird derselbe Objektbezug aus Node-RED abgerufen.
Passende Referenzen
Passt, wenn die benötigten Daten bereits in einer Datenbank liegen und über eine begrenzte Tabelle, View oder Abfrage gelesen werden können.
Datenbank erreichen
Host, Port und Datenbank mit dem vorgesehenen lesenden Zugang erreichbar bereitstellen.
Relation freigeben
Eine begrenzte View, Tabelle oder festgelegte Abfrage statt der gesamten Datenbank verwenden.
Fortschritt definieren
Schlüssel oder Zeitfeld nur festlegen, wenn Laden, Deduplizierung oder Fortschritt sie benötigen.
Leserechte begrenzen
Bei geschütztem Zugang eine zweckgebundene Rolle mit den minimal nötigen Rechten nutzen.
Verwenden Sie möglichst eine begrenzte View oder benennen Sie die erlaubte Tabelle, die benötigten Spalten und – soweit für inkrementelles Laden oder Deduplizierung erforderlich – einen stabilen Schlüssel oder ein Zeitfeld. Der technische Zugang erhält ausschließlich die benötigten Leserechte.
SELECT
counting_station_id,
observed_at,
vehicle_count
FROM integration.traffic_counts
WHERE observed_at = TIMESTAMPTZ '2026-08-19T08:00:00Z'
AND counting_station_id IN ('zaehlstelle-017', 'zaehlstelle-021')
ORDER BY counting_station_id;
Führen Sie die Abfrage im Abfragewerkzeug Ihres lesenden Zugangs aus, beispielsweise im bereitgestellten pgAdmin Query Tool. Ist keine pgAdmin-Instanz vorhanden und ist eine lokale Installation vorgesehen, wählen Sie das passende Paket auf der offiziellen pgAdmin-Downloadseite. Das Beispiel muss die bekannten Verkehrszählungen liefern:
counting_station_id | observed_at | vehicle_count
--------------------+--------------------------+--------------
zaehlstelle-017 | 2026-08-19 08:00:00+00 | 126
zaehlstelle-021 | 2026-08-19 08:00:00+00 | 84
Dieser Test weist die Daten mit dem vorgesehenen lesenden Zugang nach. Im nächsten Schritt wird dieselbe Abfrage mit der für Node-RED bereitgestellten Verbindungskonfiguration ausgeführt. Greifen Sie nicht direkt auf interne Datenbanken von Stellio, FROST oder anderen Plattformkomponenten zu; deren veröffentlichte Fach-APIs sind die vorgesehene Schnittstelle.
die begrenzte SELECT-Abfrage mit dem vorgesehenen Lesezugang genau die beiden bekannten Beispielzeilen liefert und keine unnötigen Tabellen oder Schreiboperationen freigegeben sind.
Passende Referenzen