Node-RED: Serveur MQTT

Comment connecter Node-RED au serveur Mosquitto MQTT

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Node-RED cloud prête à l'emploi offrant de nombreux avantages, notamment :

  • Serveur MQTT inclus (Mosquitto).
  • Accès complet à l'interface admin de Node-RED.
  • Dashboard Node-RED inclus.
  • Serveur SMTP d'e-mails illimité et dédié inclus.
  • Mises à jour sans effort en un clic.
  • Nom de domaine personnalisable sécurisé avec HTTPS (par exemple, https://node-red.votre-entreprise.com).
  • Performance optimale et sécurité robuste grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Node-RED cloud hosting de Stackhero !

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.