MQTT-Grundlagen
MQTT ist eine Publish/Subscribe-Architektur, die hauptsächlich für die Verbindung bandbreiten- und strombeschränkter Geräte über drahtlose Netzwerke entwickelt wurde. Es handelt sich um ein einfaches und leichtes Protokoll, das über TCP/IP-Sockets oder WebSockets ausgeführt wird. MQTT über WebSockets kann mit SSL gesichert werden. Die Publish/Subscribe-Architektur ermöglicht die Übermittlung von Nachrichten an die Clientgeräte, ohne dass das Gerät den Server ständig abfragen muss.
Der MQTT-Broker ist der zentrale Kommunikationspunkt und für den Versand aller Nachrichten zwischen den Absendern und den rechtmäßigen Empfängern zuständig. Ein Client ist ein beliebiges Gerät, das eine Verbindung zum Broker herstellt und Themen veröffentlichen oder abonnieren kann, um auf die Informationen zuzugreifen. Ein Thema enthält die Routing-Informationen für den Broker. Jeder Client, der Nachrichten senden möchte, veröffentlicht diese zu einem bestimmten Thema, und jeder Client, der Nachrichten empfangen möchte, abonniert ein bestimmtes Thema. Der Broker liefert alle Nachrichten mit dem passenden Thema an die entsprechenden Clients.
ThingSpeak™ verfügt über einen MQTT-Broker unter der URL mqtt3.thingspeak.com
und dem Port 1883
. Der ThingSpeak- Broker unterstützt sowohl MQTT-Veröffentlichung als auch MQTT-Abonnement, wie in den folgenden Diagrammen dargestellt.
MQTT-Veröffentlichung
Diese Abbildung beschreibt die Themenstruktur. Der Broker bestätigt eine korrekte CONNECT
- Anfrage mit CONNACK
.
MQTT-Abonnieren
Diese Abbildung beschreibt die Themenstruktur. Der Broker bestätigt eine korrekte SUBSCRIBE
- Anfrage mit SUBACK
.
Erstellen Sie ein ThingSpeak MQTT-Gerät
Der MQTT-Zugriff auf Ihre Kanäle, einschließlich Anmeldeinformationen, wird von einem ThingSpeak MQTT-Gerät verwaltet. Ihr Gerät ist mit den Anmeldeinformationen konfiguriert, die Ihr MQTT-Client benötigt, um mit ThingSpeak zu kommunizieren und bestimmte Kanäle zu autorisieren. Führen Sie die folgenden Schritte aus, um ein MQTT-Gerät zu erstellen.
Klicken Sie im ThingSpeak Menü auf Devices > MQTT.
Klicken Sie auf der Seite „MQTT-Geräte“ auf Add a new device.
Füllen Sie das Dialogfeld „Neues Gerät hinzufügen“ aus:
Geben Sie einen Gerätenamen an.
Geben Sie optional eine Beschreibung an.
Wählen Sie im Abschnitt „Kanäle autorisieren“ einen Kanal aus dem Listenmenü aus und klicken Sie dann auf Add Channel. Wiederholen Sie diesen Vorgang, bis Sie alle Kanäle, die Sie mit dem Gerät verbinden möchten, in der Liste der autorisierten Kanäle haben. Legen Sie jeweils fest, dass das Veröffentlichen und Abonnieren nach Bedarf zulässig ist.
Klicken Sie auf Add Device.
Zu diesem Zeitpunkt generiert ThingSpeak eine Liste mit Anmeldeinformationen für Ihr Gerät, einschließlich Client-ID, Benutzername und Passwort. Sie können diese Elemente auf dieser Seite anzeigen und kopieren oder auf Download Credentials klicken, um die Anmeldeinformationen in einer lokalen Datei zu speichern. "Wichtig": Notieren oder speichern Sie jetzt Ihre Zugangsdaten, da Sie keine weitere Gelegenheit erhalten, das Passwort anzuzeigen oder zu speichern.
Klicken Sie auf Done , um die Geräteerstellung abzuschließen.
Ihr neues Gerät erscheint nun auf der Seite „MQTT-Geräte“. Sie können Ihre Geräteeinstellungen ändern und Kanäle hinzufügen, indem Sie auf Edit klicken. Sie können die Client-ID, den Benutzernamen und das Passwort in Ihrem MQTT-Client verwenden, um auf Ihr ThingSpeak MQTT-Gerät zuzugreifen und dessen Kanäle zu veröffentlichen und zu abonnieren.
Hinweis
Sie können bis zu 100 MQTT-Geräte pro Benutzer haben, mit maximal 10 autorisierten Kanälen pro Gerät. Wenn Sie weitere Geräte oder Kanäle benötigen, Contact Support.
Informationen zur Verwendung eines Desktop-MQTT-Clients finden Sie unter Veröffentlichen und abonnieren Sie einen Kanal mit dem Desktop-MQTT-Client.
„Gerätepasswort zurücksetzen.“ Wenn Sie Ihr Gerätepasswort jederzeit zurücksetzen müssen, können Sie es auf der Gerätebearbeitungsseite zurücksetzen:
Wählen Sie Devices > MQTT aus.
Klicken Sie in der angezeigten Liste Ihrer MQTT-Geräte für das Gerät, das Sie zurücksetzen möchten, auf Edit , um dessen Konfigurationsdetails anzuzeigen.
Klicken Sie im Abschnitt MQTT Credentials auf das Symbol „Neu generieren“, um das Passwort zurückzusetzen. Verbindungen mit dem alten Passwort werden deaktiviert.
Serverantwort für Verbindungen
Wenn die Verbindung erfolgreich ist, antwortet der MQTT-Broker ThingSpeak mit einer Verbindungsbestätigung CONNACK
. Der MQTT-Broker antwortet auf eine erfolgreiche Abonnementanfrage mit einer SUBACK
- Nachricht und leitet alle neuen Daten, die im abonnierten Kanal oder Feld gepostet werden, an den Client weiter. Weitere Informationen zu diesen Meldungen finden Sie in der Spezifikation MQTT v3.1.1 . Anschließend können Sie Nachrichten zu Themen mit der Form Publish to a Channel Feed oder Publish to a Channel Field Feed veröffentlichen.
MQTT-Client-Konfiguration
ThingSpeak verfügt über einen MQTT-Broker unter der URL mqtt3.thingspeak.com
. Konfigurieren Sie Ihren MQTT-Client für die Kommunikation mit dem MQTT-Broker ThingSpeak basierend auf einer der folgenden Optionen:
Hafen | Verbindungstyp | Verschlüsselung |
---|---|---|
1883 | TCP | Keiner |
8883 | TCP | TLS/SSL |
80 | WebSocket | Keiner |
443 | WebSocket | TLS/SSL |
Berücksichtigen Sie beim Konfigurieren Ihrer Clientverbindung Folgendes:
Wenn Ihre Hardware den sicheren SSL-Socket-Verbindungsmodus unterstützt, verwenden Sie diesen Modus nach Möglichkeit für die Kommunikation mit dem MQTT-Broker ThingSpeak .
ThingSpeak implementiert die MQTT-Veröffentlichungs- und Abonnementfunktion mit
QoS
=0
. Dieses „Fire-and-Forget“-Protokoll bedeutet, dass Ihr Client keine Bestätigung erhält, wenn Sie auf einem ThingSpeak- Kanal veröffentlichen.Bei MQTT-Verbindungen kommt es nach einer Stunde Inaktivität zu einer Zeitüberschreitung.
Bei Verwendung einer WebSocket-Verbindung lautet der erforderliche Pfad
/mqtt
.Wenn Sie die Paho-Bibliothek mit Python® auf Raspberry Pi® verwenden, ist der Standard-MQTT-Pfad
"/mqtt"
, Sie können dies jedoch auch mit der Codezeile festlegen :client.ws_set_options("/mqtt")
Mit der HiveMQ MQTT-CLI legen Sie den Pfad mit der Befehlsoption fest:
mqtt pub … -ws -ws:path /mqtt …
Siehe auch
Publish to a Channel Feed | Publish to a Channel Field Feed | Subscribe to a Channel Field Feed | Subscribe to a Channel Feed
Verwandte Themen
- Fehlerbehebung bei der MQTT-Veröffentlichung
- MQTT-API
- Veröffentlichen und abonnieren Sie einen ThingSpeak Kanal mit Secure MQTT
- Veröffentlichen und abonnieren Sie einen Kanal mit dem Desktop-MQTT-Client
- Veröffentlichen Sie auf einem ThingSpeak Kanal mit einem Particle Device Client über MQTT
- Veröffentlichen Sie mit WebSockets in Python auf einem Raspberry Pi
- Verwenden Sie den Particle Photon Client, um Kanalaktualisierungen zu abonnieren
- Fehlerbehebung bei MQTT Subscribe
- Verwenden Sie den Particle Photon Client, um Kanalaktualisierungen zu abonnieren