Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/07/2018, à 11:21

kholo

2018 07 16 - Ubuntu et Node red ; kholo, première approche...

je découvre node-red qui est encore jeune
je n'ai pas encore la maîtrise pour entrer dans les explications mais voici ce qui en ressort :
Node-red est une interface graphique de programmation en JavaScript et une interface pour tous types de langages.
ça fonctionne avec des nœuds de base qui peuvent être combiné pour créer d'autres nœuds et ainsi de suite
c'est un service et c'est accessible depuis une page web local.
On peut le comparer à un service http en python (pour schématiser).
l'installation se fait au travers de npm.
npm devient un environnement dans lequel on installe des paquets dont node-red (comme apt).
j'ai découvert que les versions ont leur importance autant que les dépendances ; j'y reviendrait.
de plus on peut installer dans npm pour tout le monde mais aussi uniquement pour un utilisateur.

pour les prérogatives, vous devez avoir une version récente de ubuntu : 16.04 ou 18.04

Installation :

sudo apt install npm

puis on met node red pour tout le monde ainsi

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

pour aller un peu plus loin wink :

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

au détour d'installations, on tombe aussi sur la possibilité de corriger des trous de sécurité hmm .
c'est un peu déstabilisant dans l'idée et ça se fait avec une ligne :

npm audit fix

qui finalement renvoie le plus souvent à la préconisation de mettre les mains dans le moteur...
en fait, des mises à jour régleront certainement pas mal de soucis.

NB : sur ma 16.04, un soucis avec certains nodes, m'a obligé à mettre une version plus récente de NodeJS
(noeuds fichiers non fonctionnels... peut être d'autres aussi !)
j'ajoute la procédure pour une 10

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

ensuite, comme je le disais, on a un service à lancer :

node-red

ça donne ça :

su@XPS430-A:~$ node-red
16 Jul 11:25:23 - [info]

Welcome to Node-RED
===================

16 Jul 11:25:23 - [info] Node-RED version: v0.18.7
16 Jul 11:25:23 - [info] Node.js  version: v10.6.0
16 Jul 11:25:23 - [info] Linux 4.15.0-24-generic x64 LE
16 Jul 11:25:23 - [info] Loading palette nodes
16 Jul 11:25:25 - [info] Dashboard version 2.9.4 started at /ui
16 Jul 11:25:27 - [warn] ------------------------------------------------------
16 Jul 11:25:27 - [warn] [node-red/rpi-gpio] Info : Ignoring Raspberry Pi specific node
16 Jul 11:25:27 - [warn] ------------------------------------------------------
16 Jul 11:25:27 - [info] Settings file  : /home/su/.node-red/settings.js
16 Jul 11:25:27 - [info] User directory : /home/su/.node-red
16 Jul 11:25:27 - [warn] Projects disabled : editorTheme.projects.enabled=false
16 Jul 11:25:27 - [info] Flows file     : /home/su/.node-red/flows_XPS430-A.json
16 Jul 11:25:27 - [info] Server now running at http://127.0.0.1:1880/
16 Jul 11:25:27 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

16 Jul 11:25:27 - [info] Starting flows
16 Jul 11:25:27 - [info] Started flows

sur la 18.04 (je met les deux pour conserver les versions)

su@XPS430-1:~$ node-red
16 Jul 11:29:35 - [info] 

Welcome to Node-RED
===================

16 Jul 11:29:35 - [info] Node-RED version: v0.18.7
16 Jul 11:29:35 - [info] Node.js  version: v8.10.0
16 Jul 11:29:35 - [info] Linux 4.15.0-24-generic x64 LE
16 Jul 11:29:36 - [info] Loading palette nodes
16 Jul 11:29:36 - [info] Dashboard version 2.9.4 started at /ui
16 Jul 11:29:37 - [warn] ------------------------------------------------------
16 Jul 11:29:37 - [warn] [node-red/rpi-gpio] Info : Ignoring Raspberry Pi specific node
16 Jul 11:29:37 - [warn] ------------------------------------------------------
16 Jul 11:29:37 - [info] Settings file  : /home/su/.node-red/settings.js
16 Jul 11:29:37 - [info] User directory : /home/su/.node-red
16 Jul 11:29:37 - [warn] Projects disabled : editorTheme.projects.enabled=false
16 Jul 11:29:37 - [info] Flows file     : /home/su/.node-red/flows_XPS430-1.json
16 Jul 11:29:37 - [warn] 

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

16 Jul 11:29:37 - [info] Starting flows
16 Jul 11:29:37 - [info] Started flows
16 Jul 11:29:37 - [info] Server now running at http://127.0.0.1:1880/
ASTUCE a écrit :

ASTUCE : si ce n'est pas déjà fait, installez screen

sudo apt install screen

puis créez un screen :

screen -S nodered

puis lancez le service

node-red

puis ctrl + a puis d pour sortir de screen
puis ctrl + d pour fermer le terminal

pour y retourner :
ouvrez un terminal puis

screen -r nodered

NB :

screen -r

devrait suffire

ctrl + c pour arrêter le service
ctrl + d 2 fois au moins pour sortir de screen et fermer le terminal

lancement automatique a écrit :

mode graphique
Programmes / Applications au démarrage / Ajouter
nom : node red
commande : node-red ou chemin complet
/usr/local/bin/node-red certainement
NB pour l'avoir faites en ligne de commande

whereis node-red

commentaire : node red de l'utilisateur (ou autre chose)

en ligne de commande (en 1 fois) :

{
cat <<EOD
[Desktop Entry]
Type=Application
Exec=node-red
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[fr_FR]=node red
Name=node red
Comment[fr_FR]=node red de l'utilisateur
Comment=node red de l'utilisateur
EOD
} > ~/.config/autostart/node-red.desktop

NB : pour moi cela fonctionne avec et sans le chemin complet sinon adaptez la ligne Exec=node-red
avec le résultat de :

whereis node-red

oui, je sais je radote  !

maintenant qu'on sait gérer le service, le contenu de la boite :

on va dans le navigateur à l'adresse :
http://localhost:1880

comment ça fonctionne ?
on glisse un noeud puis un autre et on tire un file entre les deux
le hello world est de prendre un "inject" dans input qui va devenir un timestamp (envoie des impulsions en date, nombre, textes...)
puis on prend un "debug" dans output qui va devenir msg.payload
et on tire un file entre les deux
des petits boutons bleus (par défaut) indiquent quels sont les nœuds modifiés et non enregistrés (pratique !)
et qu'il faut déployer pour prendre en compte nos modifications
=> on appuye sur le Deploy Rouge en haut à droit pour déployer
puis sur l'onglet Debug pour voir les messages du debugeur
enfin, on a un bouton à gauche de timestamp en cliquant dessus des infos vont s'afficher dans debug

Pour modifier un noeud : double clic dessus
Entrez dans timestamp et changez les paramètres du noeud : voilà, vous programmez !!!

la batterie de noeuds par défaut est parfaite pour apprendre
rapidement on veut créer des interfaces graphiques
commencez par aller dans le dossier perso de node red

cd ~/.node-red
npm install node-red-dashborad

ou d'autres noeuds

npm install node-red-node-sqlite

vous pourrez également ajouter des noeuds depuis l'interface de node-red
dans les préférences : "Manage Palette"
NB : je crois qu'il faut avoir installé node-red-admin (voir l'installation en haut)

Dernière modification par kholo (Le 19/07/2018, à 08:12)

Hors ligne