Node-RED: MQTT-Server
Wie Sie Node-RED mit dem Mosquitto MQTT-Server verbinden
Willkommen in der Stackhero-Dokumentation
Stackhero bietet Ihnen eine vollständig verwaltete Node-RED Cloud Umgebung, mit der Sie Workflows schnell erstellen können:
- Integrierter MQTT-Server (Mosquitto) für nahtlose IoT-Integration.
- Voller Zugriff auf die Node-RED Admin-Oberfläche zur Verwaltung von Flows und Einstellungen.
- Node-RED Dashboard inklusive für Echtzeit-Visualisierung.
- Dedizierter SMTP-E-Mail-Server inklusive, ohne Versandlimits.
- Mühelose One-Click-Updates, damit Ihre Instanz immer aktuell bleibt.
- Eigene Domainnamen mit automatischem HTTPS: zum Beispiel https://node-red.ihr-unternehmen.com.
- Hohe Performance und starke Sicherheit durch private, dedizierte Infrastruktur.
Sie können in etwa 5 Minuten eine sichere, produktionsreife Node-RED Cloud Hosting Instanz bereitstellen. Stackhero übernimmt Einrichtung, Updates und Infrastruktur, sodass Sie sich ganz auf die Entwicklung Ihrer Automatisierungen konzentrieren können.
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.