Probleme container nodered

Bonsoir,
Suite a une mise a jour que j’ai interrompu sans faire attention (je pense car le dashboard ne s’affichait plus) et je me suis empressé de tout rebooter erreur grave :crazy_face:
suite a ca reinstall total de gladys , facile avec gladys plus mais entre temps la cle de sauvegarde a été modifier , sans que je n’y ai pris garde et donc heureusement qu’il y avait encore une sauvegarde de 3 mois, qui avait l’ancienne cle :sweat:
donc Gladys restaurée tout va bien avec un peu de mise a jour.
Maintenant Node red , je viens de réinstaller Node red et donc comme pour vous ça reboot toutes les 5 sec environ. je regarde dans /var/lib/node-red , et là les dossiers " /lib node_modules , package.json et setting. js ne sont pas créer.
voici mes log node red:

> node-red-docker@3.0.0 start
> node $NODE_OPTIONS node_modules/node-red/red.js $FLOWS "--userDir" "/data"

node:internal/fs/utils:345
    throw err;
    ^

Error: EACCES: permission denied, copyfile '/usr/src/node-red/node_modules/node-red/settings.js' -> '/data/settings.js'
    at Object.copyFileSync (node:fs:2817:3)
    at copyFile (/usr/src/node-red/node_modules/fs-extra/lib/copy/copy-sync.js:73:6)
    at onFile (/usr/src/node-red/node_modules/fs-extra/lib/copy/copy-sync.js:59:25)
    at getStats (/usr/src/node-red/node_modules/fs-extra/lib/copy/copy-sync.js:51:44)
    at handleFilterAndCopy (/usr/src/node-red/node_modules/fs-extra/lib/copy/copy-sync.js:36:10)
    at Object.copySync (/usr/src/node-red/node_modules/fs-extra/lib/copy/copy-sync.js:29:10)
    at Object.<anonymous> (/usr/src/node-red/node_modules/node-red/red.js:129:20)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32) {
  errno: -13,
  syscall: 'copyfile',
  code: 'EACCES',
  path: '/usr/src/node-red/node_modules/node-red/settings.js',
  dest: '/data/settings.js'
}

node-red-docker@3.0.0 start
est ce que cette ligne indique le version de node -red, car avant nous étions en 2.1 quelque choses.
est ce que ce n’est pas lien à ça , ce problème d’installation
Si quelqu’un a une idée je suis preneur, car j’y ai passé la journée. :face_exhaling:

Il y a effectivement une nouvelle version de node red qui vient de sortir
Leur Wiki propose de démarrer le conteneur en root :
If you are seeing permission denied errors opening files or accessing host devices, try running the container as the root user.

L’exemple donné ajoute le paramètre -u dans la commande de démarrage du container:

docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered -u node-red:dialout nodered/node-red

Source
Attention que la commande proposée ici n’est sans doute pas identiquement la même que celle que vous avez utilisée. Il faudrait adapter la vôtre…

Édit: Si vous vous êtes basés sur la vidéo de @pierre-gilles , le paramètre -u est déjà utilisé… Désolé!

eh oui mon install nodered c est faites sur le modele de la video yt de @pierre-gilles .
donc la apres investig des log et le message d erreur precité je suis un peu coincé car la boite docker est un peu une boite noire pour les container, et desinstaller -reinstaller nodered ne me plait pas outre mesure (perte des personnalisation et flow créé…)

Bonjour @GBoulvin
effectivement j’ai suivi la vidéo de Pierre-Gilles

Ça veut dire que ça ne fonctionne pas , ou que -u est déjà utilisé et il faut y mettre autre chose ?
Et quelle est la solution alors, parce que pour moi aussi c’est un peu une boite noire :face_exhaling:

Malheureusement, il faudra attendre un spécialiste car mes compétences en Docker sont trop limitées…
Les droits d’écriture sont détaillés ici (en anglais).

Le principe est justement de pouvoir détruire le container sans perdre les données puisqu’elles sont stockées en dehors de celui-ci donc pas de crainte à avoir.

Vous devez corriger les droits sur le dossier de persistence.

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

Le chemin est a adapter selon besoin.

Un restart du conteneur est c’est réglé

1 « J'aime »

bonjour @VonOx ,
merci le pb venait bien de là , mais pourrais tu m expliquer car je reste septique :
l installation d origine de node red en suivant la demarche de @pierre-gilles fonctionnait bien et etait avec -u root
et la avec cette maj, vu la manip que tu nous a donné (qui fonctionne ) cela laisse entendre que le -u est passé à « sylvain »(dans mons cas)
n y a t il pas risque que cette modif ne soit pas stable dans le temps (autre maj), et pour la securité passer d un owner root a sylvain n est ce pas une potentielle porte ouverte…?

Merci Vincent
Heureusement que tu es là :wink:, c’est repartit pour moi , reste à restaurer les flows et après me battre avec zigbeeMqtt2 qui ne repart pas non plus.

Si tu veux du stable il ne faut pas mettre à jour avec watchtower ou utiliser une version spécifique de l’image ( pas en latest)

La commande que je vous ai donné est dans la documentation node red.

On est passé par une migration v2 vers v3

1 « J'aime »

ok,
ta reponse me rassure ! mais du coup pour une install nodered le -u root preco par @pierre-gilles n est plus valable ?
j avais ete voir dans le site nodered mais pas vu cela (j ai du mal redigé ma question…)
cette migration est elle liée a gladys (comme pour node en v 16) ou est ce du fait de nodered?

petite question annexe : sur le capteur xiaomi aquara de particule,temp, humidité as tu eu plus d element sur la non remontée des valeurs particules (ppb)

Le tuto de Pierre Gilles était valable à date lors de la rédaction du tuto.

Node red est indépendant de Gladys et orienté utilisateur avancés, si quelque chose ne fonctionne pas côté node red c’est pas côté Gladys qu’il faut blâmer.

La seule source de vérité sera la documentation node red

Pour ton autre problème ouvre un sujet dédié sinon on va s’y perdre.

Re, @VonOx .
d accord avec toi sur le tuto creé par pierre gilles, mais peut etre que dans les tuto il faudrait un petit addendum pour les nouveaux utilisateurs ?
sur la fonctionnalité particule, j ai fait debut juin une demande de fonctionnalité Air Quality pour aqara xiaomi tvoc où tu avais repondu et je pensais que cela etait integré dans la derniere version Gladys mais apparemment ce n est pas le cas (pb de test, merge…?)

re bonsoir,
je bloque encore sur node red et rflink , apparemment node red n’a pas accès au port /dev/ttyUSB1, où est branché mon rflink .
voici le message d’erreur générer par Node red

"[serialconfig:b72b80f45f12994a] serial port /dev/ttyUSB1 error: Error: Error: Permission denied, cannot open /dev/ttyUSB1"

j’ai bien essayer de chercher " genre ça : sudo chmod 666 /dev/ttyUSB1, mais j’en ai marre de tout réinstaller à chaque erreur , alors je me tourne vers vous les spécialistes :smiley: si quelqu’un peut encore m’aider, :face_exhaling:
merci d’avance

+1
J’ai réussi à accéder à NodeRed (Merci beaucoup @GBoulvin) mais impossible de sélectionner le COM de la carte Arduino.
J’ai le port USB0 dédié au Zigbee (lorsque la clé est branchée) mais aucune autre proposition d’USB.
Je n’ai que ACM0 et AMA0 → erreur !
J’ai testé en ajoutant une autre carte arduino → ACM1 mais même erreur !
Help please …

Bonjour,
Même problème pour moi, sauf que mon port c’est /dev/ttyUSB0 ou 1 j’ai essayé les deux et j’ai toujours un accès refusé

serialconfig:b72b80f45f12994a] serial port /dev/ttyUSB1 error: Error: Error: Permission denied, cannot open /dev/ttyUSB1

J’ai un rflink (arduino mega) qui fonctionnait correctement branché sur le PI . le Pi a pourtant bien attribué le port au rflink et a ma cle sonoff. Je ne sais plus où chercher, peut être repasser en Version 2.x de node red

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

1 « J'aime »

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 « J'aime »