OPC UA vs. MQTT: Entscheidungsleitfaden für die Maschinenanbindung
- Veröffentlicht:
- Lesezeit
- 16 Min. Lesezeit
- Autor:
- Abbas Mohammadi
OPC UA und MQTT konkurrieren seltener, als die Suchanfrage „OPC UA vs. MQTT“ vermuten lässt. OPC UA beschreibt, was ein Messwert bedeutet, und regelt den gesicherten Zugriff auf die Maschine; MQTT transportiert Nachrichten entkoppelt über einen Broker und interessiert sich nicht für deren Inhalt. In den meisten Werken lautet die Antwort deshalb nicht „entweder – oder“, sondern: OPC UA am Asset, MQTT nach oben – und ein Gateway dazwischen.
Warum „OPC UA oder MQTT“ meist die falsche Frage ist
OPC UA und MQTT lösen unterschiedliche Aufgaben im Datenpfad, deshalb ist der Unterschied zwischen OPC UA und MQTT kein Leistungsvergleich. OPC UA (OPC Unified Architecture) legt fest, wie ein Server seine Variablen als Adressraum mit Datentypen, Statuscodes und Zeitstempeln bereitstellt, wie sich Client und Server ausweisen und wie Nachrichten signiert und verschlüsselt werden. MQTT legt fest, wie ein Client eine Nachricht an einen Broker übergibt und wie der Broker sie an Abonnenten verteilt. Der Inhalt ist dem Protokoll gleichgültig.
Wer die Frage stellt, verrät meist die eigentliche Entscheidung. Die Instandhaltung will Maschinenzustände zuverlässig im Dashboard sehen. Die IT-Leitung will wissen, welche Ports offen sind, wer den Broker betreibt und wie Zertifikate erneuert werden. Hinter „OPC UA oder MQTT“ steckt also eine Entscheidung über Datenmodell, Verbindungsrichtung durch die Firewall und Betriebsmodell – nicht über Bytes pro Sekunde. Beide Standards werden gepflegt: OPC 10000 Teil 2 und Teil 14 liegen seit Oktober 2025 in Release 1.05.06 vor, MQTT 5.0 ist seit März 2019 OASIS-Standard.
Was OPC UA leistet: Informationsmodell, Adressraum, Sicherheitsmodell
OPC UA liefert mit jedem Wert seinen Kontext mit. Ein OPC-UA-Server stellt seine Daten als Knoten (Nodes) mit eindeutigen NodeIds bereit. Liest ein Client eine Variable, bekommt er laut OPC 10000-4 einen DataValue, der neben dem Wert einen StatusCode, einen SourceTimestamp und einen ServerTimestamp trägt. Der Statuscode sagt, ob der Server den Wert liefern konnte; bei einem Fehlerstatus ist der Wert laut Spezifikation zu ignorieren. Genau diese Information fehlt einem nackten MQTT-Payload, wenn niemand sie hineinschreibt.
Darüber liegen die Companion Specifications: branchenspezifische Informationsmodelle, die festlegen, wie etwa eine Werkzeugmaschine ihre Daten strukturiert. Zwei Maschinen verschiedener Hersteller mit derselben Companion Specification liefern Betriebszustand oder Stückzahl unter denselben Knotennamen. Bei MQTT muss diese Vereinbarung außerhalb des Protokolls getroffen werden – im Projekt, mit jedem Lieferanten neu.
Das Sicherheitsmodell nach OPC 10000-2 arbeitet mit Zertifikaten. Jede OPC-UA-Anwendung besitzt ein Application Instance Certificate, das beim Aufbau des SecureChannel ausgetauscht wird; der Empfänger prüft es gegen seine Trust List, einen vom Administrator gepflegten Zertifikatsspeicher. Der Nutzer authentifiziert sich zusätzlich über die Session-Dienste. Wie Nachrichten geschützt werden, bestimmt der Message Security Mode (Tab. 01). Was das bei einer konkreten Steuerungsfamilie bedeutet, zeigt S7-Daten auslesen: OPC-UA-Server, Snap7 und optimierte Datenbausteine.
| Modus | Wert | Bedeutung laut OPC 10000-4 | Einordnung für den Betrieb |
|---|---|---|---|
INVALID | 0 | Ungültig; Standardwert, damit nicht versehentlich „keine Sicherheit“ gewählt wird | Erscheint nur bei unvollständiger Konfiguration |
NONE | 1 | Es wird keine Sicherheit angewendet | Nur mit Security Profile None, das laut Teil 2 standardmäßig deaktiviert ist, sobald sicherere Profile verfügbar sind – nicht für den Produktivbetrieb |
SIGN | 2 | Alle Nachrichten werden signiert, aber nicht verschlüsselt | Integrität und Authentizität; laut Teil 2 ausreichend, wo Vertraulichkeit nicht gefordert ist |
SIGNANDENCRYPT | 3 | Alle Nachrichten werden signiert und verschlüsselt | Standard für alles, was ein Netzsegment verlässt oder Rezeptdaten enthält |
OPC UA kennt seit Teil 14 außerdem ein eigenes Publish/Subscribe-Modell: ohne Broker per UDP im lokalen Netz oder über einen MQTT-Broker. Das MQTT-Mapping (OPC 10000-14, Abschnitt 7.3.4) definiert Adressen der Form mqtt:// (Port 1883) und mqtts:// (Port 8883), eine Topic-Struktur mit dem Präfix opcua, die Codierungen UADP und JSON sowie die Abbildung auf MQTT QoS 0, 1 und 2. „OPC UA over MQTT“ ist also ein spezifizierter Weg, kein Widerspruch.
Was MQTT leistet: Broker, Topics, QoS und Verhalten bei Verbindungsabbruch
MQTT entkoppelt Sender und Empfänger vollständig. Ein Client verbindet sich zum Broker, publiziert Nachrichten auf ein Topic und abonniert Topics, die ihn interessieren; wer sonst noch liest, weiß er nicht. Topics sind hierarchische Zeichenketten, deren Ebenen durch / getrennt sind. Die OASIS-Norm schreibt keine Struktur vor und nennt als Merkmal ausdrücklich einen Transport, der gegenüber dem Inhalt des Payloads agnostisch ist – gleichzeitig die Stärke und das größte Projektrisiko des Protokolls.
| QoS | Zustellgarantie laut MQTT 5.0 | Duplikate | Overhead | Typischer Einsatz |
|---|---|---|---|---|
| 0 | „At most once“: Zustellung nach bestem Bemühen, Verlust möglich | Nein | Minimal, keine Bestätigung | Zyklische Messwerte, bei denen der nächste Wert den letzten ersetzt |
| 1 | „At least once“: Ankunft zugesichert, Bestätigung per PUBACK | Ja, möglich | Eine Bestätigung pro Nachricht | Ereignisse und Zähler, wenn der Empfänger Duplikate erkennt |
| 2 | „Exactly once“: weder Verlust noch Duplikat | Nein | Laut Norm erhöht, mehrstufiger Handshake | Auftrags- und Chargenmeldungen, die genau einmal gebucht werden dürfen |
Drei Mechanismen machen MQTT für instabile Verbindungen robust. Erstens Retained Messages: Setzt der Publisher das RETAIN-Flag, muss der Broker die Nachricht speichern und jedem späteren Abonnenten sofort zustellen – ein neu gestartetes Dashboard sieht den letzten Zustand ohne Wartezeit. Zweitens die Will Message: Der Client hinterlegt beim Verbindungsaufbau eine Nachricht, die der Broker publiziert, wenn die Verbindung ohne reguläres DISCONNECT abreißt. Mit dem Will Delay Interval aus MQTT 5.0 wartet der Broker eine definierte Zeit; verbindet sich der Client vorher neu, unterbleibt die Will Message.
Drittens die Session-Persistenz: Über das Session Expiry Interval legt der Client fest, wie lange der Broker Abonnements und unbestätigte Nachrichten mit QoS 1 und 2 nach einem Abbruch aufbewahrt; bei 0 endet die Session mit der Verbindung. Deshalb trägt MQTT über Mobilfunk und WAN besser als eine sessionbasierte Client/Server-Verbindung: Der Client muss nur den Broker erreichen, der Broker puffert, und „Maschine nicht erreichbar“ ist selbst eine Nachricht.
OPC UA vs. MQTT: die Entscheidungsmatrix nach Szenario
OPC UA vs. MQTT entscheidet sich an wenigen Kriterien, die sich pro Anlage beantworten lassen. Tab. 03 stellt die Eigenschaften gegenüber, Tab. 04 übersetzt sie in typische Szenarien der Maschinenanbindung. Beide vergleichen OPC UA Client/Server mit MQTT als Transport.
| Kriterium | OPC UA Client/Server | MQTT (mit Sparkplug B) |
|---|---|---|
| Semantisches Datenmodell | Im Standard: Adressraum, Datentypen, Statuscodes, Companion Specifications | Nicht im Standard; Sparkplug B liefert typisierte Metriken, keine Branchenmodelle |
| Security-Modell | X.509-Zertifikate beidseitig, Sign/SignAndEncrypt, Nutzer-Authentifizierung in der Session | TLS zum Broker, Client-Authentifizierung per Passwort oder Zertifikat; Autorisierung ist Brokersache |
| Verbindungsrichtung | Client öffnet Verbindung zum Server auf der Maschine (eingehend ins OT-Netz) | Alle Clients öffnen ausgehend zum Broker |
| Verhalten bei Verbindungsabbruch | Client verbindet sich neu; Werte aus der Ausfallzeit fehlen ohne Historian oder Pufferung im Client | Broker puffert je nach QoS und Session Expiry; Will Message meldet den Ausfall |
| Schreibzugriff auf die Steuerung | Write- und Method-Dienste mit Rollen im Standard | Nur per Konvention (Sparkplug NCMD/DCMD); Freigabe prüft das Gateway |
| Betriebsaufwand | Zertifikate auf jedem Server und Client pflegen; kein zentrales Element | Broker als zentrale Komponente betreiben, absichern, hochverfügbar machen |
| Szenario | Empfehlung | Begründung | Vorher klären |
|---|---|---|---|
| Maschine und Auswertung im selben Netzsegment | OPC UA Client/Server | Volle Semantik, kein Broker nötig, Statuscodes bleiben erhalten | Lizenz und Leistungsgrenzen des OPC-UA-Servers |
| Lesen und Schreiben, etwa Rezeptübergabe | OPC UA Client/Server | Rollenmodell und Write-Dienste spezifiziert; Rückmeldung per Statuscode | Wer darf schreiben, wie wird es auditiert |
| Verteilte Standorte über WAN oder Mobilfunk | MQTT mit Sparkplug B | Ausgehende Verbindung, Pufferung im Broker, Zustandsmeldung per Will Message | Broker-Standort und Bandbreitenbudget |
| Anbindung an Cloud- oder EU-Hosting-Plattform | MQTT (TLS, Port 8883) | Ein Endpunkt für viele Quellen, nur ausgehende Firewall-Regeln | Wer betreibt den Broker, wo liegen die Daten |
| Brownfield-Anlage ohne OPC-UA-Server | Gateway: Feldbus oder Sensorik → MQTT | Nachrüstung liefert Rohsignale ohne Modell | Welche Signale reichen – siehe Maschinendaten nachrüsten: vier Wege für Anlagen ohne Schnittstelle |
| Viele gleichartige Assets, hohe Änderungsrate | MQTT mit Sparkplug B oder OPC UA PubSub | Publish/Subscribe skaliert mit Abonnenten statt mit Verbindungen | Namenskonvention und Report-by-Exception-Regeln |
| Maschinenbauer liefert Schnittstelle an Kunden | OPC UA Server mit Companion Specification | Kunden lesen mit Standardclients; Modell ist dokumentiert | Passende Companion Specification, angebotene Security Policies |
| Zeitreihen für Energie- und OEE-Auswertung im Werk | OPC UA am Asset, MQTT zum Speicher | Semantik am Ursprung, entkoppelter Transport zu mehreren Konsumenten | Was das Payload aus dem DataValue mitnehmen muss |
Zwei Aussagen fehlen bewusst. „MQTT ist schneller“ steht nicht in der Matrix, weil die Latenz von Broker, QoS-Stufe, Netzstrecke und Abtastrate abhängt, nicht vom Protokollnamen. „OPC UA ist sicherer“ steht nicht dort, weil Sicherheit bei beiden eine Konfigurationsentscheidung ist: Ein Server im Modus None ist unsicherer als ein MQTT-Broker mit TLS und Client-Zertifikaten.
Sparkplug B: die Struktur, die nacktes MQTT nicht mitbringt
Sparkplug B schließt die drei Lücken, die MQTT absichtlich offen lässt. Ohne Konvention legt jeder Integrator eigene Topics an, verpackt Zahlen mal als Text, mal als JSON, mal binär, und niemand weiß, ob ein Gerät noch lebt oder nur nichts mehr sendet. Die Eclipse Foundation hat dafür die Sparkplug-Spezifikation veröffentlicht, aktuell in Version 3.0.0 aus dem Jahr 2022.
one of the many attractive features of MQTT is that it does not specify any required MQTT Topic Namespace within its implementation.
- Topic Namespace: Alle Clients müssen die Struktur
namespace/group_id/message_type/edge_node_id/[device_id]verwenden; für Sparkplug B lautet der NamespacespBv1.0. - Payload: Nachrichten werden mit Google Protocol Buffers codiert; Metriken tragen Namen, Datentyp, Zeitstempel und Wert.
- Session State Management: Edge Nodes melden sich mit
NBIRTHan und hinterlegenNDEATHals MQTT Will Message; Host Applications publizieren ihren Zustand aufspBv1.0/STATE/<host_id>mit QoS 1 und gesetztem Retain-Flag. - Report by Exception: Nach der Birth-Nachricht mit allen aktuellen Werten werden neue Werte nur bei Änderung gesendet; die Spezifikation schreibt RBE nicht für jeden Fall vor.
Sparkplug B (Eclipse 3.0):
spBv1.0/<group_id>/<message_type>/<edge_node_id>/[<device_id>]
Beispiel: spBv1.0/halle2/DDATA/edge-linie1/presse04
OPC UA PubSub over MQTT (OPC 10000-14, 7.3.4.7):
<Prefix>/<Encoding>/<MqttMessageType>/<PublisherId>/[<WriterGroup>[/<DataSetWriter>]]
Beispiel: opcua/json/data/presse04/wg1/dsw1Sparkplug hat einen Preis. Die Spezifikation bindet den Edge Node an feste MQTT-Einstellungen: Clean Start beziehungsweise Clean Session auf true, Session Expiry Interval 0, NBIRTH und NDATA mit QoS 0 ohne Retain. Die Zuverlässigkeit kommt nicht aus QoS 1, sondern aus der Zustandslogik von Birth und Death. Wie aus Sparkplug-Gruppen ein werksweites Namensschema nach ISA-95 wird, beschreibt Unified Namespace: Referenzarchitektur mit ISA-95-Topic-Schema.
Die Brücke in der Praxis: OPC UA am Asset, MQTT für den Transport
Der Referenzpfad in den meisten Werken lautet SPS → OPC-UA-Server → Gateway → MQTT-Broker → Zeitreihenspeicher. Das OPC-UA-MQTT-Gateway – ein Industrie-PC in der Halle oder ein Edge-Modul im Schaltschrank – ist der einzige OPC-UA-Client der Maschine und der einzige Publisher für ihre Topics.
OPC-UA-Server inventarisieren
Endpunkte, Security Policies, Namespaces und die tatsächlich benötigten Knoten erfassen – nicht den ganzen Adressraum abonnieren.
Gateway als OPC-UA-Client einrichten
Eigenes Application Instance Certificate erzeugen, im Server in die Trust List aufnehmen, Modus
SignAndEncrypt, Subscription statt Polling.Payload-Vertrag festlegen
Was aus dem
DataValuemitfährt: Wert,StatusCode,SourceTimestamp, Einheit,NodeId. Sparkplug B, OPC UA PubSub JSON oder eigenes JSON – vor dem ersten Topic entscheiden.Broker mit TLS und Berechtigungen betreiben
Port 8883, Zertifikate oder Konten pro Gateway, Schreibrechte pro Topic-Präfix, Will Message für jedes Gateway.
Speicher und Konsumenten anbinden
Ein Subscriber schreibt in die Zeitreihendatenbank, weitere lesen für Dashboards oder Alarmierung. Kein Konsument spricht direkt mit der Steuerung.
Beim Übersetzen geht verloren, was das Gateway nicht bewusst mitnimmt; drei Dinge fallen regelmäßig unter den Tisch. Erstens der Statuscode: Ein Wert mit Bad-Status landet als normale Zahl in der Datenbank. Zweitens die Zeitstempelquelle: Der Broker kennt nur die Ankunftszeit; bei gepuffertem Nachsenden nach einem Netzausfall stimmen alle Kurven nicht. Drittens die Semantik: Aus ns=3;s=Presse04.Motor.Temp mit Einheit wird ein Topic namens temp1. Ein Payload, das diese Felder mitführt, kostet wenige Bytes und rettet die Auswertbarkeit.
{
"nodeId": "ns=3;s=Presse04.Motor.Temp",
"value": 63.4,
"unit": "°C",
"statusCode": "Good",
"sourceTimestamp": "2026-09-21T06:12:03.418Z",
"serverTimestamp": "2026-09-21T06:12:03.421Z",
"source": "opc.tcp://presse04:4840"
}Netzwerk, Firewall und Sicherheit: was die IT wirklich fragen wird
Die erste Frage der IT lautet nicht „welches Protokoll“, sondern „welche Richtung“. Bei OPC UA Client/Server öffnet der Client die Verbindung zum Server auf der Maschine – die Regel zeigt in das OT-Netz hinein. Bei MQTT öffnen alle Clients ausgehend zum Broker; steht er in einer DMZ oder beim Hoster, braucht das OT-Netz keine eingehende Regel.
| Protokoll | Port (IANA/Norm) | Richtung | Verschlüsselung | Hinweis für die Firewall-Regel |
|---|---|---|---|---|
OPC UA TCP (opc.tcp) | 4840/TCP (opcua-tcp) | Client → Server auf der Maschine | Im Protokoll: Sign oder SignAndEncrypt per Security Policy | Regel je Maschine oder je Segment; bei IANA ist 4840/UDP zusätzlich als opcua-udp (OPC UA Multicast Datagram Protocol) registriert |
| OPC UA über TLS | 4843/TCP (opcua-tls) | Client → Server | TLS | Von Steuerungen selten angeboten; beim Hersteller nachfragen |
| MQTT | 1883/TCP (mqtt) | Client → Broker, ausgehend | Keine | Nur innerhalb eines geschützten Segments, nie ins WAN |
| MQTT über TLS | 8883/TCP (secure-mqtt) | Client → Broker, ausgehend | TLS, optional Client-Zertifikate | Standardregel für Cloud- und Standortanbindung |
| MQTT über WebSocket | 443/TCP (wss://) | Client → Broker, ausgehend | TLS | Laut OPC 10000-14 für PubSub definiert; hilft bei restriktiven Proxys |
Die zweite Frage betrifft Zertifikate – auf beiden Seiten. OPC UA verlangt pro Anwendung ein Application Instance Certificate und pro Server eine gepflegte Trust List; beim Broker gilt dasselbe für TLS-Server- und Client-Zertifikate. Läuft eines ab oder passt der Hostname nicht, steht die Datenerfassung still – mit selten eindeutiger Fehlermeldung. Wie sich das eingrenzen lässt, steht in OPC-UA-Verbindung scheitert: Zertifikate, Security Policy und Endpunkte prüfen.
Die dritte Frage ist die Segmentierung: Ein gemeinsam genutzter Broker ist ein Zonenübergang und braucht eine eigene Zone, Berechtigungen pro Topic-Präfix und Schreibrechte nur für Gateways. Kommandos in Richtung Steuerung – Sparkplug NCMD oder ein OPC-UA-Write – prüft das Gateway gegen eine Freigabeliste.
Checkliste vor der Entscheidung
Zehn Fragen entscheiden über das Protokoll, bevor das erste Werkzeug installiert wird – danach ergibt sich OPC UA vs. MQTT aus Tab. 04.
Zehn Fragen vor der Protokollwahl
- Welche Steuerungen und Firmwarestände sind im Bestand, und welche bringen einen OPC-UA-Server mit?
- Welche Lizenzen oder Optionen sind für OPC-UA-Server, PubSub oder Gateway nötig?
- Welche Abtastrate braucht die Auswertung wirklich – pro Signal, nicht pauschal?
- Welche Latenz ist für welchen Anwendungsfall zulässig, und wer hat sie gemessen statt geschätzt?
- Wer betreibt den Broker, mit welcher Verfügbarkeit, in welcher Netzzone?
- Wie und von wem werden OPC-UA- und TLS-Zertifikate erneuert, und wo ist das dokumentiert?
- Wie lautet die Namenskonvention für Topics oder Knoten, und wer darf sie ändern?
- Wer darf schreiben – auf die Steuerung, auf den Broker – und wie wird das protokolliert?
- Was passiert bei Netzausfall: Wer puffert wie lange, und wie werden nachgesendete Werte zeitlich eingeordnet?
- Welche Felder muss jede Nachricht tragen, damit Statuscode, Quellzeitstempel und Einheit nicht verloren gehen?
Fazit: OPC UA am Asset, MQTT für den Weg nach oben
OPC UA vs. MQTT ist keine Entweder-oder-Frage, sondern eine Frage der Schicht. OPC UA gehört dorthin, wo Bedeutung entsteht und Zugriff geregelt wird: an die Maschine, mit Zertifikaten und im Modus SignAndEncrypt. MQTT gehört dorthin, wo viele Konsumenten entkoppelt lesen: über den Broker, mit TLS und einer Konvention wie Sparkplug B oder OPC UA PubSub. Die Brücke dazwischen ist kein Kompromiss, sondern die Architektur, die in den meisten Werken trägt.
Der nächste Schritt ist kein Werkzeugkauf, sondern die Checkliste oben – vor allem die Fragen nach Namenskonvention, Zertifikatserneuerung und Netzausfall. Wie so ein Datenpfad vom OPC-UA-Server bis zum Dashboard in der Praxis aussieht, zeigen die Beispiele von ralwo unter Lösungen.
Häufige Fragen
mqtt:// (Port 1883) und mqtts:// (Port 8883), einer Topic-Struktur mit dem Präfix opcua, Metadaten als Retained Message sowie JSON- oder UADP-Codierung; die Zustellgarantien werden auf MQTT QoS 0, 1 und 2 abgebildet. Sie behalten das OPC-UA-Informationsmodell und nutzen trotzdem den Broker. Voraussetzung ist, dass Ihre Steuerungen PubSub bereits anbieten – bei älteren Geräten ist das selten, dann übernimmt ein Gateway die Übersetzung.spBv1.0/group_id/message_type/edge_node_id/[device_id]), ein typisiertes Protobuf-Payload und die Zustandslogik mit Birth- und Death-Nachrichten. Der Preis sind feste MQTT-Einstellungen (Clean Session, QoS 0 für Daten) und eine kleinere Werkzeugauswahl. Die Alternative mit OPC-UA-Semantik ist OPC UA PubSub over MQTT.opcua-tcp) registriert, für OPC UA über TLS 4843/TCP; die Verbindung geht vom Client zum Server auf der Maschine, also eingehend in das OT-Netz. Für MQTT nennt die OASIS-Norm die IANA-Ports 1883 (ohne TLS) und 8883 (mit TLS); alle Clients verbinden sich ausgehend zum Broker. OPC UA PubSub over MQTT kann zusätzlich wss:// auf Port 443 nutzen. In der Praxis öffnet die IT für die Brücke nur 4840 innerhalb des OT-Segments und 8883 ausgehend vom Gateway zum Broker.Session Expiry Interval des Clients vorgibt; steht es auf 0, endet die Session mit der Verbindung. Werte, die der Publisher während des Ausfalls nicht senden konnte, muss der Publisher oder das Gateway selbst puffern und nachsenden – mit dem ursprünglichen SourceTimestamp, sonst stimmen die Kurven nicht. Bei OPC UA Client/Server hängt es von der Konfiguration von Server und Client ab, wie lange Session und Subscription eine Unterbrechung überdauern; ohne Historian oder Pufferung im Client fehlen die Werte aus der Ausfallzeit. Die Will Message meldet den Ausfall selbst als Nachricht.Quellen
- OPC 10000-2: OPC Unified Architecture – Part 2: Security Model, Abschnitt 4 OPC UA security architecture (Release 1.05.06) — OPC Foundation
- OPC 10000-4: OPC Unified Architecture – Part 4: Services, Abschnitt 7.20 MessageSecurityMode — OPC Foundation
- OPC 10000-4: OPC Unified Architecture – Part 4: Services, Abschnitt 7.11 DataValue — OPC Foundation
- OPC 10000-14: OPC Unified Architecture – Part 14: PubSub, Abschnitt 7.3 Transport Protocol Mappings (Release 1.05.06) — OPC Foundation
- MQTT Version 5.0 – OASIS Standard, 07 March 2019 — OASIS Open
- The Sparkplug Specification — Eclipse Foundation
- Sparkplug Specification Version 3.0.0 (PDF) — Eclipse Foundation
- Service Name and Transport Protocol Port Number Registry (Suche „opcua“) — IANA