MQTT
Versionshinweise
Message Queue Telemetry Transport (MQTT) ist ein offenes Nachrichtenprotokoll für die M2M-Kommunikation (Machine To Machine), das die Übertragung von Telemetriedaten in Form von Nachrichten von ständig verfügbaren, vernetzten Geräten über Netzwerke mit hoher Latenz oder Einschränkungen an einen Server oder kleinen Message Broker ermöglicht. Ständig verfügbare, vernetzte Geräte können von Sensoren und Aktoren bis hin zu Mobiltelefonen, eingebetteten Systemen in Fahrzeugen oder Laptops und Full-Scale-Computern reichen.
MQTT funktioniert beim Veröffentlichen/Abonnieren der Architektur. MQTT erfordert einen Message Broker und kommunizierende Geräte. Die kommunizierenden Geräte können als Clients bezeichnet werden. Der Broker und die Clients können einen Parameter namens "Topic" publizieren und abonnieren. Sie können die Kommunikation über MQTT mit SSL sichern.
Die MQTT Extension stellt Konnektivität mit kleinen elektronischen Geräten und Sensoren bereit und ermöglicht es ihnen, mit ThingWorx zu kommunizieren.
Sie können jeden Standard-Broker für MQTT gemäß den Anforderungen Ihrer Organisation verwenden. Weitere Informationen zu Benutzerkontrolleinstellungen finden Sie in der Produktdokumentation des Brokers, den Sie installieren möchten.
* 
Unter einem Windows-Betriebssystem wird der Broker nach der Installation als Dienst ausgeführt.
MQTT importieren
Sie können die MQTT Extension auf der Seite support.ptc.com unter Software herunterladen > Software-Aktualisierungen bestellen oder herunterladen > ThingWorx Foundation > Release <neueste Version> > ThingWorx MQTT Extension > Neuester Datumscode > MQTT--<Version>-Extension herunterladen. Siehe Erweiterungen importieren, um die Datei MQTT_Extension.zip in Ihre Installation von ThingWorx zu importieren. Wenn die Erweiterung installiert ist, wird in der Liste Dingvorlagen Folgendes angezeigt:
MQTTConnection
Ermöglicht eine gemeinsam benutzte Verbindung für die MQTTSubscriber-Dinge.
MQTTSubscriber
Ermöglicht Abonnements für ein oder mehrere Themen auf dem MQTT-Server. Fügen Sie Eigenschaften unter "Konfiguration > Eigenschaft" im Bereich mit MQTT-Themazuordnungen hinzu.
Wenn Sie ein MQTTSubscriber-Ding bearbeiten, starten Sie das zugeordnete MQTTConnection-Ding neu, um zu aktualisieren.
MQTT
Ermöglicht die gesamte obige Konfiguration in einem einzelnen Ding.
MQTT konfigurieren
Im folgenden Abschnitt wird beschrieben, wie Sie die Parameter in MQTT konfigurieren, nachdem Sie die Erweiterung in ThingWorx installiert haben und eine Verbindung mit einem Broker herstellen möchten.
1. Führen Sie den Broker aus, den Sie auf dem Computer installiert haben.
2. Erstellen Sie in ThingWorx ein neues Ding, wählen Sie MQTT als Dingvorlage aus, und klicken Sie auf Speichern.
3. Klicken Sie auf die Ansicht Eigenschaften und Warnungen. Der folgende Bildschirm wird angezeigt:
Im Bild oben geben die Call-Outs 1 und 2 Folgendes an:
Call-Out
Beschreibung
1
Das grüne Symbol zeigt an, dass das Ding, das Sie erstellt haben, mit dem Broker verbunden ist. Es wird rot angezeigt, wenn das Ding getrennt wird.
2
Die isConnected-Eigenschaft wird im Feld Wert auf TRUE festgelegt, wenn eine Verbindung zwischen Ding und Broker hergestellt wird. Das Feld Wert wird auf FALSE festgelegt, wenn diese getrennt wird.
4. Klicken Sie auf Hinzufügen, um eine Eigenschaft hinzuzufügen:
5. Der folgende Bildschirm wird angezeigt:
6. Geben Sie den Eigenschaftsnamen, den Basistyp und andere erforderliche Details ein.
7. Speichern Sie die Informationen in Bezug auf die Eigenschaft.
8. Klicken Sie auf die Ansicht Konfiguration. Der folgende Bildschirm wird angezeigt:
In der folgenden Tabelle werden die verschiedenen Parameter beschrieben, die Sie in der Ansicht Konfiguration finden.
JDBC Settings
Beschreibung
clientIdFormat
Name des Clients, der beim MQTT-Broker registriert ist.
* 
Er sollte für einen MQTT-Broker eindeutig sein.
Das Token {s} ist für den Servernamen von ThingWorx Platform gedacht. Es verwendet den Wert in der Konfiguration Untersystem für Verbund als Servername.
Das Token {t} ist für den aktuellen Dingnamen gedacht. Wenn unterschiedliche Plattformen mit einem Broker verbunden sein und Dinge mit demselben Namen haben sollen, wird empfohlen, den Servernamen bei Untersystem für Verbund anzugeben.
useSSL
Wählen Sie diese Option aus, wenn Ihr Broker sichere Verbindungen unterstützt.
serverName
Name des Hosts, auf dem der MQTT-Broker ausgeführt wird.
* 
Lassen Sie das Feld leer, wenn der Broker auf demselben Rechner wie ThingWorx Platform ausgeführt wird.
serverPort
Port für den MQTT-Broker. Der Standardwert ist 1883.
userId
Name des Benutzers, der mit dem Broker verbunden werden soll.
Password
Passwort für die Benutzer-ID.
Timeout
Zeit in Millisekunden, die gewartet werden muss, damit eine Veröffentlichungsanforderung erfolgreich ist. Der Standardwert ist 5000 ms.
ConnectTimeout
Zeit in Millisekunden, die gewartet werden muss, bis eine Verbindung zwischen ThingWorx Platform und MQTT-Broker hergestellt wird.
retryInterval
Intervallzeit in Millisekunden, um die Verbindung zu wiederholen, wenn eine Verbindung zu einem MQTT-Broker unterbrochen wird.
Der Wiederholungsmechanismus funktioniert nur, wenn die Verbindung zu einem bestimmten Zeitpunkt hergestellt und später unterbrochen wurde.
retryAttempts
Anzahl der Wiederholungsversuche für Verbindungen.
Wenn beispielsweise eine hergestellte Verbindung durch Netzwerkstörungen oder andere Probleme unterbrochen wird, wird die Anzahl der Versuche zum Zurücksetzen der Verbindung durch den in diesem Feld eingegebenen Wert bereitgestellt. Jeder Wiederholungsversuch wird durch das oben genannte retryInterval getrennt.
pingInterval
Zeit in Millisekunden, um den Verbindungsstatus zwischen ThingWorx Platform und dem MQTT-Broker regelmäßig zu prüfen.
Der Standardwert ist 45 Sekunden. Alle 45 Sekunden wird eine Ping-Meldung an den MQTT-Broker gesendet, um zu prüfen, ob eine Antwort vorhanden ist. Die Antwort des Brokers bedeutet, dass die Verbindung gültig ist.
connectionIdleTimeout
Leerlaufzeit in Millisekunden für eine Verbindung.
Wenn die Verbindung außerhalb dieser festgelegten Zeit inaktiv ist, gibt dies an, dass keine Nachrichtenkommunikation im Kanal vorhanden war. Das Ding wird als "getrennt" markiert.
Wenn Eigenschaften nicht publiziert oder abonniert werden, aktualisiert das pingInterval die letzte aktive Zeit weiter, sodass das Ding nicht getrennt wird.
qos
Dieser Wert legt die Prioritätsebene der Kommunikation zwischen dem Broker und seinen Clients fest.
Die AutoMapping-Konfigurationstabelle enthält die Einstellungen für die automatische Zuordnung der Eigenschaften zum Veröffentlichen oder Abonnieren. Wenn die automatische Zuordnung aktiviert ist, müssen Sie die Tabelle für Mappings nicht angeben. Jede Eigenschaft, die Sie im Ding erstellen, wird automatisch einer Eigenschaft zugeordnet. Der Themaname wird durch das unten genannte format festgelegt:
AutoMapping
Beschreibung
format
Format des Themanamens, der einer Eigenschaft entspricht.
Das Token{s} ist für den Servernamen, {t} für den Dingnamen und {p} für den Eigenschaftsnamen gedacht.
enabled
Sie können die Funktion für die automatische Zuordnung auswählen.
9. Geben Sie die Werte in die Felder gemäß Anforderung ein, und klicken Sie in der Mappings-Einstellung auf Hinzufügen.
Der folgende Bildschirm wird angezeigt:
10. Geben Sie hier den Eigenschaftsnamen ein, den Sie in Schritt 6 hinzugefügt haben, den Themanamen, und wählen Sie Abonnieren und/oder Veröffentlichen aus. Die Eigenschaft veröffentlicht oder abonniert den Themanamen, den Sie hier eingeben.
11. Klicken Sie auf Hinzufügen.
12. Klicken Sie in der Properties and Alerts-Ansicht auf Wert festlegen.
13. Der folgende Bildschirm wird angezeigt.
Geben Sie den Eigenschaftswert im Feld ein, und speichern Sie ihn.
14. Befolgen Sie die Befehle für den Rechenlauf, die für den auf Ihrem Rechner installierten Broker spezifisch sind, und prüfen Sie die Publizierungs- und Abonnementaktivitäten zwischen der Dingeigenschaft und dem Broker.