Node-RED: MQTT-Server

Wie man Node-RED mit dem Mosquitto MQTT-Server verbindet

👋 Willkommen bei der Stackhero-Dokumentation!

Stackhero bietet eine einsatzbereite Node-RED Cloud Lösung, die zahlreiche Vorteile bietet, darunter:

  • MQTT-Server inklusive (Mosquitto).
  • Voller Zugriff auf die Node-RED Admin-UI.
  • Dashboard von Node-RED inklusive.
  • Unbegrenzter und dedizierter SMTP-E-Mail-Server inklusive.
  • Mühelose Updates mit nur einem Klick.
  • Anpassbarer Domainname gesichert mit HTTPS (zum Beispiel, https://node-red.ihre-firma.com).
  • Optimale Performance und robuste Sicherheit durch eine private und dedizierte VM.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Node-RED Cloud Hosting Lösung von Stackhero auszuprobieren!

Der Node-RED-Dienst von Stackhero beinhaltet einen integrierten MQTT-Server, der für eine nahtlose Integration mit IoT-Geräten über sichere und zuverlässige Kommunikationskanäle ausgelegt ist.

Um den MQTT-Server zu aktivieren, navigieren Sie zum Stackhero-Dashboard, lokalisieren Sie Ihren Node-RED-Dienst und aktivieren Sie die Option "MQTT Server" in den Dienstkonfigurationseinstellungen.

Sobald aktiviert, können Verbindungen zum MQTT-Server über Port 8883 hergestellt werden, wobei TLS-Verschlüsselung für sichere Kommunikation sorgt.

Um Ihnen den Einstieg zu erleichtern, betrachten Sie das folgende Beispiel, das zeigt, wie man Node-RED mit dem MQTT-Server verbindet. Dieses Beispiel beinhaltet das Senden einer Nachricht an ein Thema und das Empfangen von Nachrichten davon. Sie können das Flow-Beispiel herunterladen und in Ihre Node-RED-Instanz über das "Import"-Menü importieren.

Einfaches Beispiel für die Verbindung von MQTT mit Node-REDEinfaches Beispiel für die Verbindung von MQTT mit Node-RED

Warnung Wenn die MQTT-Knoten einen "connecting"-Status unendlich anzeigen, bestätigen Sie, dass der MQTT authentication-Flow nicht entfernt wurde. Falls erforderlich, laden Sie ihn hier herunter: mqttAuthenticationFlow.json. Importieren Sie ihn in Ihre Node-RED-Instanz, konfigurieren Sie den Users-Knoten, indem Sie Passwörter bearbeiten, und entfernen Sie Kommentare nach Bedarf.

Die Benutzerauthentifizierung wird über einen dedizierten Flow in Node-RED verwaltet. Sie können auf den "MQTT Authentication"-Flow direkt über das Node-RED-Admin-Panel zugreifen.

MQTT-Authentifizierungs-FlowMQTT-Authentifizierungs-Flow

Innerhalb des Authentifizierungs-Flows lokalisieren Sie den Users-Vorlagenknoten. Dieser Knoten enthält ein Array zur Definition von Benutzeranmeldedaten. Sie können so viele Benutzer hinzufügen, wie für Ihre Konfiguration erforderlich sind.

Hinweis: Der node-red-Benutzer ist entscheidend für die Verbindung von Node-RED mit dem MQTT-Server. Stellen Sie sicher, dass dieser Benutzer in der Konfiguration bleibt.

MQTT-BenutzerknotenMQTT-Benutzerknoten

Sie können sich mit dem Mosquitto MQTT-Server entweder über das MQTT-Protokoll oder WebSockets verbinden.

Während das MQTT-Protokoll leichtgewichtig und ideal für IoT-Geräte ist, wird es in Webbrowsern nicht direkt unterstützt. Um diese Lücke zu schließen, kapseln Sie den MQTT-Verkehr im WebSocket-Protokoll, das nahtlos mit den Diensten von Stackhero funktioniert.

Um die WebSocket-Konnektivität zu aktivieren, aktivieren Sie die Option "WebSocket Support" im Stackhero-Dashboard. Konfigurieren Sie dann Ihren Client mit der Server-URL wss://XXXXX.stackhero-network.com:443/mqtt, indem Sie mqtts://XXXXX.stackhero-network.com durch die korrekte WebSocket-URL ersetzen.

Für Entwicklungszwecke empfehlen wir die "MQTT.js"-Bibliothek. Diese robuste JavaScript-Bibliothek ist mit sowohl Node.js- als auch Browser-Umgebungen kompatibel. Sie können sie weiter in ihrem offiziellen Repository erkunden.

Für Anleitungen zur Einrichtung einer browserbasierten Verbindung zum MQTT-Server über WebSockets, siehe dieses Repository: https://github.com/stackhero-io/mqttWebSocketGettingStarted. Sie können die Datei src/index.html ändern, um die url, den username und das password Ihres Servers für Ihre spezifische Konfiguration einzugeben.

MQTT-WebSocket-BeispielMQTT-WebSocket-Beispiel

Stellen Sie sicher, dass die WebSocket-Unterstützung im Stackhero-Dashboard aktiviert ist, damit diese Konfiguration wie vorgesehen funktioniert.