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 intègre un serveur MQTT, ce qui facilite l'intégration de vos objets connectés via des canaux de communication sécurisés et fiables.

Pour commencer, il suffit de vous rendre sur le tableau de bord Stackhero, de sélectionner votre service Node-RED, puis d'activer l'option "MQTT Server" dans les paramètres de configuration du service.

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

Si vous débutez avec MQTT sur Node-RED, voici un exemple simple pour vous aider à démarrer rapidement. Cet exemple montre comment envoyer un message à un topic et recevoir les messages associés. 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 conseillé 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 supprimez les commentaires inutiles si besoin.

La gestion de l'authentification des utilisateurs MQTT se fait simplement grâce à un flow dédié dans Node-RED. Vous trouverez le flow "MQTT Authentication" directement depuis le panneau d'administration Node-RED.

Flow d'authentification MQTTFlow d'authentification MQTT

Dans ce flow d'authentification, recherchez le nœud template Users. Ce nœud contient un tableau dans lequel 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 indispensable pour la connexion de Node-RED au serveur MQTT. Veillez à 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.

Le protocole MQTT est léger et particulièrement adapté aux objets connectés, mais 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 recommandé 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, il suffit d'activer 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. Pensez à 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 trouverez plus d'informations sur son dépôt officiel.

Pour 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.