RPi-NodeRed
NodeRed est un produit fabuleux. Installons le sur un Raspbery PI. Ici un Raspberry PI 4 de base (4Go)
Installation
On commence par un simple:
sudo apt update
sudo apt install nodejs
Tout se passe bien. Mais ensuite on installe le gestionnaire de packages npm. Ca semple une formalité mais....
sudo apt install npm
à chez moi pris une éternité et installé une centaine de dépendances. Mais ça a terminé et j'ai pu terminé par :
sudo npm install -g --unsafe-perm node-red
added 312 packages in 47s
63 packages are looking for funding
run `npm fund` for details
Bon, il suffit alors de lancer nodered.
node-red
11 Feb 22:38:13 - [info]
Welcome to Node-RED
===================
11 Feb 22:38:13 - [info] Node-RED version: v4.0.8
11 Feb 22:38:13 - [info] Node.js version: v18.19.0
11 Feb 22:38:13 - [info] Linux 6.6.51+rpt-rpi-v8 arm64 LE
On peut ouvrir avec un navigateur:
http://XX.YY.ZZ.TT:1880
Si l'adresse IP du serveur est XX.YY.ZZ.PP (1880 est le port par défaut de NodeRed)
Bon il y a quelques "popups" de présentation. On peut les lires la première fois!
Premier test
On va créer un petit "Hello world" avec nodered!
On "drague & droppe" trois éléments :
On les relie entre eux:
On édite l'élément "function 1".
msg.payload+=" Hello World!"
return msg;
Et on clique sur "Déployer" (le bouton rouge en haut à droite)
On obtiens la confirmation.
On sélectionne, a droite, la fenêtre debug.
Et on clique sur le carré bleu de l'élément "horodatage".
A chaque clic on a une ligne dans les logs de debug... On a vu que dans "function 1" on ajoute "Hello World" au "timestamp" .
Sécurisation
Il serait tout de même préférable d'ajouter un "login password" non?
Pour cela, on va tout d'abord encoder un mot de passe. Il y a pour cela une commande : node-red admin hash-pw
node-red admin hash-pw
Password: <ici on tape le mot de passe sans echo>
$2y$08$AK6/jMQoUMpbnSxS3TTv3eIxiQfILfTjulpMvYxzomFi.ZZaz1IFu
On arrète le serveur nodered (ctrl + C)
Et on édite le fichier : /home/admin/.node-red/settings.js
si admin
est l'utilisateur que fait tourner le serveur.
Dans la section "security" on décommente la partie
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2y$08$AK6/jMQoUMpbnSxS3TTv3eIxiQfILfTjulpMvYxzomFi.ZZaz1IFu",
permissions: "*"
}]
},
On crée un utilisateur nommé "admin" et dont le mot de passe est celui donné à node-red admin hash-pw
.
Et on relance le serveur (cette fois ci en "détaché")
nohup node-red &
Et on relance la connexion avec le navigateur:
On rentre Admin + mot de passe et on se retrouve connecté.