Home Assistant e' potente ma le automazioni via YAML/UI spaventano molti. Node-RED offre un editor visuale a "nodi" collegati con fili: comprensibile a colpo d'occhio, potente quanto codice.
1. Installazione (metodo 1: dentro Home Assistant)
Se hai gia' HA, aggiungi l'add-on Node-RED dallo store add-on. 30 secondi, autoconfigurato.
2. Installazione (metodo 2: standalone via Docker)
docker run -d --name nodered
-p 1880:1880
-v ~/node-red-data:/data
--restart unless-stopped
nodered/node-red
Apri http://IP:1880. Interfaccia con palette a sinistra (nodi) e workspace centrale (drag-drop).
3. Concetti chiave (5 minuti)
- Nodo: un box che fa una cosa (leggere MQTT, chiamare API, HTTP request, if-else, ecc.)
- Filo: collega output di un nodo all'input del prossimo
- Messaggio: oggetto JS che scorre tra i nodi. Ha almeno
msg.payload - Flow: un insieme di nodi collegati, come una funzione
- Deploy: bottone in alto a destra, attiva le modifiche
4. Primo flow: notifica quando temperatura > soglia
Trascina 4 nodi:
- mqtt in: topic
casa/salotto/temp - function:
if (parseFloat(msg.payload) > 25) return msg; return null; - change: imposta
msg.payload = "Salotto: " + msg.payload + "°C" - telegram sender: chatId destinatario
Collegali con fili, Deploy. Ogni volta che la temp supera 25° ricevi Telegram. Fatto.
5. Palette utili da installare
Menu > Manage palette > Install:
- node-red-contrib-home-assistant-websocket (nodi per HA)
- node-red-contrib-telegrambot
- node-red-node-email
- node-red-contrib-cron-plus (schedulazione avanzata)
- node-red-dashboard (dashboard web autonoma)
- node-red-contrib-influxdb
- node-red-contrib-google-smarthome (se vuoi controllare da Google Home)
6. Dashboard integrata
Con node-red-dashboard puoi disegnare pannelli con grafici, slider, gauge, chart senza codice HTML. Trascini un nodo gauge, imposti range, colleghi al valore, ed e' online su http://IP:1880/ui.
7. Esempi di flow tipici
- Presence detection: se nessuno in casa da 30 minuti (WiFi ping) > abbassa termostato
- Meteo > irrigazione: se pioggia prevista domani, salta ciclo irrigazione oggi
- Bollette: leggi contatore Shelly, calcola consumo mensile, invia mail il 1° del mese
- Sveglia adattiva: 15 min prima dell'alba d'inverno, alba di primavera, alza tapparelle gradualmente
- Sicurezza: se movimento rilevato in giardino di notte + tutti in casa > accende luce esterna + Telegram
8. Funzioni JavaScript custom
Il nodo function accetta codice JS. Esempio: calcola punto di rugiada da temp+umidita':
const T = msg.temp;
const RH = msg.humidity;
const b = 17.625;
const c = 243.04;
const alpha = Math.log(RH/100) + (b*T)/(c+T);
const dew = (c * alpha) / (b - alpha);
msg.payload = Math.round(dew*10)/10;
return msg;
9. Debug: capire cosa scorre nei fili
Trascina un nodo debug in mezzo al flow, collega output di un nodo al debug. Nel pannello destro (icona insetto) vedi ogni messaggio che passa, in JSON completo. Fondamentale per capire "cosa arriva".
10. Backup delle configurazioni
# La cartella /data (nel container Docker) contiene TUTTO
tar -czf nodered-backup-$(date +%F).tgz ~/node-red-data/
Puoi anche esportare singoli flow: Menu > Export > Selected nodes/Current flow e ottieni un JSON copiabile su un altro Node-RED.