Node-RED: MQTT-server

Hoe u Node-RED verbindt met de Mosquitto MQTT-server

👋 Welkom bij de Stackhero-documentatie!

Stackhero biedt een kant-en-klare Node-RED cloud oplossing met tal van voordelen, waaronder:

  • MQTT server inbegrepen (Mosquitto).
  • Volledige toegang tot de Node-RED admin UI.
  • Node-RED Dashboard inbegrepen.
  • Onbeperkte en toegewijde SMTP e-mailserver inbegrepen.
  • Moeiteloze updates met slechts één klik.
  • Aanpasbare domeinnaam beveiligd met HTTPS (bijvoorbeeld, https://node-red.your-company.com).
  • Optimale prestaties en robuuste beveiliging aangedreven door een privé en toegewijde VM.

Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Node-RED cloud hosting oplossing van Stackhero te proberen!

De Node-RED-dienst van Stackhero wordt geleverd met een ingebouwde MQTT-server, waardoor het eenvoudig is om uw IoT-apparaten te integreren via veilige en betrouwbare communicatiekanalen.

Om aan de slag te gaan, gaat u naar het Stackhero-dashboard, zoekt u uw Node-RED-dienst en schakelt u de optie "MQTT Server" in binnen de serviceconfiguratie.

Zodra de server is ingeschakeld, kunt u verbinding maken via poort 8883. Alle verbindingen zijn beveiligd met TLS-encryptie, zodat uw data beschermd blijft.

Als u nieuw bent met MQTT in combinatie met Node-RED, vindt u hier een eenvoudig voorbeeld om u snel op weg te helpen. Dit voorbeeld laat zien hoe u een bericht naar een topic stuurt en berichten van dat topic ontvangt. U kunt het voorbeeld-flow downloaden en importeren in uw Node-RED-omgeving via het menu "Import".

Eenvoudig voorbeeld van MQTT-koppeling met Node-REDEenvoudig voorbeeld van MQTT-koppeling met Node-RED

Als uw MQTT-nodes blijven hangen op de status "connecting", is het verstandig te controleren of de MQTT authentication-flow nog aanwezig is. Als deze ontbreekt, kunt u hem hier downloaden: mqttAuthenticationFlow.json. Importeer deze flow in uw Node-RED-omgeving, werk de Users-node bij met uw gewenste wachtwoorden en verwijder eventueel overbodige opmerkingen.

Het beheren van MQTT-gebruikersauthenticatie is eenvoudig met een speciale flow in Node-RED. U vindt de "MQTT Authentication"-flow direct in het Node-RED-beheerpaneel.

MQTT-authenticatieflowMQTT-authenticatieflow

Binnen deze authenticatieflow zoekt u naar de Users-template node. Deze node bevat een array waarin u de inloggegevens voor elke gebruiker kunt definiëren. U kunt zoveel gebruikers toevoegen als uw project vereist.

Opmerking: De gebruiker node-red is essentieel voor de verbinding van Node-RED met de MQTT-server. Verwijder deze gebruiker niet uit uw configuratie.

MQTT-gebruikersnodeMQTT-gebruikersnode

U heeft de flexibiliteit om verbinding te maken met de Mosquitto MQTT-server via het MQTT-protocol of via WebSockets.

Hoewel het MQTT-protocol lichtgewicht is en daardoor zeer geschikt voor IoT-apparaten, wordt het niet standaard ondersteund in webbrowsers. Wilt u vanuit een browser met uw MQTT-server communiceren, dan gebruikt u WebSockets. Hiermee wordt het MQTT-verkeer verpakt binnen het WebSocket-protocol en dit werkt naadloos met de diensten van Stackhero.

Om WebSocket-connectiviteit te activeren, schakelt u eenvoudig de optie "WebSocket Support" in op uw Stackhero-dashboard. Zodra dit is ingeschakeld, configureert u uw client om de volgende WebSocket-URL te gebruiken: wss://<XXXXXX>.stackhero-network.com:443/mqtt. Vervang de standaard mqtts://<XXXXXX>.stackhero-network.com door deze WebSocket-URL voor browsergebaseerde verbindingen.

Voor ontwikkeldoeleinden is de "MQTT.js"-bibliotheek bijzonder handig. Dit is een robuuste JavaScript-bibliotheek die compatibel is met zowel Node.js als browseromgevingen. Meer informatie vindt u in de officiële repository.

Wilt u een praktisch voorbeeld van hoe u vanuit uw browser via WebSockets verbinding maakt met de MQTT-server, bekijk dan deze repository: https://github.com/stackhero-io/mqttWebSocketGettingStarted. U kunt het bestand src/index.html aanpassen met de url, username en password van uw eigen server.

MQTT WebSocket-voorbeeldMQTT WebSocket-voorbeeld

Controleer voordat u deze setup probeert of WebSocket-ondersteuning is ingeschakeld in uw Stackhero-dashboard. Zo weet u zeker dat browsergebaseerde verbindingen probleemloos werken.