Node-RED: MQTT-Server
Wie Sie Node-RED mit dem Mosquitto MQTT-Server verbinden
👋 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-Service von Stackhero verfügt über einen integrierten MQTT-Server, der die Anbindung Ihrer IoT-Geräte über sichere und zuverlässige Kommunikationskanäle besonders einfach macht.
Um loszulegen, gehen Sie einfach ins Stackhero-Dashboard, wählen Sie Ihren Node-RED-Service aus und aktivieren Sie die Option "MQTT Server" in den Service-Konfigurationseinstellungen.
Sobald der Server aktiviert ist, können Sie sich über Port 8883 verbinden. Alle Verbindungen sind durch TLS-Verschlüsselung gesichert, sodass Ihre Daten geschützt bleiben.
Einfaches Beispiel: Node-RED mit dem MQTT-Server verwenden
Wenn Sie neu im Umgang mit MQTT und Node-RED sind, finden Sie hier ein einfaches Beispiel, das Ihnen den Einstieg erleichtert. Dieses Beispiel zeigt, wie Sie eine Nachricht an ein Topic senden und Nachrichten daraus empfangen. Sie können das Flow-Beispiel herunterladen und über das Menü "Import" in Ihre Node-RED-Instanz importieren.
Einfaches Beispiel für die Verbindung von MQTT mit Node-RED
Wenn Ihre MQTT-Nodes im Status "connecting" hängen bleiben, empfiehlt es sich zu prüfen, ob der Flow
MQTT authenticationnoch vorhanden ist. Falls dieser fehlt, können Sie ihn hier herunterladen: mqttAuthenticationFlow.json. Importieren Sie diesen Flow in Ihre Node-RED-Instanz, aktualisieren Sie denUsers-Node mit Ihren gewünschten Passwörtern und entfernen Sie bei Bedarf nicht benötigte Kommentare.
MQTT-Benutzerauthentifizierung in Node-RED
Die Verwaltung der MQTT-Benutzerauthentifizierung ist mit einem dedizierten Flow in Node-RED unkompliziert. Sie finden den Flow "MQTT Authentication" direkt im Node-RED-Admin-Panel.
MQTT-Authentifizierungsflow
Suchen Sie innerhalb dieses Authentifizierungsflows nach dem Template-Node Users. Dieser Node enthält ein Array, in dem Sie die Zugangsdaten für jeden Benutzer definieren können. Sie können beliebig viele Benutzer für Ihr Projekt hinzufügen.
Hinweis: Der Benutzer
node-redist für die Verbindung von Node-RED mit dem MQTT-Server zwingend erforderlich. Entfernen Sie diesen Benutzer daher nicht aus Ihrer Konfiguration.
MQTT Users Node
Verbindung zu MQTT über WebSockets
Sie haben die Möglichkeit, sich entweder über das MQTT-Protokoll oder über WebSockets mit dem Mosquitto MQTT-Server zu verbinden.
Das MQTT-Protokoll ist sehr ressourcenschonend und eignet sich hervorragend für IoT-Geräte, wird jedoch von Webbrowsern nicht nativ unterstützt. Wenn Sie von einem Browser aus mit Ihrem MQTT-Server interagieren möchten, empfiehlt sich die Nutzung von WebSockets. Damit wird der MQTT-Datenverkehr im WebSocket-Protokoll gekapselt, was nahtlos mit den Stackhero-Services funktioniert.
Um die WebSocket-Konnektivität zu aktivieren, schalten Sie einfach die Option "WebSocket Support" in Ihrem Stackhero-Dashboard ein. Nach der Aktivierung können Sie Ihren Client so konfigurieren, dass er die WebSocket-URL verwendet: wss://<XXXXXX>.stackhero-network.com:443/mqtt. Ersetzen Sie für browserbasierte Verbindungen die Standard-URL mqtts://<XXXXXX>.stackhero-network.com durch diese WebSocket-URL.
Auswahl einer MQTT-Bibliothek
Für die Entwicklung empfiehlt sich insbesondere die Bibliothek "MQTT.js". Sie ist eine leistungsfähige JavaScript-Bibliothek, die sowohl mit Node.js als auch in Browser-Umgebungen kompatibel ist. Weitere Informationen finden Sie im offiziellen Repository.
Beispiel: Browser-zu-MQTT-Verbindung über WebSockets
Ein praktisches Beispiel, wie Sie von Ihrem Browser aus per WebSockets eine Verbindung zum MQTT-Server herstellen, finden Sie in diesem Repository: https://github.com/stackhero-io/mqttWebSocketGettingStarted. Sie können die Datei src/index.html mit der url, dem username und dem password Ihres Servers an Ihre Umgebung anpassen.
MQTT WebSocket Beispiel
Bevor Sie diese Konfiguration testen, stellen Sie bitte sicher, dass der WebSocket-Support in Ihrem Stackhero-Dashboard aktiviert ist. So ist ein reibungsloser Ablauf für browserbasierte Verbindungen gewährleistet.