Scopi della guida
Concetti affrontati:
|
Componenti software utilizzate:
Prerequisiti
Dispositivi fisici utilizzati: |
GUIDA MAGGIORMENTE INDICATA PER: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 1.2 |
Abstract
Node-RED è un fantastico ambiente operativo tramite il quale definire dei veri e propri “flussi” di processo per la manipolazione dei dati, interfacciamento e la gestione. La sua estrema semplicità, potenza ed espandibilità ne fanno uno strumento insostituibile in molti campi di applicazioni, tra i quali la domotica e più genericamente l’IoT.
In questa guida vedremo come installarlo su Raspberry Pi dotato di sistema operativo Raspbian tramite Docker.
Articoli che trattano Node:-RED su inDomus:
- Domotizzare con semplicità l’irrigazione di piante e giardini con Apple HomeKit via Homebridge (parte 2)
- Domotizzare con semplicità l’irrigazione di piante e giardini con Home Assistant (parte 2)
- Domotizzare un sistema d’allarme tradizionale via telecomando e contatto pulito (con MQTT e Node-RED)
- Integrare un robot aspirapolvere tramite infrarossi via Broadlink e Home Assistant
- Node-RED
- Node-RED: come installarlo e configurarlo su Linux Debian con Docker
- Node-RED: come installarlo e configurarlo su Raspberry Pi
- Node-RED: come installarlo e configurarlo su Raspberry Pi con Docker
- Podcast, episodio pilota: la domotica personale
- Trasformare più elementi MQTT in un unico dispositivo virtuale tramite Node-RED
Si parte
- Assunti
- Prima configurazione
- Installare Docker
- Istanziare Node-RED su Docker
- Accedere a Node-RED
- Usi
- Installazione nodi aggiuntivi
Assunti
Per la realizzazione della presente guida si assume che:
- Raspberry Pi sia dotato di sistema operativo Raspberry Pi OS (vedi guida);
- Sul sistema operativo Raspberry Pi OS sia stato precedentemente installato Docker (vedi guida).
Prima configurazione
Come prima cosa creeremo, sul file system del sistema operativo di Raspberry Pi, un percorso nel quale salvare la configurazione del server Node-RED.
Colleghiamoci via SSH a Raspberry Pi utilizzando l’utenza “pi” e creiamo tale percorso:
sudo mkdir ~/nodered
Dopodiché usciamo salvando (CTRL+X, y, invio).
Installare Docker
Installare Docker su Raspberry Pi dotato di sistema operativo Raspberry Pi OS è piuttosto semplice, esiste una procedura completamente automatica e una manuale. Entrambe le procedure sono illustrate in dettaglio in questa breve guida.
Se si ha già provveduto all’installazione di Docker, va da sé che questo passaggio possa essere saltato.
Istanziare Node-RED su Docker
Una volta installato Docker è dunque il momento di installare (o meglio, “istanziarvi sopra”) Node-RED.
In ambito Docker, l’istanziamento dell’applicazione può essere effettuato tramite esecuzione di un comando manuale (più immediato) oppure tramite una configurazione del tool di gestione Docker Compose, approccio inizialmente più ostico ma che consigliamo per tutta una serie di motivi. Entrambe le scelte sono valide, ma in prospettiva (specie in ottica di aggiornamento) imparare ad usare Docker Compose è altamente consigliato.
ATTENZIONE: affinché i comandi a seguire funzionino, è necessario aver aggiunto Docker al gruppo sudoers, come spiegato in guida d’installazione Docker. |
Tramite comando “docker run”
Istanziamo dunque Node-RED su Docker tramite il comando:
docker run --init -d -it -p 1880:1880 --name nodered --restart always -e TZ=Europe/Rome -v ~/nodered:/data nodered/node-red
Al termine dell’esecuzione, Node-RED sarà in esecuzione come container Docker.
Tramite Docker Compose
Se astutamente si sceglie di utilizzare Docker Compose, allora è semplicemente necessario aggiungere al proprio file docker-compose.yaml la seguente configurazione (sotto il bocco services):
nodered:
container_name: nodered
image: nodered/node-red
volumes:
- "~/nodered:/data"
ports:
- "1880:1880"
environment:
- "TZ=Europe/Rome"
restart: always
Una volta salvato il file docker-compose.yaml, eseguire il comando:
docker compose up -d nodered
il quale provvederà a istanziare il container.
N.b. In caso il comando “docker compose” dovesse dare errore, verificare di non aver installata la versione applicativa di Docker Compose anzichè la versione plug-in alla quale il comando sopra fa riferimento. In tal caso, adeguare il comando da “docker compose” a “docker-compose” (col trattino in mezzo). |
Lanciato il comando, attendere il completamente del primo avvio. Per leggere eventualmente in tempo reale i log e verificare quindi cosa stia succedendo all’interno del container, eseguire il comando:
docker container logs nodered -f
Al termine dell’esecuzione, Node-RED sarà in esecuzione come container Docker.
Accedere a Node-RED
Ora che Node-RED è correttamente installato e in esecuzione, collegarsi tramite browser all’indirizzo:
http://ip_del_raspberry:1880
dove ovviamente “ip_del_raspberry” sarà l’indirizzo IP del proprio Raspberry.
Apparirà un’interfaccia similare a questa:
Complimenti! Ora Node-RED è pronto ad essere utilizzato.
Usi
Gli usi possibili di Node-RED – specialmente in domotica – sono i più disparati. Il limite è davvero la fantasia unita a necessità specifiche.
Uno dei progetti più belli che abbiamo dedicato a Node-RED è quello che illustra come creare un vero e proprio dispositivo virtuale MQTT a partire da più elementi MQTT presenti nel proprio ambiente.
Installazione nodi aggiuntivi
Immaginiamo di voler installare un nuovo set di “nodi” su Node-RED tra i tantissimi disponibili, per esempio l’arcinoto set node-red-contrib-home-assistant-websocket, utile a gestire esternamente il noto HUB per domotica personale Home Assistant.
Per farlo, innanzitutto entrare dentro la shell del container tramite:
docker exec -it nodered sh
poi, accedere alla cartella che contiene i nodi:
cd node_modules/
infine, eseguire il comando di installazione del set di nodi:
npm install NOME_SET
per esempio, nel caso del sopracitato node-red-contrib-home-assistant-websocket:
npm install node-red-contrib-home-assistant-websocket
Uscire poi dal container ed effettuare il restart dello stesso.
exit
docker restart nodered
Collegandosi nuovamente all’interfaccia di Node-RED, i nuovi nodi risulteranno presenti nella colonna di destra.
Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |