MQTT Subscribe mit Siemens-Steuerungen einrichten

„Subscribe" heißt: Deine Siemens-Steuerung meldet sich beim MQTT-Broker für ein Topic an und empfängt danach jede Nachricht, die dorthin veröffentlicht wird. Bei S7-1200/1500 machst du das über eine MQTT-Client-Bibliothek im TIA Portal – ein eingebauter MQTT-Baustein fehlt in der Firmware.
Beim Subscribe schickt der Client (deine Siemens-CPU) dem Broker einen Topic-Namen, z. B. anlage/wr/write/request. Ab dann pusht der Broker jede zu diesem Topic passende Nachricht an die CPU – ohne dass du selbst pollen musst. Das ist der Gegenpart zu Publish, bei dem die CPU Daten sendet. In der Praxis läuft eine Steuerung meist als beides: Sie published Messwerte und subscribed Stell-Befehle.

1) Im TIA Portal eine MQTT-Client-Bibliothek einbinden (Siemens stellt LMQTT_Client als offenen SCL-Baustein über SIOS/GitHub bereit; ein Baustein ist nicht ab Werk in der Firmware). 2) Verbindung zum Broker aufbauen: IP, Port (1883 unverschlüsselt, 8883 mit TLS), Client-ID, optional User/Passwort. 3) Den Subscribe-Baustein mit Topic und QoS-Level aufrufen. 4) Im Callback/Empfangspuffer die eintreffende Nutzlast (meist JSON oder Rohwert) parsen und in DB-Variablen ablegen.

MQTT kennt drei Zustellstufen: QoS 0 (höchstens einmal, kein Handshake – schnell, aber Verlust möglich), QoS 1 (mindestens einmal, kann doppelt ankommen) und QoS 2 (genau einmal, aufwändigster Handshake). Für unkritische Messwerte reicht QoS 0/1; für Stell-Befehle an einen Wechselrichter oder ein BHKW nimmst du QoS 1 oder 2, damit kein Befehl verloren geht.

Topics sind mit Schrägstrichen hierarchisch aufgebaut, z. B. kunde/kaco/read. Beim Subscribe kannst du Wildcards nutzen: + ersetzt eine Ebene (kunde/+/read), # deckt alle Unterebenen ab (kunde/#). Halte die Struktur konsistent, damit sich Lese- und Schreib-Pfade sauber trennen lassen – etwa .../write/request für Befehle und .../write/ack für die Bestätigung zurück.

Willst du nicht selbst in SCL programmieren, kannst du MQTT über vorgelagerte Siemens-Komponenten abwickeln: der SIMATIC S7-Connector bzw. Industrial Edge, IoT-Gateways oder Insights Hub (früher MindSphere) übernehmen die Broker-Anbindung. Auch ein separates Edge-Gerät (z. B. ein Raspberry Pi als MQTT-Client neben der SPS) ist gängig: Es subscribed die Topics, schreibt in eine Datenbank und stellt Befehle an die Steuerung zu.
Häufig scheitert Subscribe an Kleinigkeiten: falscher Port (1883 vs. 8883/TLS), fehlende oder falsche Zugangsdaten am Broker, doppelt vergebene Client-ID (der Broker trennt dann die ältere Verbindung), Tippfehler im Topic (Groß-/Kleinschreibung ist relevant) oder eine Firewall, die den Broker-Port blockt. Prüfe die Verbindung zuerst mit einem PC-Client wie mosquitto_sub gegen denselben Broker.