Stellio Delete Subscription
Der Node sendet einen DELETE-Request für eine einzelne Subscription an den Stellio Context Broker. Die Subscription-ID stammt aus der Konfiguration oder aus msg.subscriptionId. Der Status unter dem Node zeigt, ob die Subscription gelöscht wurde oder nicht gefunden werden konnte.
- Node-Typ
- stellio-delete-subscription
- 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
Subscriptions, die nicht mehr benötigt werden, erzeugen weiterhin Benachrichtigungen und belasten Broker und Empfänger. Mit diesem Node entfernen Sie eine Subscription gezielt, zum Beispiel beim Abbau eines Datenflusses oder nach einem Wechsel des Benachrichtigungsempfängers.
Typische Einsatzfälle sind:
- Rückbau: die von Stellio Create Subscription angelegte Subscription beim Entfernen eines Flows löschen.
- Bereinigung: IDs aus Stellio Get Subscriptions filtern und per
msg.subscriptionIdnacheinander löschen. - Neuanlage: eine fehlerhaft konfigurierte Subscription löschen, bevor sie mit anderen Parametern neu angelegt wird.
So funktioniert der Node
ID bestimmen
msg.subscriptionId oder die konfigurierte Subscription ID legt fest, welche Subscription gelöscht wird.
DELETE senden
Der Node ruft /ngsi-ld/v1/subscriptions/<ID> mit dem Header NGSILD-Tenant auf.
Antwort ausgeben
Statuscode, Header und ein eventueller Antwortkörper werden in die Nachricht geschrieben; der Status zeigt gelöscht, nicht gefunden oder Fehler.
Ergebnis: Die Subscription ist entfernt; die Nachricht trägt den Statuscode zur weiteren Auswertung.
Der Node ist nachrichtenbasiert und löscht je eingehender Nachricht genau eine Subscription.
Konfiguration
| Feld | Typ | Standard | Bedeutung |
|---|---|---|---|
| Name | Text | leer | Anzeigename des Nodes im Flow. |
| NGSILD-Tenant | Text (Pflicht) | leer | Wert des Headers NGSILD-Tenant, zum Beispiel ds_public_parking. |
| API URL | Text | leer | Basis-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. |
| Subscription ID | Text | leer | Vollständige URN der zu löschenden Subscription, zum Beispiel urn:ngsi-ld:Subscription:7f3a2c1e-0000-4000-8000-000000000001. Kann leer bleiben, wenn die ID per Nachricht kommt. |
Eingang
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
msg.subscriptionId | Text | Überschreibt die konfigurierte Subscription ID. Fehlen beide, bricht der Node mit einem Fehler ab. |
msg.tenant | Text | Überschreibt den konfigurierten Tenant. |
msg.apiUrl | Text | Überschreibt die konfigurierte API URL. |
msg.payload | beliebig | Wird nicht ausgewertet; die Nachricht dient nur als Auslöser. |
Ausgang
Nach erfolgreichem Löschen antwortet Stellio ohne Inhalt:
{
"statusCode": 204,
"headers": {
"date": "Thu, 01 Oct 2026 06:00:02 GMT"
},
"payload": null
}
| Feld | Bedeutung |
|---|---|
msg.statusCode | HTTP-Statuscode der Antwort: 204 gelöscht, 404 nicht gefunden, andere Codes bei Fehlern. |
msg.headers | Antwort-Header des Brokers. |
msg.payload | Antwortkörper als JSON, falls vorhanden (zum Beispiel ein Fehlerobjekt bei 404); bei leerer Antwort null; bei nicht parsbarem Inhalt der Rohtext. |
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. Der Stellio-Delete-Subscription-Node ist darin enthalten, sein Ausgang ist jedoch nicht mit einem Debug-Node verdrahtet; der folgende Ausschnitt zeigt deshalb eine minimale Verdrahtung dieses Nodes. Alternativ laden Sie die Datei stellio-helper-nodes.json herunter und importieren sie über Menü → Importieren.
Inject
Ein Inject-Node löst das Löschen manuell aus.
Delete Subscription
Der Node löscht die konfigurierte Subscription im Tenant ds_public_parking. Tragen Sie die ID aus Create Subscription ein.
Debug
Ein Debug-Node zeigt Statuscode und Antwort an.
Minimale Verdrahtung als JSON anzeigen
[
{"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": 340, "wires": [["delete1"]]},
{"id": "delete1", "type": "stellio-delete-subscription", "z": "tab1", "name": "", "tenant": "ds_public_parking", "apiUrl": "", "subscriptionId": "urn:ngsi-ld:Subscription:7f3a2c1e-0000-4000-8000-000000000001", "x": 280, "y": 340, "wires": [["debug1"]]},
{"id": "debug1", "type": "debug", "z": "tab1", "name": "Ergebnis", "active": true, "tosidebar": true, "complete": "true", "targetType": "full", "x": 520, "y": 340, "wires": []}
]
Status und Fehler
| Anzeige | Bedeutung |
|---|---|
| Blauer Punkt „deleting...“ | Der Request läuft. |
| Grüner Punkt „deleted (204)“ | Subscription erfolgreich gelöscht. |
| Gelber Ring „not found (404)“ | Keine Subscription mit dieser ID im Tenant. Die Nachricht wird trotzdem gesendet. |
| Roter Ring „error (400)“ (bzw. anderer Statuscode) | Der Broker hat mit einem anderen Fehlerstatus geantwortet. Die Nachricht wird trotzdem gesendet. |
| Roter Ring „missing subscription ID“ mit Fehler „Subscription ID is required“ | Weder Konfiguration noch msg.subscriptionId enthalten eine ID. Es wird keine Nachricht gesendet. |
| Roter Ring „error“ mit Fehlermeldung | Netzwerkfehler, 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
- Unwiderruflich: Das Löschen kann nicht rückgängig gemacht werden. Bewahren Sie bei Bedarf vorher die Subscription-Definition über Stellio Subscriptions auf.
- Subscription ID: Verwenden Sie die URN genau so, wie der Broker sie liefert.
- Authentifizierung: Der Node sendet keine Authentifizierungs-Header; der Zugriff auf den Broker wird über das Netzwerk oder ein vorgeschaltetes Gateway geschützt.
- Personenbezogene Daten: Der Node verarbeitet nur die Subscription-ID und keine Inhalte von Entitäten.