CoAP-Konnektor
Übersicht
Abschnitt betitelt „Übersicht“Der CoAP-Konnektor (Constrained Application Protocol) ermöglicht die Kommunikation mit ressourcenbeschränkten IoT-Geräten. CoAP ist ein leichtgewichtiges Protokoll für stromsparende Geräte und verlustbehaftete Netzwerke, das häufig in Smart Home, industriellem IoT und Sensornetzwerken verwendet wird.
Konnektor-Typen:
CoapReader- Daten von CoAP-Endpunkten lesenCoapWriter- Daten an CoAP-Endpunkte schreiben
Funktionen
Abschnitt betitelt „Funktionen“- ✅ Mehrere Transportprotokolle (UDP, TCP, DTLS)
- ✅ Sichere Kommunikation mit DTLS
- ✅ PSK- und zertifikatbasierte Authentifizierung
- ✅ GET-, POST- und PUT-Methoden
- ✅ Polling-basierte Datenerfassung
Grundkonfiguration
Abschnitt betitelt „Grundkonfiguration“CoAP Reader (UDP)
Abschnitt betitelt „CoAP Reader (UDP)“{ "type": "CoapReader", "config": { "endpoint": "192.168.1.50:5683", "transport": "UDP", "pollingRate": 5000, "path": "/sensors/temperature" }}CoAP Reader (TCP)
Abschnitt betitelt „CoAP Reader (TCP)“{ "type": "CoapReader", "config": { "endpoint": "192.168.1.50:5683", "transport": "TCP", "pollingRate": 5000, "path": "/sensors/all" }}CoAP Writer
Abschnitt betitelt „CoAP Writer“{ "type": "CoapWriter", "config": { "endpoint": "192.168.1.50:5683", "transport": "UDP", "path": "/actuators/valve", "method": "PUT" }}Konfigurationsparameter
Abschnitt betitelt „Konfigurationsparameter“Reader-Konfiguration
Abschnitt betitelt „Reader-Konfiguration“| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
endpoint | string | ✅ | CoAP-Serveradresse (Host:Port) |
transport | string | ✅ | Transportprotokoll: UDP, TCP oder DTLS |
pollingRate | integer | ✅ | Polling-Intervall in Millisekunden |
path | string | ✅ | CoAP-Ressourcenpfad (z.B. /sensors/temp) |
dtlsConfig | object | ❌ | DTLS-Konfiguration (erforderlich für DTLS-Transport) |
Writer-Konfiguration
Abschnitt betitelt „Writer-Konfiguration“| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
endpoint | string | ✅ | CoAP-Serveradresse (Host:Port) |
transport | string | ✅ | Transportprotokoll: UDP, TCP oder DTLS |
path | string | ✅ | CoAP-Ressourcenpfad |
method | string | ✅ | HTTP-Methode: POST oder PUT |
dtlsConfig | object | ❌ | DTLS-Konfiguration (erforderlich für DTLS-Transport) |
Transportprotokolle
Abschnitt betitelt „Transportprotokolle“Standard-CoAP über UDP (Standardport 5683):
{ "endpoint": "192.168.1.50:5683", "transport": "UDP"}Geeignet für: Niedrige Latenz, ressourcenbeschränkte Geräte
CoAP über TCP für zuverlässige Übertragung:
{ "endpoint": "192.168.1.50:5683", "transport": "TCP"}Geeignet für: Zuverlässige Verbindungen, größere Payloads
Sicheres CoAP mit DTLS-Verschlüsselung (Standardport 5684):
{ "endpoint": "192.168.1.50:5684", "transport": "DTLS", "dtlsConfig": { "pskIdentity": "device1", "pskKey": "c2VjcmV0a2V5" }}Geeignet für: Sichere Kommunikation über nicht vertrauenswürdige Netzwerke
DTLS-Sicherheitskonfiguration
Abschnitt betitelt „DTLS-Sicherheitskonfiguration“Pre-Shared Key (PSK)
Abschnitt betitelt „Pre-Shared Key (PSK)“{ "type": "CoapReader", "config": { "endpoint": "192.168.1.50:5684", "transport": "DTLS", "pollingRate": 5000, "path": "/sensors/secure", "dtlsConfig": { "pskIdentity": "bXlkZXZpY2U=", "pskKey": "c2VjcmV0a2V5MTIz" } }}Hinweis: pskIdentity und pskKey sind Byte-Arrays (typischerweise Base64-kodiert in JSON).
Zertifikatbasierte Authentifizierung
Abschnitt betitelt „Zertifikatbasierte Authentifizierung“{ "type": "CoapReader", "config": { "endpoint": "192.168.1.50:5684", "transport": "DTLS", "pollingRate": 5000, "path": "/sensors/secure", "dtlsConfig": { "certFile": { "mode": "path", "data": "/certs/client.crt" }, "keyFile": { "mode": "path", "data": "/certs/client.key" }, "caCertFile": { "mode": "path", "data": "/certs/ca.crt" } } }}Zertifikatdateien (Base64)
Abschnitt betitelt „Zertifikatdateien (Base64)“{ "dtlsConfig": { "certFile": { "mode": "base64", "data": "<base64-kodiertes-zertifikat>" }, "keyFile": { "mode": "base64", "data": "<base64-kodierter-privater-schlüssel>" }, "caCertFile": { "mode": "base64", "data": "<base64-kodiertes-ca-zertifikat>" } }}Datenformat
Abschnitt betitelt „Datenformat“Reader-Antwort
Abschnitt betitelt „Reader-Antwort“Der CoAP-Reader erwartet JSON-Antworten vom Endpunkt:
{ "temperature": 25.5, "humidity": 60, "battery": 85}Writer-Payload
Abschnitt betitelt „Writer-Payload“Der CoAP-Writer sendet den Daten-Payload als JSON:
{ "valve_position": 75, "mode": "auto"}Häufige Anwendungsfälle
Abschnitt betitelt „Häufige Anwendungsfälle“1. Sensornetzwerk-Überwachung
Abschnitt betitelt „1. Sensornetzwerk-Überwachung“Von mehreren Sensor-Endpunkten lesen:
{ "type": "CoapReader", "config": { "endpoint": "192.168.1.50:5683", "transport": "UDP", "pollingRate": 10000, "path": "/sensors/environment" }}2. Sichere Gerätekommunikation
Abschnitt betitelt „2. Sichere Gerätekommunikation“Mit Geräten mit DTLS-Sicherheit verbinden:
{ "type": "CoapReader", "config": { "endpoint": "iot-gateway.local:5684", "transport": "DTLS", "pollingRate": 5000, "path": "/api/v1/data", "dtlsConfig": { "pskIdentity": "Z2F0ZXdheTE=", "pskKey": "c3VwZXJzZWNyZXQ=" } }}3. Aktorsteuerung
Abschnitt betitelt „3. Aktorsteuerung“Befehle an IoT-Aktoren senden:
{ "type": "CoapWriter", "config": { "endpoint": "192.168.1.100:5683", "transport": "UDP", "path": "/actuators/light", "method": "PUT" }}4. Smart-Building-Integration
Abschnitt betitelt „4. Smart-Building-Integration“Gebäudesysteme über CoAP steuern:
{ "type": "CoapWriter", "config": { "endpoint": "building-controller.local:5683", "transport": "TCP", "path": "/hvac/setpoint", "method": "POST" }}Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Verbindung fehlgeschlagen
Abschnitt betitelt „Verbindung fehlgeschlagen“Lösungen:
- Endpoint-Adresse und Port überprüfen
- Netzwerkverbindung prüfen
- Sicherstellen, dass der CoAP-Server läuft
- Transportprotokoll mit Serverkonfiguration abgleichen
DTLS-Handshake fehlgeschlagen
Abschnitt betitelt „DTLS-Handshake fehlgeschlagen“Lösungen:
- PSK-Identität und -Schlüssel mit Serverkonfiguration abgleichen
- Zertifikatgültigkeit und -ablauf prüfen
- CA-Zertifikat auf Korrektheit prüfen
- Cipher-Suite-Kompatibilität überprüfen
Ungültige Antwort
Abschnitt betitelt „Ungültige Antwort“Lösungen:
- Sicherstellen, dass der Endpunkt gültiges JSON zurückgibt
- Ressourcenpfad auf Korrektheit prüfen
- Inhaltsformat auf application/json überprüfen
- Server-Logs auf Fehler prüfen
Anfrage-Timeout
Abschnitt betitelt „Anfrage-Timeout“Lösungen:
- Timeout erhöhen, wenn das Netzwerk langsam ist
- Auf Netzwerküberlastung prüfen
- Überprüfen, ob das Gerät reagiert
- TCP für unzuverlässige Netzwerke in Betracht ziehen
Best Practices
Abschnitt betitelt „Best Practices“- DTLS für Produktion verwenden: Sensible Daten immer verschlüsseln
- Angemessene Polling-Rate: Aktualität mit Gerätebatterielebensdauer ausbalancieren
- Timeouts behandeln: CoAP-Geräte können intermittierend verfügbar sein
- Observe verwenden, wenn verfügbar: Für Echtzeit-Updates (zukünftige Funktion)
- Ressourcenpfad-Konvention: REST-ähnliche Benennung folgen (
/sensors/temperature)