Node-RED: Server MQTT

Come connettere Node-RED al server Mosquitto MQTT

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre una soluzione Node-RED cloud pronta all'uso che fornisce numerosi vantaggi, tra cui:

  • Server MQTT incluso (Mosquitto).
  • Accesso completo all'interfaccia admin di Node-RED.
  • Dashboard di Node-RED inclusa.
  • Server email SMTP illimitato e dedicato incluso.
  • Aggiornamenti senza sforzo con un solo clic.
  • Nome di dominio personalizzabile sicuro con HTTPS (ad esempio, https://node-red.tua-azienda.com).
  • Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.

Risparmia tempo e semplifica la tua vita: bastano 5 minuti per provare la soluzione Node-RED cloud hosting di Stackhero!

Il servizio Node-RED di Stackhero include un server MQTT integrato, progettato per supportare un'integrazione senza soluzione di continuità con i dispositivi IoT attraverso canali di comunicazione sicuri e affidabili.

Per abilitare il server MQTT, accedere al dashboard di Stackhero, individuare il proprio servizio Node-RED e attivare l'opzione "MQTT Server" nelle impostazioni di configurazione del servizio.

Una volta attivato, le connessioni al server MQTT possono essere stabilite utilizzando la porta 8883, con la crittografia TLS che garantisce comunicazioni sicure.

Per aiutarvi a iniziare, considerate il seguente esempio che dimostra come connettere Node-RED al server MQTT. Questo esempio prevede l'invio di un messaggio a un topic e la ricezione di messaggi da esso. Potete scaricare l'esempio di flusso e importarlo nella vostra istanza Node-RED tramite il menu "Import".

Esempio semplice di connessione MQTT a Node-REDEsempio semplice di connessione MQTT a Node-RED

avviso Se i nodi MQTT mostrano uno stato "connecting" indefinitamente, confermate che il flusso MQTT authentication non sia stato rimosso. Se necessario, scaricatelo qui: mqttAuthenticationFlow.json. Importatelo nella vostra istanza Node-RED, configurate il nodo Users modificando le password e rimuovete i commenti se necessario.

L'autenticazione degli utenti è gestita tramite un flusso dedicato in Node-RED. Potete accedere al flusso "MQTT Authentication" direttamente dal pannello di amministrazione di Node-RED.

Flusso di autenticazione MQTTFlusso di autenticazione MQTT

All'interno del flusso di autenticazione, individuate il nodo modello Users. Questo nodo contiene un array per definire le credenziali degli utenti. Potete aggiungere quanti utenti necessari per la vostra configurazione.

Nota: L'utente node-red è cruciale per la connessione di Node-RED al server MQTT. Assicuratevi che questo utente rimanga nella configurazione.

Nodo degli utenti MQTTNodo degli utenti MQTT

Potete connettervi al server Mosquitto MQTT utilizzando sia il protocollo MQTT che i WebSockets.

Sebbene il protocollo MQTT sia leggero e ideale per i dispositivi IoT, non è supportato direttamente nei browser web. Per colmare questo divario, incapsulate il traffico MQTT nel protocollo WebSocket, che funziona perfettamente con i servizi di Stackhero.

Per abilitare la connettività WebSocket, attivate l'opzione "WebSocket Support" nel dashboard di Stackhero. Quindi, configurate il vostro client con l'URL del server wss://XXXXX.stackhero-network.com:443/mqtt, sostituendo mqtts://XXXXX.stackhero-network.com con l'URL WebSocket corretto.

Per scopi di sviluppo, raccomandiamo la libreria "MQTT.js". Questa robusta libreria JavaScript è compatibile con gli ambienti Node.js e browser. Potete esplorarla ulteriormente sul suo repository ufficiale.

Per una guida su come stabilire una connessione basata su browser al server MQTT utilizzando i WebSockets, fate riferimento a questo repository: https://github.com/stackhero-io/mqttWebSocketGettingStarted. Potete modificare il file src/index.html per inserire l'url, il username e la password del vostro server per la vostra configurazione specifica.

Esempio di WebSocket MQTTEsempio di WebSocket MQTT

Assicuratevi che il supporto WebSocket sia abilitato nel dashboard di Stackhero per consentire a questa configurazione di funzionare come previsto.