Zum Inhalt springen

CoAP-Konnektor

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 lesen
  • CoapWriter - Daten an CoAP-Endpunkte schreiben
  • ✅ Mehrere Transportprotokolle (UDP, TCP, DTLS)
  • ✅ Sichere Kommunikation mit DTLS
  • ✅ PSK- und zertifikatbasierte Authentifizierung
  • ✅ GET-, POST- und PUT-Methoden
  • ✅ Polling-basierte Datenerfassung
{
"type": "CoapReader",
"config": {
"endpoint": "192.168.1.50:5683",
"transport": "UDP",
"pollingRate": 5000,
"path": "/sensors/temperature"
}
}
{
"type": "CoapReader",
"config": {
"endpoint": "192.168.1.50:5683",
"transport": "TCP",
"pollingRate": 5000,
"path": "/sensors/all"
}
}
{
"type": "CoapWriter",
"config": {
"endpoint": "192.168.1.50:5683",
"transport": "UDP",
"path": "/actuators/valve",
"method": "PUT"
}
}
ParameterTypErforderlichBeschreibung
endpointstringCoAP-Serveradresse (Host:Port)
transportstringTransportprotokoll: UDP, TCP oder DTLS
pollingRateintegerPolling-Intervall in Millisekunden
pathstringCoAP-Ressourcenpfad (z.B. /sensors/temp)
dtlsConfigobjectDTLS-Konfiguration (erforderlich für DTLS-Transport)
ParameterTypErforderlichBeschreibung
endpointstringCoAP-Serveradresse (Host:Port)
transportstringTransportprotokoll: UDP, TCP oder DTLS
pathstringCoAP-Ressourcenpfad
methodstringHTTP-Methode: POST oder PUT
dtlsConfigobjectDTLS-Konfiguration (erforderlich für DTLS-Transport)

Standard-CoAP über UDP (Standardport 5683):

{
"endpoint": "192.168.1.50:5683",
"transport": "UDP"
}

Geeignet für: Niedrige Latenz, ressourcenbeschränkte Geräte

{
"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).

{
"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"
}
}
}
}
{
"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>"
}
}
}

Der CoAP-Reader erwartet JSON-Antworten vom Endpunkt:

{
"temperature": 25.5,
"humidity": 60,
"battery": 85
}

Der CoAP-Writer sendet den Daten-Payload als JSON:

{
"valve_position": 75,
"mode": "auto"
}

Von mehreren Sensor-Endpunkten lesen:

{
"type": "CoapReader",
"config": {
"endpoint": "192.168.1.50:5683",
"transport": "UDP",
"pollingRate": 10000,
"path": "/sensors/environment"
}
}

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="
}
}
}

Befehle an IoT-Aktoren senden:

{
"type": "CoapWriter",
"config": {
"endpoint": "192.168.1.100:5683",
"transport": "UDP",
"path": "/actuators/light",
"method": "PUT"
}
}

Gebäudesysteme über CoAP steuern:

{
"type": "CoapWriter",
"config": {
"endpoint": "building-controller.local:5683",
"transport": "TCP",
"path": "/hvac/setpoint",
"method": "POST"
}
}

Lösungen:

  • Endpoint-Adresse und Port überprüfen
  • Netzwerkverbindung prüfen
  • Sicherstellen, dass der CoAP-Server läuft
  • Transportprotokoll mit Serverkonfiguration abgleichen

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

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

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
  1. DTLS für Produktion verwenden: Sensible Daten immer verschlüsseln
  2. Angemessene Polling-Rate: Aktualität mit Gerätebatterielebensdauer ausbalancieren
  3. Timeouts behandeln: CoAP-Geräte können intermittierend verfügbar sein
  4. Observe verwenden, wenn verfügbar: Für Echtzeit-Updates (zukünftige Funktion)
  5. Ressourcenpfad-Konvention: REST-ähnliche Benennung folgen (/sensors/temperature)
  • MQTT - Alternatives IoT-Protokoll
  • HTTP - REST-API für leistungsfähige Geräte
  • Filter - CoAP-Daten filtern
  • InfluxDB - Sensordaten speichern