Node-RED: Server MQTT

Come collegare Node-RED al server Mosquitto MQTT

Benvenuti nella documentazione di Stackhero

Stackhero offre un ambiente Node-RED cloud completamente gestito, progettato per permettervi di creare workflow in modo rapido:

  • Server MQTT integrato (Mosquitto) per un'integrazione IoT senza interruzioni.
  • Accesso completo all'interfaccia di amministrazione Node-RED per la gestione dei flow e delle impostazioni.
  • Node-RED Dashboard incluso per la visualizzazione in tempo reale.
  • Server email SMTP dedicato incluso, senza limiti di invio.
  • Aggiornamenti con un clic per mantenere sempre aggiornata la vostra istanza.
  • Nomi di dominio personalizzati con HTTPS automatico: ad esempio, https://node-red.your-company.com.
  • Elevata performance e massima sicurezza grazie a un'infrastruttura privata e dedicata.

Potete avere una istanza Node-RED cloud hosting sicura e pronta per la produzione in circa 5 minuti. Stackhero si occupa di installazione, aggiornamenti e infrastruttura, così potete concentrarvi sulla creazione delle vostre automazioni.

Il servizio Node-RED di Stackhero include un server MQTT integrato, che facilita l'integrazione dei dispositivi IoT tramite canali di comunicazione sicuri e affidabili.

Per iniziare, acceda semplicemente alla dashboard di Stackhero, individui il suo servizio Node-RED e abiliti l'opzione "MQTT Server" nelle impostazioni di configurazione del servizio.

Una volta abilitato il server, può collegarsi utilizzando la porta 8883. Tutte le connessioni sono protette tramite crittografia TLS, garantendo la sicurezza dei suoi dati.

Se è alle prime armi con MQTT su Node-RED, ecco un esempio semplice per aiutarla a iniziare rapidamente. Questo esempio mostra come inviare un messaggio a un topic e ricevere i messaggi da esso. Può scaricare l'esempio di flow e importarlo nella sua istanza Node-RED tramite il menu "Import".

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

Se i suoi nodi MQTT rimangono bloccati nello stato "connecting", è consigliabile verificare che il flow MQTT authentication sia ancora presente. Se manca, può scaricarlo qui: mqttAuthenticationFlow.json. Importi questo flow nella sua istanza Node-RED, aggiorni il nodo Users con le password desiderate e rimuova eventuali commenti non necessari secondo le sue esigenze.

La gestione dell'autenticazione degli utenti MQTT è semplice grazie a un flow dedicato in Node-RED. Può trovare il flow "MQTT Authentication" direttamente dal pannello di amministrazione di Node-RED.

Flow di autenticazione MQTTFlow di autenticazione MQTT

All'interno di questo flow di autenticazione, cerchi il nodo template Users. Questo nodo contiene un array in cui può definire le credenziali per ciascun utente. Ha la flessibilità di aggiungere tutti gli utenti necessari per il suo progetto.

Nota: L'utente node-red è essenziale per la connessione di Node-RED al server MQTT. Si assicuri di non rimuovere questo utente dalla configurazione.

Nodo utenti MQTTNodo utenti MQTT

Ha la possibilità di collegarsi al server Mosquitto MQTT sia tramite il protocollo MQTT sia tramite WebSocket.

Sebbene il protocollo MQTT sia leggero e quindi ideale per i dispositivi IoT, non è supportato nativamente dai browser web. Se desidera interagire con il server MQTT da un browser, dovrà utilizzare i WebSocket. Questo approccio consente di incapsulare il traffico MQTT all'interno del protocollo WebSocket e funziona perfettamente con i servizi Stackhero.

Per abilitare la connettività WebSocket, attivi semplicemente l'opzione "WebSocket Support" nella dashboard di Stackhero. Una volta abilitata, può configurare il suo client per utilizzare l'URL WebSocket: wss://<XXXXXX>.stackhero-network.com:443/mqtt. Si assicuri di sostituire il valore predefinito mqtts://<XXXXXX>.stackhero-network.com con questo URL WebSocket per le connessioni da browser.

Per lo sviluppo, la libreria "MQTT.js" può risultare particolarmente utile. Si tratta di una libreria JavaScript robusta, compatibile sia con Node.js che con gli ambienti browser. Può trovare maggiori informazioni consultando il suo repository ufficiale.

Se desidera un esempio pratico di come collegarsi dal browser al server MQTT tramite WebSocket, può fare riferimento a questo repository: https://github.com/stackhero-io/mqttWebSocketGettingStarted. Può modificare liberamente il file src/index.html inserendo l'url, lo username e la password del suo server per adattarlo alla sua configurazione.

Esempio MQTT WebSocketEsempio MQTT WebSocket

Prima di provare questa configurazione, si assicuri che il supporto WebSocket sia abilitato nella dashboard di Stackhero. Questo garantisce il corretto funzionamento delle connessioni da browser.