Probleme container nodered

@GBoulvin vous a donner la solution, il faut être dans le groupe dialout pour accéder au port série.

1 Like

Bonjour @VonOx
Je dois taper cette commande? même si Node red est installé et fonctionne , ça ne perturbera rien?
desolé pour mon ignorance, mais j’essaie de trouver des solutions mais en vain. :face_exhaling:
merci pour ton aide

il faut que je l’ adapte a mon cas forcement, la ligne qui nous intéresse c’est celle là :

-u node-red:dialout

Mais je ne sais pas l’envoyer au RPI, j’ai tapé ça :

docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
-u root \
--network=host \
--name node_red \
-v /var/lib/node-red:/data \
-u node-red:dialout \
nodered/node-red

mais visiblement c’est faux

j’ai tapez cette commande

 ls -l /dev/ttyUSB1

et en retour j’obtiens ce message :

crw-rw---- 1 root dialout 188, 1 Jul 17 21:08 /dev/ttyUSB1

Est ce que ça veut dire "que l’on est bien dans le groupe Dialout "?

@Psoy
hello,
je n ai pas tout les elements , mais dans ta commande docker run tu as au moins un problème : tu appliques 2 fois l option -u (user) une fois root et une fois node-red:dialout donc il doit y avoir un conflit

Et il faut supprimer ton conteneur existant avant de le recréer

1 Like

Bonjour @Einstein8854
Je me doutais un peu , mais comme je ne connais la structure de cette commande, j’ai tenté.

Bonjour VonOx
Ça je l’ai fais avant, puis j’ai tapez la commande modifiée, mais j’ai un retour de Putty qui me disait que ce n’était pas bon.
tu parlais de Dialout, j’ai tapez cette commande

 ls -l /dev/ttyUSB1

et en retour j’obtiens ce message :

crw-rw---- 1 root dialout 188, 1 Jul 17 21:08 /dev/ttyUSB1

Est ce que ça veut dire "que l’on est bien dans le groupe Dialout "?

docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name node_red \
-v /dev:/dev \
-v /var/lib/node-red:/data \
nodered/node-red

ça devrait être suffisant, tu le lance en privileged donc normalement pas besoin de user ou groupadd

Il faut juste mapper /dev sinon ton conteneur ne le vois pas

ça c’est sur l’hôte , on touche à rien de ce côté

1 Like

encore merci @VonOx pour tes réponses.
mais je suis toujours avec la même erreur

"[serialconfig:5fefad5a76dd3e43] serial port /dev/ttyUSB0 error: Error: Error: Permission denied, cannot open /dev/ttyUSB0"

J’ai désinstallé le container node_red, puis j’ai supprimé les dossiers node-red dans \var\lib.

j’ai relancé ta commande mais ça rebootait comme au départ, donc j’ai lancé la commande

sudo chown -R 1000:1000 /var/lib/node-red 

j’ai restart le container et celui ci est bien repartit .Mais j’ai toujours cet accès refusé au port USB que ce soit le 1 ou le 0

docker run -d \
--log-opt max-size=10m \
--restart=always \
--network=host \
--name node_red \
-u node-red:dialout \
--device=/dev/ttyUSB0 \
--device=/dev/ttyUSB1 \
-v /var/lib/node-red:/data \
nodered/node-red

Essaye ça

Donc après double vérification, il semble que ça a évolué. On dirai que l’on se retrouve dans la config du changement de version de la palette serial port 1.01 contre 0.15 :
image.
je changerai la version toute à l’heure je vous tiens au courant
encore merci Vonox

Bonsoir ,
Grand merci @VonOx . c’etait bien ça , j’ai pu redmarrer le RFlink mais il faut encore appliquer la manip de @Bjm à savoir de rétrograder la version du Serialport en repassant à la v0.15
je vais faire un tuto
merci encore

Tuto pour réinstaller NODE Red en V3

Un grand merci à @VonOx , pour m’avoir guider bien patiemment.

La commande d’installation dans cette vidéo ne fonctionne plus à la suite du passage de la V3 de Node Red. Il faut alors la remplacer par les commandes suivantes :

: Intégrer Node-RED avec Gladys Assistant en MQTT | Gladys Assistant

Désinstaller l’ancien node red

1 - stopper le container docker

docker stop node_red

2 - supprimer le container node red

docker rm node_red

3 - supprimer le dossier node-red dans \var\lib

cd /var/lib

4 - on est rentré dans le dossier lib, affichage des éléments du dossier

ls

5 - chercher le dossier node-red (attention tiret du 6) et le supprimer :

sudo rm -r node-red

6 - vérifions qu’il n’ est plus le dossier node-red

ls

7 - retour a l’invite pi@gladys:~ $

cd /

8 - je reboot le rpi (je ne sais pas si c’est utile mais ça me rassure)

sudo reboot

9 - Vérifions qu’il n’y est plus le container node red

docker ps

installation de node red

1 - tapez la commande de @VonOx
" il faudra avoir un système branché sur les ports USB0 et USB1, pour ma part j’ai un RFlink sur le port ttyUSB0 et la cle zigbbe Sonoff sur le port ttyUSB1. Donc il faudra peut être adapter dans les lignes " --device=/dev/ttyUSB0 \ " le nom du port utilisé par exemple « –device=/dev/ttyACM0. »

docker run -d \

--log-opt max-size=10m \

--restart=always \

--network=host \

--name node_red \

-u node-red:dialout \

--device=/dev/ttyUSB0 \

--device=/dev/ttyUSB1 \

-v /var/lib/node-red:/data \

nodered/node-red

2 - puis celle-ci

sudo chown -R 1000:1000 /var/lib/node-red

3 - Générer un hash : Pour avoir plus de précision regarder la vidéo de Pierre-Gilles : Intégrer Node-RED avec Gladys Assistant en MQTT | Gladys Assistant

Générer un hash

docker exec -it node_red node-red admin hash-pw

exemple de hash : $2b$08$tfrMEc4pnblhhSDFFBUjeOtGU.Ixh5d19P31NWCf2JZKmwZF888mK

4 - Editer le fichier avec nano : Ne pas oublier Sudo (devant pour moi il le faut)

sudo nano /var/lib/node-red/settings.js

Enlever les double / entre « adminAuth: » et l’accolade de fin } correspondante à adminAuth: {

5 - Coller le hash généré

6 - Puis redémarrer node red

docker restart node_red

Rétrogradage de la version de Serialport

on va utiliser la version 0.15.0 au lieu de la version 1.0.1

merci a @Bjm

Donc il faut garder la version node-red-node-serialport 0.15.0. Pour récuperer cette version, il faut suivre le tuto de @Bjm , que je vous colle ci-dessous

j’ai installé node-red-node-serialport version 0.15.0 qui fonctionnait sur ma 32 bits
https://www.npmjs.com/package/node-red-node-serialport/v/0.15.0

1 - Dans le terminal pour ouvrir un Shell dans docker

docker exec -it node_red /bin/bash

cela me renvoie
bash-5.0#
2 - Je copie la commande suivante au bout

npm i node-red-node-serialport@0.15.0

Cela mouline et à la fin me renvoie ceci

 notice created a lockfile as package-lock.json. You should commit this file.
+ node-red-node-serialport@0.15.0
added 48 packages from 37 contributors and audited 338 packages in 60.866s

45 packages are looking for funding
  run `npm fund` for details

found 4 critical severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details

3 - Comme il y a 4 vulnérabilités critiques je fais

npm audit fix

Comme proposé

4 - Puis

exit

5 – redémarrage de node red

docker restart node_red

Installation de la "palette : node-red-node-serialport "

Ouvrir Node RED, pour installer la palette " node-red-node-serialport "

Cliquez-en haut à droite sur les 3 barres horizontales, pour ouvrir le menu ci-dessus.

image262×506 4.11 KB
je ne sais pas pourquoi les image s ne s’affichent pas , mais en cliquant dessus elles s’ouvrent ces images sont tirées du tuto RFlink,NodeRed et Gladys

Cliquez dans "manage palette " 11 -ème lignes. La fenêtre ci-dessous s’ouvre, cliquez dans l’onglet “install”, puis tapez “serial” dans “search modules” pour rechercher les palettes (bibliothèques). Des bibliothèques s’affichent. On choisira la bibliothèque (ou palette) “node-red-node-serialport”, cliquez dans le petit “install” sur la droite.

image701×717 17.9 KB

Une fois fait, cliquez sur l’onglet Nodes.

image700×479 6.45 KB

Vérifier que la palette est bien là. Ensuite vérifier dans les “filters nodes” colonne de gauche de l’écran que l’on a bien les nodes suivants :

Voilà ça devrait être reparti pour du low code.

@Psoy attention tu indique de supprimer le dossier de persistance, hors ce n’est valable que dans ton cas je penses, j’ai été confronté au souci de permission aussi et je n’ai pas eu à faire tout ça.

@VonOx il faut que je mette à jour la commande sur le blog ou pas ?

Moi côté docker je n’ai strictement rien fait :neutral_face:

1 Like

Bonsoir @VonOx
le dossier persistance c’est node-red, dans /var/lib?
il ne faut pas le faire , je pensai que tout purger ce serait mieux!
faut il que je supprime ce passage?
j’ai eu le bonheur d’utiliser plusieurs fois ce tuto malheureusement, mais ça à toujours fonctionné :slightly_smiling_face:

Bonsoir Pierre-Gilles
j’en parle au début du tuto, comme quoi la commande qui est dans ta vidéo ne fonctionne plus avec la V3 de Node red. Peut être préciser qu’il y a ce problème car c’est la première chose que l’on va faire pour installer Node red, c’est d’aller voir ta vidéo et la page d’intégration qui est liée. Pour ma part j’ai mis à jour mon tuto sur « RFlink Node Red et Gladys », il faudra que je le réorganise un peu je pense
Bonne soirée

@VonOx

Est ce que la ligne --device=/dev/ttyUSB0 \peut etre remplacé par --device=/dev/ttyACM0 \, si on a un device qu’il l’utilise . @tiboys a sa carte arduino déclarée sur ce port ttyACM0
merci
Bonne soirée

Oui c’est a adapter selon le device, c’est aussi pour ça que généralement on crée une règle udev, cela permet d’avoir un « chemin » permanent

j’ai zappé ça , je vais le préciser.
Je rajoute ça avant :
" il faudra avoir un systeme branché sur les ports USB0 et USB1, pour ma part j’ai un RFlink sur le port ttyUSB0 et la cle zigbbe Sonoff sur le port ttyUSB1. Donc il faudra peut être adapter dans les lignes " --device=/dev/ttyUSB0 \ " le nom du port utilisé par exemple « –device=/dev/ttyACM0. »
c’est bon? (je te demande avant ! :smile: