Plugin RFlink ne fonctionne plus

Bonsoir, et toutes mes excuses pour la confusion que j’ai pu commettre. Tout cela vient du fait que pour tenter de résoudre mon problème j’ai créé un Jeedom sur un Raspberry de Test… qui effectivement n’a pas le même OS que le Jeedom d’utilistation, et que les deux comportements après application des modifications indiquées m’ont semblés identiques. Voici des les logs du Raspberry de test :

[2022-02-21 21:16:30][INFO] : Installation des dépéndances nodejs
[2022-02-21 21:18:24][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consécutivement
[2022-02-21 21:18:24][INFO] : Arrêt du service rflink
[2022-02-21 21:18:24][INFO] : Lancement du démon rflink
[2022-02-21 21:18:24][DEBUG] : Lancement démon rflink : nice -n 19 nodejs /var/www/html/plugins/rflink/resources/rflink.js http://127.0.0.1:80/plugins/rflink/core/api/rflink.php?apikey=ZaR7iZng7uqnmHahqEd3kfvFMGfeRMJFJGGuEaQP1nGK2Pjl6nhB4d5ScwsaFsAI /dev/ttyACM0 none debug
[2022-02-21 21:18:24][INFO] : Démon rflink lancé
[2022-02-21 21:18:29][INFO] : 10;STATUS;


Début de l'installation
--2022-02-21 21:16:30--  https://raw.githubusercontent.com/lunarok/jeedom_nodejs/master/nodejs.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8003::154, 2606:50c0:8000::154, 2606:50c0:8001::154, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1552 (1.5K) [text/plain]
Saving to: 'dependencies.sh'

     0K .                                                     100% 6.77M=0s

2022-02-21 21:16:30 (6.77 MB/s) - 'dependencies.sh' saved [1552/1552]

dependencies.sh: 3: [: rflink: unexpected operator
Version actuelle : 14
Hit:1 http://archive.raspberrypi.org/debian buster InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian-security buster/updates InRelease
Hit:4 http://deb.debian.org/debian buster-updates InRelease
Hit:5 https://deb.nodesource.com/node_14.x buster InRelease
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
lsb-release is already the newest version (10.2019051400).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
dependencies.sh: 29: dependencies.sh: [[: not found
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:
  nodejs*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 122 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 ... 63737 files and directories currently installed.)
Removing nodejs (14.19.0-deb-1nodesource1) ...
Processing triggers for man-db (2.8.5-2) ...
dependencies.sh: 38: [: aarch64: unexpected operator
Utilisation du dépot officiel

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


## Populating apt-get cache...

+ apt-get update
Hit:1 http://deb.debian.org/debian buster InRelease
Hit:2 http://deb.debian.org/debian-security buster/updates InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Hit:4 http://archive.raspberrypi.org/debian buster InRelease
Hit:5 https://deb.nodesource.com/node_14.x buster InRelease
Reading package lists...

## Confirming "buster" is supported...

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

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

+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | tee /usr/share/keyrings/nodesource.gpg >/dev/null

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

+ echo 'deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_14.x buster main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_14.x buster main' >> /etc/apt/sources.list.d/nodesource.list

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

+ apt-get update
Hit:1 http://deb.debian.org/debian buster InRelease
Hit:2 http://deb.debian.org/debian-security buster/updates InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Hit:4 https://deb.nodesource.com/node_14.x buster InRelease
Hit:5 http://archive.raspberrypi.org/debian buster InRelease
Reading package lists...

## Run `sudo apt-get install -y nodejs` to install Node.js 14.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 | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
     echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] 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


Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
  nodejs
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, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/24.8 MB of archives.
After this operation, 122 MB of additional disk space will be used.
Selecting previously unselected package nodejs.
(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 ... 58775 files and directories currently installed.)
Preparing to unpack .../nodejs_14.19.0-deb-1nodesource1_arm64.deb ...
Unpacking nodejs (14.19.0-deb-1nodesource1) ...
Setting up nodejs (14.19.0-deb-1nodesource1) ...
Processing triggers for man-db (2.8.5-2) ...
ln: failed to create symbolic link '/usr/bin/nodejs': File exists
Version actuelle : v14.19.0
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

> @serialport/bindings-cpp@10.6.3 install /var/www/html/plugins/rflink/resources/node_modules/@serialport/bindings-cpp
> node-gyp-build

added 70 packages from 163 contributors and audited 70 packages in 8.218s

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

found 0 vulnerabilities

Fin de l'installation


Mon Feb 21 2022 21:18:24 GMT+0100 (Central European Standard Time) - Jeedom url : http://127.0.0.1:80/plugins/rflink/core/api/rflink.php?apikey=ZaR7iZng7uqnmHahqEd3kfvFMGfeRMJFJGGuEaQP1nGK2Pjl6nhB4d5ScwsaFsAI, gwAddress : /dev/ttyACM0
/var/www/html/plugins/rflink/resources/rflink.js:92
const parser = new parsers.Readline({
                           ^

TypeError: Cannot read property 'Readline' of undefined
    at launchGateway (/var/www/html/plugins/rflink/resources/rflink.js:92:28)
    at Object.<anonymous> (/var/www/html/plugins/rflink/resources/rflink.js:178:1)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)
    at internal/main/run_main_module.js:17:47

Bonjour je pense que Lunarok doit mettre a jour le plugin pour regler le problème.

chez moi le plugin rflink fonctionne, mais il y a un certain temps ou on a été obligé de faire un lien symbolique entre node et nodejs…(bon, j’ai suivi les indications, parce que j’y connais pas grand chose) et c’est peut être plus d’actualité tout change si vite.
https://community.jeedom.com/t/demon-espeasy-hs-apres-maj-plugin-espeasy-pb-nodejs-v14/67030

Bonjour,

un retour de mes recherches.
Je précise que c’est ma première approche avec npm, je n’y ai jamais touché, donc prennez mes infos comme ce qu’elles sont.
Voici un lien pour comprendre le pourquoi du problème (rapide):

En gros, à l’instant donné, une installation de dépendance via npm d’un jour à l’autre, on a pas les même packages
Comme sous Linux en fait, il prend la version la plus à jour dans le repo quand on upgrade.

Du coup ca pose problème, on a pas la même installation avec les mêmes versions d’un jour à l’autre.

Le fichier en question qui installe ce qu’il faut se trouve ici : /plugins/rflink/resources/package.json

Le script d’installation des dépendances dans jeedom va exécuter un script shell .sh, et à un moment, faire un npm install.
C’est la qu’il va lire le contenu du fichier package.json, et installer tout ce qu’il faut.

voici son contenu après une installation fraiche du plugin rflink :

{
  "name": "JeedomRflink",
  "version": "0.0.1",
  "description": "Node to use Rflink with Jeedom",
  "license": "GPL-3.0",
  "repository": "npm/npm",
  "dependencies": {
    "request": "latest",
    "telnet-client": "latest",
    "serialport": "latest"
  }
}

Apres diverses tentatives, j’ai isolé la dépendance serialport qui posait problème (request et telnet-client sont ok en latest)
J’ai pris un backup à moi au moment ou ce plugin fonctionnai, et regardé le contenu de cette librairie pour avoir la version qui fonctionnait.
On peut la trouver dans le fichier (même démarche pour chaque librairie, c’est pas mal en fait^^):
/plugins/rflink/resources/node_modules/serialport/package.json

Chez moi c’était la version 9.2.0.
Voici le contenu du fichier package.json après modification (via système/éditeur de fichier intégré de jeedom, ou via ssh, c’est pareil) :

{
  "name": "JeedomRflink",
  "version": "0.0.1",
  "description": "Node to use Rflink with Jeedom",
  "license": "GPL-3.0",
  "repository": "npm/npm",
  "dependencies": {
    "request": "latest",
    "telnet-client": "latest",
    "serialport": "~9.2.0"
  }
}

On retourne dans les plugin jeedom, et on relance l’installation des dépendance.
Et ca fonctionne ! Le démon est en démarré.

j’espère que ce sera le coup aussi chez vous.

Donc je pense qu’il y a un fix à faire coté plugin rflink, sinon faire la manip expliqué ici.

6 « J'aime »

Bonjour Mouse, et merci pour ces indications.
J’ai essayé de modifier serialport dans le fichier package.json en mettant ~9.2.0 au lieu de latest,
Mais rien à faire, que ce soit sur mon Raspberry en service aussi bien que sur mon Raspberry de test.
Mais il me semble en effet que le serial port est en cause car aucune diode (transmit ou receive) de l’Arduino Méga ne s’allume pendant l’installation des dépendances.

Le démon démarre quand même ?

MERCI!!! MOUSSE chez moi sa marche tu vien de me sauver la vie.

Je vien de test avec la version 9.2.8 et c’est mieux c’est plus réactif.

Tu a bien mis comme sa inazuma

{
  "name": "JeedomRflink",
  "version": "0.0.1",
  "description": "Node to use Rflink with Jeedom",
  "license": "GPL-3.0",
  "repository": "npm/npm",
  "dependencies": {
    "request": "latest",
    "serialport": "~9.2.8",
    "telnet-client": "latest"
  }
}
2 « J'aime »

Merci Corv45, j’ai bien mis exactement comme indiqué, et ça fonctionne !
Super !

Je suis enfin sauvé !

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.