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.
Einfaches Beispiel: Verwendung von Node-RED mit dem MQTT-Server
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-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 denUsers-Knoten, indem Sie Passwörter bearbeiten, und entfernen Sie Kommentare nach Bedarf.
Authentifizierung von MQTT-Benutzern in Node-RED
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-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-Benutzerknoten
Verbindung zu MQTT über WebSockets
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.
Auswahl einer MQTT-Bibliothek
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.
Browser-zu-MQTT-Verbindungsbeispiel über WebSockets
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-Beispiel
Stellen Sie sicher, dass die WebSocket-Unterstützung im Stackhero-Dashboard aktiviert ist, damit diese Konfiguration wie vorgesehen funktioniert.