Node-RED: Serveur MQTT

Comment connecter Node-RED au serveur Mosquitto MQTT

Bienvenue dans la documentation Stackhero

Stackhero offre un environnement Node-RED cloud entièrement géré, conçu pour vous permettre de créer des workflows rapidement :

  • Serveur MQTT intégré (Mosquitto) pour une intégration IoT sans friction.
  • Accès complet à l'interface d'administration Node-RED pour gérer vos flows et paramètres.
  • Node-RED Dashboard inclus pour la visualisation en temps réel.
  • Serveur email SMTP dédié inclus, sans aucune limite d'envoi.
  • Mises à jour en un clic pour garder votre instance à jour facilement.
  • Noms de domaine personnalisés avec HTTPS automatique : par exemple, https://node-red.votre-entreprise.com.
  • Performance élevée et sécurité renforcée grâce à une infrastructure privée et dédiée.

Vous pouvez avoir une instance Node-RED cloud hosting sécurisée et prête pour la production en environ 5 minutes. Stackhero prend en charge l'installation, les mises à jour et l'infrastructure, afin que vous puissiez vous concentrer sur la création de vos automatisations.

Le service Node-RED de Stackhero inclut un serveur MQTT intégré, ce qui simplifie l'intégration de vos appareils IoT via des canaux de communication sécurisés et fiables.

Pour commencer, rendez-vous simplement sur le tableau de bord Stackhero, trouvez votre service Node-RED et activez l'option « MQTT Server » dans les paramètres de configuration du service.

Une fois le serveur activé, vous pouvez vous y connecter en utilisant le port 8883. Toutes les connexions sont sécurisées par un chiffrement TLS, assurant ainsi la protection de vos données.

Si vous débutez avec MQTT sur Node-RED, voici un exemple simple pour vous aider à démarrer. Cet exemple montre comment envoyer un message à un topic et recevoir des messages de ce topic. Vous pouvez télécharger l'exemple de flow et l'importer dans votre instance Node-RED via le menu « Import ».

Exemple simple de connexion MQTT à Node-REDExemple simple de connexion MQTT à Node-RED

Si vos nœuds MQTT restent bloqués sur le statut « connecting », il est recommandé de vérifier si le flow MQTT authentication est toujours présent. S'il manque, vous pouvez le télécharger ici : mqttAuthenticationFlow.json. Importez ce flow dans votre instance Node-RED, mettez à jour le nœud Users avec les mots de passe de votre choix, puis retirez les commentaires inutiles si nécessaire.

La gestion de l'authentification des utilisateurs MQTT est simple grâce à un flow dédié dans Node-RED. Vous trouverez le flow « MQTT Authentication » directement dans le panneau d'administration Node-RED.

Flow d'authentification MQTTFlow d'authentification MQTT

Dans ce flow d'authentification, repérez le nœud template Users. Ce nœud contient un tableau où vous pouvez définir les identifiants de chaque utilisateur. Vous pouvez ajouter autant d'utilisateurs que nécessaire pour votre projet.

Note : L'utilisateur node-red est essentiel pour la connexion de Node-RED au serveur MQTT. Assurez-vous de ne pas supprimer cet utilisateur de votre configuration.

Nœud utilisateurs MQTTNœud utilisateurs MQTT

Vous avez la possibilité de vous connecter au serveur Mosquitto MQTT soit via le protocole MQTT, soit via WebSockets.

Bien que le protocole MQTT soit léger et donc idéal pour les appareils IoT, il n'est pas pris en charge nativement par les navigateurs web. Si vous souhaitez interagir avec votre serveur MQTT depuis un navigateur, il est préférable d'utiliser WebSockets. Cette méthode permet d'encapsuler le trafic MQTT dans le protocole WebSocket et fonctionne parfaitement avec les services Stackhero.

Pour activer la connectivité WebSocket, activez simplement l'option « WebSocket Support » dans votre tableau de bord Stackhero. Une fois activée, configurez votre client pour utiliser l'URL WebSocket : wss://<XXXXXX>.stackhero-network.com:443/mqtt. Assurez-vous de remplacer l'URL par défaut mqtts://<XXXXXX>.stackhero-network.com par cette URL WebSocket pour les connexions depuis un navigateur.

Pour le développement, la bibliothèque « MQTT.js » est particulièrement recommandée. Il s'agit d'une bibliothèque JavaScript robuste, compatible avec Node.js et les environnements navigateurs. Vous pouvez en apprendre davantage sur son dépôt officiel.

Si vous cherchez un exemple concret de connexion depuis un navigateur au serveur MQTT via WebSockets, vous pouvez consulter ce dépôt : https://github.com/stackhero-io/mqttWebSocketGettingStarted. N'hésitez pas à modifier le fichier src/index.html avec l'url, le username et le password de votre serveur pour l'adapter à votre configuration.

Exemple MQTT WebSocketExemple MQTT WebSocket

Avant de tester cette configuration, assurez-vous que le support WebSocket est bien activé dans votre tableau de bord Stackhero. Cela garantit le bon fonctionnement des connexions depuis un navigateur.