Zum Hauptinhalt springen

CoAP (IoT)

Constrained Application Protocol (RFC 7252) — der RESTful-Kommunikationsstandard für IoT-Geräte mit geringem Energiebedarf. Da er auf UDP basiert, sind Pakete klein und der Stromverbrauch niedrig. Das Gateway greift per GET / PUT auf die Ressourcen-URIs der Geräte zu.

SituationWelche Karte verwenden Sie
IoT-Geräte mit geringem Energiebedarf (hinter LoRa-WAN gateway, Batteriesensoren)CoAP (diese Seite)
Allgemeines IoT-Gateway (HTTP API)HTTP
Industrielle PLCModbus/TCP, OPC-UA, MELSEC
Über MQTT brokerMQTT Client

Eingabewerte des Registrierungsformulars​

EingabefeldWas tragen Sie einBeispiel
IP-AdresseCoAP-Gerät / Gateway-Hostdevice.local, 10.20.30.40
PortCoAP-Standard 5683 (Klartext) / 5684 (DTLS)5683
ErfassungsintervallPolling-Intervall (ms)5000 (bei Batteriegeräten länger wählen)

PLC-Adressnotation des Tags — Ressourcenpfad​

PLC-Adresse des Tags = CoAP-Ressourcen-URI-Pfad.

FormatVerhalten
/sensors/temperatureGET auf coap://host:5683/sensors/temperature des Geräts — gibt den Antworttext zurück
/actuators/ledBeim Schreiben PUT (text/plain) — value ist der Payload
sensors/multi/T1Fehlt der führende /, wird automatisch korrigiert

Der Lesezugriff ist ein synchroner GET — in jedem Polling-Zyklus wird das Gerät direkt angefragt. Wählen Sie bei Batteriegeräten einen langen Polling-Zyklus (5000–60000 ms), um das Gerät seltener aus dem Sleep-Modus zu wecken.


Häufige Anwendungsfälle​

FallVorgehen
Eclipse Californium Demo-Servercoap.me / 5683 + /test, /.well-known/core (Ressourcen-Discovery)
LoRa-WAN gateway → CoAP proxyCoAP-API-Port des gateway + gerätespezifischer Ressourcenpfad
Industrielle IoT-SensorenRessourcenpfad aus dem Herstellerhandbuch (/sensor/X) — meist Textantwort

Schreiben (PUT)​

Wenn Sie über die Tag-Seite oder die REST API einen Wert schreiben, wird eine PUT-Anfrage (mediaType text/plain) an das Gerät gesendet.

plc_address = /actuators/led
value = ON
→ PUT coap://host:5683/actuators/led payload="ON" Content-Format: text/plain

Ist die Antwort erfolgreich (z. B. 2.04 Changed), war der Schreibvorgang erfolgreich.


Häufige Probleme und Lösungen​

SymptomUrsacheLösung
Kein Wert vorhanden (Lesevorgang liefert leere Zeichenkette)Gerät unterstützt die Ressource nichtRessourcenliste mit coap-client -m get coap://host:5683/.well-known/core prüfen (Paket libcoap-bin)
Lesevorgang sehr langsamNetzwerk-Paketverlust + CoAP-RetransmitPolling-Zyklus verlängern, Congestion prüfen
Gerät benötigt DTLSDer Treiber unterstützt nur Klartext-CoAPSetzen Sie ein DTLS-Terminierungs-Gateway vor das Gerät und lesen Sie die Klartextseite des Gateways aus. Die Option dtls oder die Angabe von Port 5684 löst das Problem nicht

Weiterführende technische Dokumentation​