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