Home - BitMakerMan/Share_NodeRed_Flow GitHub Wiki

📘 Guida Completa a Node-RED

⚠️ Node-RED è uno strumento open source basato su Node.js per creare flussi logici tra dispositivi, API e servizi. È ampiamente utilizzato nell’ambito dell’IoT (Internet of Things), automazione domestica, integrazione di sistemi e prototipazione rapida.


Indice

  1. Cos’è Node-RED?
  2. Caratteristiche principali
  3. Installazione
  4. Interfaccia utente
  5. I nodi
  6. Creare un primo flusso
  7. Importare/Esportare flussi
  8. Configurazione avanzata
  9. Dashboard UI
  10. Esempi pratici
  11. Estendere Node-RED con NPM
  12. Problemi comuni e soluzioni
  13. Risorse utili

Cos’è Node-RED?

Node-RED è un ambiente di programmazione visuale che permette di collegare dispositivi, API e servizi usando un sistema di "flussi" composti da blocchi logici chiamati nodi.

Vantaggi:

  • Non richiede una conoscenza approfondita di programmazione
  • Molto flessibile grazie ai pacchetti aggiuntivi
  • Ideale per il mondo IoT e automazione
  • Funziona ovunque giri Node.js

Caratteristiche principali

Caratteristica Descrizione
Ambiente Web Accessibile tramite browser
Programmazione visuale Usa un editor drag-and-drop
Estensibile Supporta migliaia di nodi aggiuntivi via NPM
Multi-piattaforma Funziona su Windows, Linux, macOS, Raspberry Pi
MQTT integrato Per comunicazioni IoT leggere e veloci
Dashboard UI Per creare interfacce grafiche personalizzate

Installazione

Windows

Installa Node.js:

Verifica l'installazione:

node -v
npm -v

Installa Node-RED globalmente:

npm install -g --production node-red

Avvia Node-RED:

node-red

Accesso all’interfaccia web:
👉 http://localhost:1880


Linux (Ubuntu/Debian)

Aggiorna i pacchetti:

sudo apt update

Installa Node.js e npm:

sudo apt install nodejs npm

Installa Node-RED:

sudo npm install -g --unsafe-perm node-red

Avvia Node-RED:

node-red

macOS

Installa Node.js con Homebrew:

brew install node

Installa Node-RED:

npm install -g --production node-red

Avvia Node-RED:

node-red

Accesso:
👉 http://localhost:1880


Interfaccia utente

L’interfaccia si compone di 4 aree principali:

  1. Barra laterale sinistra: gestisce nodi, flussi, debug, ecc.
  2. Area dei nodi: elenco dei nodi disponibili
  3. Area di lavoro (canvas): dove costruisci i tuoi flussi
  4. Barra superiore: pulsanti per deploy, import/export, ecc.

I nodi

I nodi sono i "blocchi" base di ogni flusso. Ogni nodo ha una funzione specifica.

Tipi principali:

  • Input/output (HTTP, MQTT, Serial, ecc.)
  • Logica condizionale (switch, function)
  • Manipolazione dati (JSON, CSV, ecc.)
  • Database (MongoDB, MySQL, ecc.)
  • Dashboard UI (grafici, bottoni, slider)

Puoi cercare i nodi nel pannello sinistro oppure installarli da NPM.


Creare un primo flusso

Obiettivo: Stampare un messaggio dopo 5 secondi

Passaggi:

  1. Trascina un nodo inject sull’area di lavoro
  2. Impostalo su "timestamp" e intervallo di 5 sec
  3. Trascina un nodo debug
  4. Collega i due nodi
  5. Clicca su Deploy
  6. Apri la scheda Debug per vedere il risultato

Importare/Esportare flussi

Esportare

  1. Seleziona i nodi che vuoi esportare
  2. Clicca con il tasto destro → "Copy"
  3. Incolla il codice JSON in un file .json

Importare

  1. Clicca sull’area di lavoro → tasto destro → "Import"
  2. Inserisci il codice JSON → clicca "Import"

Configurazione avanzata

La configurazione principale si trova in:

~/.node-red/settings.js

In questo file puoi modificare:

  • Porta di accesso
  • Sicurezza (username/password)
  • Cartella dei flussi
  • Log
  • Abilitare HTTPS

Dashboard UI

Node-RED include un modulo chiamato Dashboard UI per creare interfacce grafiche facilmente.

Installazione:

npm install node-red-dashboard

Dopo riavvio, troverai nuovi nodi nella categoria Dashboard per creare:

  • Grafici
  • Bottoni
  • Slider
  • Tabelle
  • Schede

Esempi pratici

Esempio 1: Invio notifica Telegram quando arriva un dato

[
    {
        "id": "telegram-in",
        "type": "telegram receive",
        "name": "Telegram In",
        "botid": "my-bot",
        "x": 100,
        "y": 100,
        "wires": ["process-msg"](/BitMakerMan/Share_NodeRed_Flow/wiki/"process-msg")
    },
    {
        "id": "process-msg",
        "type": "function",
        "name": "Process Message",
        "func": "msg.payload = 'Hai detto: ' + msg.payload; return msg;",
        "x": 250,
        "y": 100,
        "wires": ["telegram-out"](/BitMakerMan/Share_NodeRed_Flow/wiki/"telegram-out")
    },
    {
        "id": "telegram-out",
        "type": "telegram send",
        "name": "Telegram Out",
        "botid": "my-bot",
        "x": 400,
        "y": 100,
        "wires": []
    }
]

Estendere Node-RED con NPM

Node-RED supporta l’installazione di nuovi nodi tramite NPM.

Comando:

cd ~/.node-red
npm install nome-del-nodo

Esempio:

npm install node-red-contrib-mqtt-broker

Poi riavvia Node-RED:

node-red

Problemi comuni e soluzioni

Problema Soluzione
Porta 1880 occupata Modifica la porta in settings.js
Nodo non compare Riavvia Node-RED o controlla i log
Errore durante l’installazione Usa --unsafe-perm per installazioni globali
Flusso non funziona Controlla i collegamenti e prova con il Debug
Mancanza di permessi Esegui con sudo o come admin

Risorse utili