Zum Hauptinhalt springen
Data Operations · NGSI-LD und Stellio

Stellio Get Subscriptions

Der Node sendet einen GET-Request an den Subscription-Endpunkt des Stellio Context Brokers und gibt alle Subscriptions des Tenants als Array zurück. Er ist bewusst einfach gehalten und eignet sich für Prüf- und Protokollierungsflows.

  • Subscriptions
  • Nur lesend
  • NGSI-LD
Node-Typ
stellio-get-subscriptions
Paket
@htag/node-red-contrib-hypertegrity-ngsi-ld
Eingänge / Ausgänge
1 / 1
Ziel
Stellio Context Broker (NGSI-LD)

Wofür Sie den Node verwenden​

Wenn Sie lediglich wissen möchten, welche Subscriptions in einem Tenant existieren, reicht dieser Node. Er benötigt nur Tenant und API-URL und liefert die Broker-Antwort unverändert. Für das Lesen einzelner Subscriptions, das Aktivieren oder Deaktivieren verwenden Sie Stellio Subscriptions.

Typische Einsatzfälle sind:

  • Regelmäßige Prüfung: per Inject-Node täglich die Subscriptions abrufen und mit einer Sollliste vergleichen.
  • ID ermitteln: die ID einer Subscription nachschlagen, um sie an Stellio Delete Subscription zu übergeben.
  • Dokumentation: den aktuellen Stand der Subscriptions in ein Protokoll oder eine Datei schreiben.

So funktioniert der Node​

1

Auslösen

Eine beliebige eingehende Nachricht startet den Abruf.

2

GET senden

Der Node ruft /ngsi-ld/v1/subscriptions/?limit=<Limit> mit dem Header NGSILD-Tenant auf.

3

Antwort ausgeben

Das Subscription-Array, der Statuscode und die Header werden in die Nachricht geschrieben.

Ergebnis: Ein Array aller Subscriptions des Tenants in msg.payload.

Der Node ist nachrichtenbasiert und sendet je eingehender Nachricht genau einen Request. Kombinieren Sie ihn mit einem Inject-Node, wenn Sie die Liste regelmäßig benötigen.

Konfiguration​

FeldTypStandardBedeutung
NameTextleerAnzeigename des Nodes im Flow. Ohne Namen zeigt der Node den Tenant an.
NGSILD-TenantText (Pflicht)leerWert des Headers NGSILD-Tenant, zum Beispiel default_dataspace.
API URLTextleerBasis-URL des Brokers. Bleibt das Feld leer, verwendet der Node die Umgebungsvariable STELLIO_API_URL. Ein Platzhalter ${STELLIO_API_URL} wird von Node-RED ersetzt.
LimitZahl100Maximale Anzahl zurückgegebener Subscriptions.

Eingang​

EigenschaftTypBedeutung
msg.tenantTextÜberschreibt den konfigurierten Tenant.
msg.apiUrlTextÜberschreibt die konfigurierte API URL.
msg.limitZahlÜberschreibt das konfigurierte Limit.
msg.payloadbeliebigWird nicht ausgewertet; die Nachricht dient nur als Auslöser.

Ausgang​

[
{
"id": "urn:ngsi-ld:Subscription:7f3a2c1e-0000-4000-8000-000000000001",
"type": "Subscription",
"subscriptionName": "Subscription for entity type WeatherObserved.",
"entities": [{"type": "https://smartdatamodels.org/dataModel.Weather/WeatherObserved"}],
"watchedAttributes": ["https://smartdatamodels.org/dateObserved"],
"isActive": true,
"notification": {
"format": "normalized",
"endpoint": {"uri": "https://quantumleap.beispielstadt.example/v2/notify", "accept": "application/json"}
}
}
]
FeldBedeutung
msg.payloadArray der Subscription-Objekte, wie der Broker sie liefert. Da der Node keinen Link-Header sendet, können Typ- und Attributnamen als vollständige URIs erscheinen. Ist die Antwort kein gültiges JSON, enthält der Payload den Rohtext.
msg.statusCodeHTTP-Statuscode der Antwort.
msg.headersAntwort-Header des Brokers.

Beispiel-Flow​

Das Paket bringt einen gemeinsamen Beispiel-Flow für mehrere Stellio-Nodes mit. Sie importieren ihn in Node-RED über Menü → Importieren → Beispiele → @htag/node-red-contrib-hypertegrity-ngsi-ld → stellio-helper-nodes. Alternativ laden Sie die Datei stellio-helper-nodes.json herunter und importieren sie über Menü → Importieren.

Schritt 1

Inject

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

Schritt 2

Get Subscriptions

Der Node ruft bis zu 100 Subscriptions des Tenants default_dataspace ab.

Schritt 3

Debug

Ein Debug-Node zeigt das Subscription-Array in der Seitenleiste an.

Beispiel-Flow als JSON anzeigen (Ausschnitt Get Subscriptions)
[
{"id": "tab1", "type": "tab", "label": "Stellio Helper Nodes", "disabled": false, "info": ""},
{"id": "inject1", "type": "inject", "z": "tab1", "name": "", "props": [{"p": "payload"}], "repeat": "", "once": false, "payload": "", "payloadType": "date", "x": 100, "y": 100, "wires": [["get1"]]},
{"id": "get1", "type": "stellio-get-subscriptions", "z": "tab1", "name": "Get Subscriptions", "tenant": "default_dataspace", "apiUrl": "", "limit": 100, "x": 290, "y": 100, "wires": [["debug1"]]},
{"id": "debug1", "type": "debug", "z": "tab1", "name": "Subscriptions", "active": true, "tosidebar": true, "complete": "false", "x": 530, "y": 100, "wires": []}
]

Status und Fehler​

AnzeigeBedeutung
Blauer Punkt „requesting...“Der Request läuft.
Grüner Punkt „status: 200“Abruf erfolgreich.
Gelber Ring „status: 404“ (bzw. anderer Statuscode)Der Broker hat mit einem Fehlerstatus geantwortet. Die Nachricht wird trotzdem gesendet.
Roter Ring „parse error“Die Antwort ist kein gültiges JSON. Die Nachricht wird mit dem Rohtext in msg.payload gesendet.
Roter Ring „error“ mit FehlermeldungNetzwerkfehler, zum Beispiel Broker nicht erreichbar oder ungültige URL. Es wird keine Nachricht gesendet.

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

Hinweise​

  • Kein Link-Header: Der Node sendet keinen JSON-LD-Kontext. Für kurze Attributnamen in der Antwort verwenden Sie Stellio Subscriptions mit konfiguriertem Context.
  • Authentifizierung: Der Node sendet keine Authentifizierungs-Header; der Zugriff auf den Broker wird über das Netzwerk oder ein vorgeschaltetes Gateway geschützt.
  • Personenbezogene Daten: Subscription-Listen enthalten Benachrichtigungs-URLs. Prüfen Sie, ob diese intern bleiben müssen, bevor Sie die Ausgabe weitergeben.

Weiterführende Themen​

Referenzen​