Problème de nodejs avec MySensors

Bonjour,

Je viens de passer mon RPI de Jeedom V3.3.39 sur Jessie vers Jeedom V4.0.61 sur Buster.
Je n’ai plus de communication avec mes noeuds MySensors, le statut dans la page de configuration indique « NOK ».

Le log MySensors_node indique un problème avec la version de NodeJS apparemment lorsque je clique sur « (Re)Démarrer » pour relancer le Démon :
Sat Aug 15 2020 17:30:19 GMT+0200 (Central European Summer Time) - Jeedom url : http://127.0.0.1:80/plugins/mySensors/core/api/jeeSensors.php?apikey=HGcCeLOb9t7qtVcDJtOlsUpA60Ae3mQTxdXU79QhHXkTAR57&gateway=master, gwAddress : /dev/ttyUSB0
Connection type serial
/var/www/html/plugins/mySensors/resources/node_modules/bindings/bindings.js:88
throw e
^
Error: The module ‹ /var/www/html/plugins/mySensors/resources/node_modules/@serialport/bindings/build/Release/bindings.node ›
was compiled against a different Node.js version using
NODE_MODULE_VERSION 57. This version of Node.js requires
NODE_MODULE_VERSION 64. Please try re-compiling or re-installing
the module (for instance, using npm rebuild or npm install).
at Object.Module._extensions…node (internal/modules/cjs/loader.js:807:18)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at bindings (/var/www/html/plugins/mySensors/resources/node_modules/bindings/bindings.js:81:44)
at Object. (/var/www/html/plugins/mySensors/resources/node_modules/@serialport/bindings/lib/linux.js:1:36)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions…js (internal/modules/cjs/loader.js:789:10)

Pour info :
Version Jeedom : V4.0.61
Système : RPI 2 B
Raspbian Buster 32 bits
Linux jeedom 5.4.51-v7+ #1327 SMP Thu Jul 23 10:58:46 BST 2020 armv7l GNU/Linux [10.4]
Version MySensors : 2020-01-18 02:01:05

Avez-vous une idée?
Merci d’avance,

Bonsoir @Guil49

En SSH quand tu tape node -v il te donne quoi comme version ?

Bonjour,
il m’indique V10.21.0

J’ai tenter de réinstaller les dépendances du plugin dans la page de configuration MySensors.
=> Les dépendances ont surement un problème car elles sont notés NOK maintenant,

On peut voir dans le log (avec mes yeux de débutant) qu’il y a un soucis avec npm :
Suppression du Nodejs existant et installation du paquet recommandé
Package ‹ npm › is not installed, so not removed
Version actuelle : v10.21.0
dependencies.sh: 59: dependencies.sh: npm: not found
chown: cannot access ‹ node_modules ›: No such file or directory
Fin de l’installation

Détail du log :

Début de l'installation
--2020-08-15 20:33:38--  https://raw.githubusercontent.com/lunarok/jeedom_nodejs/master/nodejs.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.120.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.120.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1491 (1.5K) [text/plain]
Saving to: 'dependencies.sh'
0K .                                                     100% 1.90M=0.001s
2020-08-15 20:33:38 (1.90 MB/s) - 'dependencies.sh' saved [1491/1491]
dependencies.sh: 3: [: mySensors: unexpected operator
Version actuelle : 10
Get:1 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]
Hit:2 http://archive.raspberrypi.org/debian buster InRelease
Fetched 15.0 kB in 2s (8683 B/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
lsb-release is already the newest version (10.2019051400+rpi1).
lsb-release set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 43 not upgraded.
KO, version obsolète à upgrader
Suppression du Nodejs existant et installation du paquet recommandé
Reading package lists...
Building dependency tree...
Reading state information...
Package 'npm' is not installed, so not removed
The following packages will be REMOVED:
libc-ares2* libnode64* libuv1* nodejs* nodejs-doc*
0 upgraded, 0 newly installed, 5 to remove and 43 not upgraded.
After this operation, 27.7 MB disk space will be freed.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 65087 files and directories currently installed.)
Removing nodejs (10.21.0~dfsg-1~deb10u1+rpi1) ...
Removing libnode64:armhf (10.21.0~dfsg-1~deb10u1+rpi1) ...
Removing libc-ares2:armhf (1.14.0-1) ...
Removing libuv1:armhf (1.24.1-1) ...
Removing nodejs-doc (10.21.0~dfsg-1~deb10u1+rpi1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libc-bin (2.28-10+rpi1) ...
dependencies.sh: 37: [: armv7l: unexpected operator
Utilisation du dépot officiel
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
libc-ares2 libnode64 libuv1 nodejs-doc
Suggested packages:
npm
The following NEW packages will be installed:
libc-ares2 libnode64 libuv1 nodejs nodejs-doc
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:
0 upgraded, 5 newly installed, 0 to remove and 43 not upgraded.
Need to get 0 B/6100 kB of archives.
After this operation, 27.7 MB of additional disk space will be used.
Selecting previously unselected package libc-ares2:armhf.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 64942 files and directories currently installed.)
Preparing to unpack .../libc-ares2_1.14.0-1_armhf.deb ...
Unpacking libc-ares2:armhf (1.14.0-1) ...
Selecting previously unselected package libuv1:armhf.
Preparing to unpack .../libuv1_1.24.1-1_armhf.deb ...
Unpacking libuv1:armhf (1.24.1-1) ...
Selecting previously unselected package libnode64:armhf.
Preparing to unpack .../libnode64_10.21.0~dfsg-1~deb10u1+rpi1_armhf.deb ...
Unpacking libnode64:armhf (10.21.0~dfsg-1~deb10u1+rpi1) ...
Selecting previously unselected package nodejs.
Preparing to unpack .../nodejs_10.21.0~dfsg-1~deb10u1+rpi1_armhf.deb ...
Unpacking nodejs (10.21.0~dfsg-1~deb10u1+rpi1) ...
Selecting previously unselected package nodejs-doc.
Preparing to unpack .../nodejs-doc_10.21.0~dfsg-1~deb10u1+rpi1_all.deb ...
Unpacking nodejs-doc (10.21.0~dfsg-1~deb10u1+rpi1) ...
Setting up libc-ares2:armhf (1.14.0-1) ...
Setting up libuv1:armhf (1.24.1-1) ...
Setting up libnode64:armhf (10.21.0~dfsg-1~deb10u1+rpi1) ...
Setting up nodejs-doc (10.21.0~dfsg-1~deb10u1+rpi1) ...
Setting up nodejs (10.21.0~dfsg-1~deb10u1+rpi1) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode
Processing triggers for libc-bin (2.28-10+rpi1) ...
Processing triggers for man-db (2.8.5-2) ...
Version actuelle : v10.21.0
dependencies.sh: 59: dependencies.sh: npm: not found
chown: cannot access 'node_modules': No such file or directory
Fin de l'installation

A la fin de l’installation échoué, j’ai en SSH :

jeedom@jeedom:~ $ node -v
v10.21.0
jeedom@jeedom:~ $ npm -v
-bash: npm : commande introuvable

Une idée?

Alors je ne cannais pas le plugin Mysensors mais sur d’autre plugin utilisant nodejs nous en sommes à la version 12.18.x sous Buster

Si tu essaie de mettre à jour nodejs en ssh est ce que cela fonctionne ?

Je suis apparemment à la dernière version (peut être sur le RPI)

jeedom@jeedom:~ $ sudo apt install nodejs
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
nodejs est déjà la version la plus récente (10.21.0~dfsg-1~deb10u1+rpi1).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 43 non mis à jour.

Non la dernière version officiel pour Buster est 12.18.x et je suis aussi sur RPI

Ma commande est-elle correcte (Je ne suis débutant en commande Linux)?
jeedom@jeedom:~ $ sudo apt install nodejs

J’ai un RPI 2 pour info.

Bonjour @Guil49 ,
pour information sous Buster comme le dit @iPapy (que je salue au passage), je suis aussi en 12.18.3

par contre si cela peut vous aider j’ai lorsque je fais un apt-get update 3 liens de dépôts :

sudo apt-get update
Get:1 Index of /raspbian buster InRelease [15.0 kB]
Hit:2 Index of /debian buster InRelease
Hit:3 https://deb.nodesource.com/node_12.x buster InRelease
Fetched 15.0 kB in 1s (10.2 kB/s)
Reading package lists… Done

J’ai regardé pourquoi (petit travail de mémoire datant du confinement :thinking:)

Voici une manipe venant de ce lien : https://linuxize.com/post/how-to-install-node-js-on-debian-10/

Start by adding add the NodeSource repository to your system by running the following curl command:

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

Once the repository is added to install Node.js and npm type:

sudo apt install nodejs

Ensure that Node.js is properly installed by typing:

node --version
v12.8.1

tenez nous informé.

1 « J'aime »

Bonjour @Guil49

Je rejoint également @PanoLyon (que je salue aussi au passage :slight_smile: ) en recherchant dans mes notes je suis retombé sur les mêmes commandes pour installer nodejs en v12

Tiens nous au courant.

1 « J'aime »

Merci pour vos réponses mais je reste bloqué en version 10.xxx

jeedom@jeedom:~ $ curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
jeedom@jeedom:~ $ sudo apt install nodejs
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
nodejs est déjà la version la plus récente (10.21.0~dfsg-1~deb10u1+rpi1).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
jeedom@jeedom:~ $ node --version
v10.21.0

Quelle version de RPI avez-vous?

Hello, après la commande curl il faut updater apt.

Utilise ici plutôt la commande

sudo apt-get update

Afin qu’on voit bien que dans tes sources se trouvent la v12

1 « J'aime »

Bonjour, même chose, je reste en V10.xxx :thinking:

jeedom@jeedom:~ $ curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
jeedom@jeedom:~ $ sudo apt-get update
Atteint :1 http://archive.raspberrypi.org/debian buster InRelease
Réception de :2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15,0 kB]
Réception de :3 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages [13,0 MB]
13,0 Mo réceptionnés en 28s (471 ko/s)
Lecture des listes de paquets... Fait
jeedom@jeedom:~ $ sudo apt install nodejs
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
nodejs est déjà la version la plus récente (10.21.0~dfsg-1~deb10u1+rpi1).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
jeedom@jeedom:~ $ node --version
v10.21.0

Je viens de vérifier et mon RPI est bien vu en RPI 2.

jeedom@jeedom:~ $ cat /proc/cpuinfo
Hardware        : BCM2835
Revision        : a01041
Serial          : 00000000e5672628
Model           : Raspberry Pi 2 Model B Rev 1.1

ce qui m’étonne c’est que cette commande ne retourne rien…

Merci de ton aide.
ça retourne quoi chez toi? ça devrait retourner quoi?

Ce qui me gêne aussi, c’est l’indication rpi1 à la fin de la ligne suivante, non?

ca doit retrouner plein d’informations importantes et intéressantes pour t’aider !

jeedom@JeedomBeta:~$ curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

## Installing the NodeSource Node.js 12.x repo...


## Populating apt-get cache...

+ apt-get update
Réception de :1 http://security.debian.org/debian-security buster/updates InRelease [65,4 kB]
Atteint :2 http://ftp.fr.debian.org/debian buster InRelease
Atteint :3 https://deb.nodesource.com/node_12.x buster InRelease
Réception de :4 http://ftp.fr.debian.org/debian buster-updates InRelease [51,9 kB]
117 ko réceptionnés en 0s (252 ko/s)
Lecture des listes de paquets... Fait

## Confirming "buster" is supported...

+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_12.x/dists/buster/Release'

## Adding the NodeSource signing key to your keyring...

+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
OK

## Creating apt sources list file for the NodeSource Node.js 12.x repo...

+ echo 'deb https://deb.nodesource.com/node_12.x buster main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src https://deb.nodesource.com/node_12.x buster main' >> /etc/apt/sources.list.d/nodesource.list

## Running `apt-get update` for you...

+ apt-get update
Atteint :1 http://security.debian.org/debian-security buster/updates InRelease
Atteint :2 http://ftp.fr.debian.org/debian buster InRelease
Atteint :3 http://ftp.fr.debian.org/debian buster-updates InRelease
Atteint :4 https://deb.nodesource.com/node_12.x buster InRelease
Lecture des listes de paquets... Fait

## Run `sudo apt-get install -y nodejs` to install Node.js 12.x and npm
## You may also need development tools to build native addons:
     sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
     curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
     echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
     sudo apt-get update && sudo apt-get install yarn

non ca ne me gènes pas cette partie, c’est le node intégré à buster qui est très moyennement packagé.

mais le fait que tu aies un raspberry 2 est plus que probablement la raison pour laquelle ca ne fonctionne pas. sur mes plugins, je supporte plus ces vieilles moutures de raspberry. trop vieux, l’arch est quasi plus gérée, et surtout par nodejs, j’ai laissé tombé, nodesource fournis plus.

retappe la commande curl stp directement en ssh, tu DOIS avoir un retour là dessus, pas normal

tu peux aussi taper ca : arch que je te confirme ou pas si supporté par nodejs 12

La commande curl ne renvoi rien

jeedom@jeedom:~ $ arch
armv7l
jeedom@jeedom:~ $ curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
jeedom@jeedom:~ $

Sur ce site, ils décrivent comment installer nodejs V14 sur un RPI 2, donc ça devrait marcher en V12…

en septembre 2019…

mais tente la 14, tu verras que c’est fort probable que tu aies le même résultat

sinon tente ca :

curl -sL https://deb.nodesource.com/setup_12.x > test.sh && sudo chmod +x test.sh && sudo ./test.sh

edit : j’ai ajouté des sudo au cas ou tu tournerais pas en root

edit : peux tu asusi fournir cette commande : dpkg --print-architecture

jeedom@jeedom:~ $ dpkg --print-architecture
armhf
jeedom@jeedom:~ $ curl -sL https://deb.nodesource.com/setup_12.x > test.sh && sudo chmod +x test.sh && sudo ./test.sh
jeedom@jeedom:~ $

voilà pour moi la raison que tu as un rpi1 dans le package inclu dans buster