NodeRed in Home Assistant
Bene amici di HassioHelp, il nostro utente Giovanni C molto spiccato per la sua disponibilità nel nostro gruppo Telegram, ci presenta il suo primo articolo con un tema molto interessante. Vediamo di cosa si tratta.
Questo primo articolo ha lo scopo di introdurvi a NodeRed con lo specifico intento di utilizzarlo per creare automazioni e flussi al servizio di Hassio. Tutto quello che vedrete in seguito potrà esser valido anche su Home Assistant ma l’installazione e configurazione saranno ovviamente diversi.
INTRODUZIONE:
Cominciamo a capire cos’è NodeRed: in poche parole è un tool di programmazione che permette di “collegare” tra di loro diverse entità siano esse hardware o software, servizi online tramite le loro API e complementare il tutto programmando le funzioni più avanzate in JavaScript. Per fare tutto ciò si usa un editor grafico che anche se ad un primo approccio potrebbe sembrare complesso in pratica è molto intuitivo in quanto basta disegnare il flusso dell’automazione che vogliamo creare sia essa semplice e lineare oppure complessa con diramazioni multiple e funzioni particolari; ha il grosso vantaggio di non richiedere il riavvio di Hassio per verificare ogni modifica o nuova funzione in quanto basta fare un click sul tasto Deploy per avere tutto già disponibile.
L’elemento principale di NodeRed è il “NODO”; ce ne sono tantissimi già preinstallati ma tanti altri (letteralmente migliaia!) che possono essere aggiunti per espandere il sistema inglobando nuove funzioni o integrando un nuovo hardware; infine più avanti copriremo anche la “NodeRed Dashboard”, uno dei set di nodi più utili che permette di creare vere e proprie interfacce Web customizzate ed accessibili tramite browser.
INSTALLAZIONE DELL’ADDON:
L’installazione di questo addon è piuttosto standard e simile a quella di tanti altri addon; è sufficiente seguire questi step:
⦁ Esser sicuri di avere questa repository aggiunta ad Hassio https://github.com/hassio-addons/repository
⦁ Installare l’addon “Node-RED”
- ⦁ Configurare l’addon come segue:
⦁ “credential_secret” è la password che NodeRed utilizza per crittografare i vs. dati utente, è importante notare che se la cambierete in seguito quello che avete già creato in NodeRed potrebbe non più funzionare quindi sceglietela adesso e non cambiatela più; mi raccomando non utilizzate la vostra password standard
⦁ Username/password sono le credenziali per accedere NodeRed, è caldamente consigliato settarle, possibilmente diverse da quelle che usate ad accedere ad hassio (non obbligatorio); potete usare le stesse credenziali sia per “http_node” che “http_static”
⦁ “ssl” e “require_ssl” vanno messi a TRUE se utilizzare duckdns per accedere ad hassio
- ⦁ “dark_mode” vi permette di definire il tema dell’editor di NodeRed; di default questo parametro è FALSE quindi verrà utilizzato l’editor con sfondo bianco, se preferite come me lo sfondo scuro basta settarlo a TRUE
⦁ Questo addon è compatibile con il sistema di accesso “Ingress” quindi se volete accede a NodeRed dalla barra laterale a sinistra ricordatevi di attivare il flag “Show in Sidebar”
⦁ Consiglio di disattivare gli aggiornamenti automatici in quanto se c’è una breaking change in NodeRed potreste ritrovarvi con i flow e quindi le automazioni non funzionanti senza controllo
⦁ Quindi fare click su “START”
⦁ Controllare il log per verificare che non ci siano errori e che tutto funzioni
⦁ Infine fare click su “OPEN WEB UI” e vi dovreste ritrovare con l’editor aperto e funzionante:
NOTA: l’addon che viene installato nella corrente versione di hassio è già preconfigurato rispetto ad una installazione base ed include già diversi pacchetti di nodi compreso sia quelli per interfacciarsi ad hassio ed il link al suo server che quelli per la creazione della NodeRed dashboard.
CONCETTI BASE:
Come già detto l’elemento fondamentale per iniziare a programmare in NodeRed è il nodo; esistono 3 tipologie di nodi:
1-
Questo è un esempio di nodo con solo Output (il quadratino grigio alla destra del nodo) che può essere usato solamente per attivare un flow/azione basato su un determinato evento (vedremo in seguito come)
2-
Questo è invece un nodo con solo input (sempre il quadratino a sinistra questa volta del nodo) ed è sempre un’azione che chiude un flusso in quanto non può esser collegato a niente altro.
3-
Infine questo è il nodo più comune, contiene sia input che output, e normalmente ha uno specifico compito da eseguire (processare un messaggio, decidere la prossima azione, terminare un flow, etc. etc)…………..
È bene notare fin da subito che mentre un nodo può avere un solo input, lo stesso può avere uno o più output, questo concetto è importante da comprendere perché è alla base del funzionamento di NodeRed; ci sono ovviamente modi per fornire ad un nodo più di un input ma li vedremo in uno dei prossimi articoli dedicato alla programmazione avanzata.
L’altro elemento necessario alla programmazione sono i collegamenti (link); praticamente potete collegare l’output di un nodo all’input di un altro, senza alcun limite (ogni box di input e output può esser collegato un infinito numero di volte).
Un insieme di nodi collegati fra di loro viene definito sequenza; qui in basso un esempio:
Infine un insieme di sequenze di nodi si chiama FLOW; i flow sono separati nell’editor ognuno nella propria pagina / “tab” e sono accessibili dalla barra in alto e potete crearne quanti ne volete:
- PRIMA SEQUENZA:
Per concludere questo articolo di introduzione, creiamo una prima sequenza per testare che tutto quanto funzioni correttamente.
⦁ Inserite un nodo di INPUT del tipo INJECT
⦁ Inserite un nodo di OUTPUT del tipo DEBUG
⦁ Collegate l’output del primo nodo con l’input del secondo
A questo punto è bene notare che i nodi hanno un piccolo pallino blu, questo indica che il nodo non ha errori ma che le modifiche non sono ancora attive nel server di NodeRed. Per rendere questo flusso attivo in NodeRed dovete fare click sul tasto DEPLOY in alto a destra
dell’area di lavoro formation, questo farà sì che tutte le modifiche che avrete fatto sinora vengano rese attive nel server di NodeRed, inoltre prima verrà fatto un check e se ci sono eventuali errori questi verranno evidenziati e non si potrà procedere finché non verranno risolti.
Se tutto è andato bene i pallini blu dovranno sparire ed il tasto “DEPLOY” diventare grigio (esso diventa ROSSO solo nel caso ci siano delle modifiche fatte e non confermate).
A questo punto sembra non succedere nulla; selezioniamo in alto a destra l’icona di Debug, in modo da poter visualizzare i relativi messaggi dei nodi di debug e facciamo click sul quadrato alla sinistra del nodo Inject (che per default è impostato in attivazione manuale), se tutto funziona vedremo nell’output un numero che non è altro che data/ora corrente in formato epoch/linux in quanto il nodo inject è di default settato per fornire in output in “timestamp” ogni volta che viene attivato.
Congratulazioni! A questo punto avete installato e configurato NodeRed, fatto un test di base e verificato che tutto funzioni. Vi rimando quindi alla prossima lezione dove cominceremo ad esplorare i nodi più comuni, costruire dei flow più utili di quello di test appena creato ed analizzeremo come far interagire NodeRed con il nostro caro hassio!
Per qualsiasi chiarimento o dubbio, non esitate a scrivere sul Forum HassioHelp
4 risposte
Cosa fare se dopo il primo avvio appare l’errore “502: Bad Gateway”?
Controlla il log, qualche problema di password o altro
Cmq se anche è tutto a posto tieni presente che ci mette un po’ ad avviarsi….
E’ possibile chiamare node-red integrato in HA da un servizio internet ?
Non è chiara la domanda , forse dovresti spiegare meglio quello che avresti in mente di voler fare