Demon ESPEasy HS après MàJ Plugin ESPEasy - pb NodeJS v14?

Bonjour,

Aujourd’hui je me suis rendu compte que j’avais pas mal de mises à jour à faire sur mon Jeedom v3…
J’ai donc tout lancé puis terminé par Jeedom.
Depuis ça, le démon ESPEasy refuse de démarrer.

Le log :

[2021-09-04 20:10:12][DEBUG] : Lancement démon espeasy : nice -n 19 nodejs /var/www/html/plugins/espeasy/resources/espeasy.js 192.168.1.13 http://127.0.0.1:80/plugins/espeasy/core/api/jeeEspeasy.php?apikey=urNOjEA4Kkhfm3eV2GEQgQ0cawCGpdYfjUyweANgSxDPVlrW 100
[2021-09-04 20:10:42][ERROR] : Impossible de lancer le démon espeasy, vérifiez le port
[2021-09-04 20:11:14][ERROR] : Attention je pense qu'il y a un soucis avec le démon que j'ai relancé plus de 3 fois consecutivement
[2021-09-04 20:11:14][INFO] : Arrêt du service espeasy
[2021-09-04 20:11:14][INFO] : Lancement du démon espeasy
[2021-09-04 20:11:14][DEBUG] : Lancement démon espeasy : nice -n 19 nodejs /var/www/html/plugins/espeasy/resources/espeasy.js 192.168.1.13 http://127.0.0.1:80/plugins/espeasy/core/api/jeeEspeasy.php?apikey=KTtJbWWGc6B9EAftSrl8vBLg6pHVlh4b 100
[2021-09-04 20:11:44][ERROR] : Impossible de lancer le démon espeasy, vérifiez le port

Jeedom est en 3.3.57, tout est à jour dans le Debian.

Version Debian :
Linux pixie 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux [10.10]

J’ai réinstallé les dépendances, rebooté… rien à faire.
J’ai essayé de réinitialiser la clef API de ESPEasy. Idem.
Le port 8121 n’est pas utilisé par quelqu’un d’autre.

Help !

1 « J'aime »

Pareil j’ai abandonné…

J’ai installé une machine virtuelle avec mosquitto et je passe en mqtt direct !

Ça marche nickel !

(Je débute en mqtt)

Merci pour ta réponse… mais il doit y a voir une solution… ça a l’air de tourner autour de nodejs.

1 « J'aime »

Par ailleurs j’ai pas mal de trucs qui fonctionnent avec ESPEasy… donc faut que ça marche.
Une réinstallation du plugin n’a rien donné.

Bien entendu, restaurer la version précédente de Jeedom n’a rien changé.

J’ai supprimé nodejs et npm. Puis réinstallé les dépendances sans succès.
Voilà le log des dépendances :

Début de l'installation
--2021-09-04 22:52:45--  https://raw.githubusercontent.com/lunarok/jeedom_nodejs/master/nodejs.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.108.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1510 (1.5K) [text/plain]
Saving to: 'dependencies.sh'
0K .                                                     100% 1.50M=0.001s
2021-09-04 22:52:45 (1.50 MB/s) - 'dependencies.sh' saved [1510/1510]
dependencies.sh: 3: [: espeasy: unexpected operator
Nodejs non installé
Hit:1 http://security.debian.org/debian-security buster/updates InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Hit:4 http://phoscon.de/apt/deconz buster 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 1 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 1 not upgraded.
After this operation, 121 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 ... 73684 files and directories currently installed.)
Removing nodejs (14.17.6-deb-1nodesource1) ...
Processing triggers for man-db (2.8.5-2) ...
dependencies.sh: 38: [: x86_64: 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 buster-updates InRelease
Hit:3 http://security.debian.org/debian-security buster/updates InRelease
Hit:4 http://phoscon.de/apt/deconz 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://security.debian.org/debian-security buster/updates InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Hit:4 http://phoscon.de/apt/deconz buster InRelease
Hit:5 https://deb.nodesource.com/node_14.x 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 1 not upgraded.
Need to get 0 B/24.9 MB of archives.
After this operation, 121 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 ... 68753 files and directories currently installed.)
Preparing to unpack .../nodejs_14.17.6-deb-1nodesource1_amd64.deb ...
Unpacking nodejs (14.17.6-deb-1nodesource1) ...
Setting up nodejs (14.17.6-deb-1nodesource1) ...
Processing triggers for man-db (2.8.5-2) ...
dependencies.sh: 1: dependencies.sh: nodejs: not found
Version actuelle :
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
added 48 packages from 58 contributors and audited 48 packages in 1.629s
2 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Fin de l'installation

Un truc étrange au début : ça dit que npm et nodejs ne sont pas installés alors que c’est le cas.
Nodejs : v14.17.6
npm : 6.14.15

Dernière chose : dans le log « ESPEasy-node », j’ai :
nice: « nodejs »: Aucun fichier ou dossier de ce type

Je sèche… @lunarok, si tu passes par là, je serai reconnaissant d’un petit conseil du maître !

1 « J'aime »

Bon, j’ai une piste… la commande lancée dans Jeedom pour démarrer le serveur ESPEasy est :

nice -n 19 nodejs /var/www/html/plugins/espeasy/resources/espeasy.js 192.168.1.13 http://127.0.0.1:80/plugins/espeasy/core/api/jeeEspeasy.php?apikey=** 100

Si je la lance en manuel dans une fenêtre ssh, j’obtiens un truc du style " nodejs: commande introuvable "

Si je remplace « nodejs » par « node » dans la commande, le serveur démarre correctement (dans mon terminal, cependant…).

Il doit donc y avoir un bug dans le code lors du lancement de la commande pour démarrer le serveur.
Mais je ne sais pas quoi modifier… si un spécialiste des plugins passe par là, je peux faire la modif en local dans le bon fichier…

Bon, pseudo-solution trouvée…

« Il y a une erreur dans le code qui lance la commande de création du serveur » (je mets des guillemets car c’est peut-être ma config qui a un souci).

Bref,

Pour lancer le démon, il faut aller faire une modif sur le fichier
/plugins/espeasy/core/class/espeasy.class.php

Changer la ligne 55 et y mettre :

$cmd = 'nice -n 19 node ' . $sensor_path . '/espeasy.js ' . config::byKey('internalAddr') . ' ' . $url . ' ' . $log;

au lieu de :

$cmd = 'nice -n 19 nodejs ' . $sensor_path . '/espeasy.js ' . config::byKey('internalAddr') . ' ' . $url . ' ' . $log;

L’explication, c’est que ‹ nodejs › s’installe sous le nom de ‹ node ›, du coup, la commande de lancement du démon n’est plus juste.

@lunarok : impossible de te joindre pour en parler… j’espère que tu lis encore les posts qui te citent et que tu sauras trouver une solution pour les gens dans le même cas que moi…


[EDIT] : vu dans un autre fil, la ‹ vraie › solution semble être le manque d’un lien symbolique entre node et nodejs…
Il faut donc créer le lien à la main en ssh :

sudo ln -s `which node` `which node`js
4 « J'aime »

Merci Merci :grinning:

Big merci pour la modif !! respect ! ca fonctionne nickel !

Merci pour l’astuce, c’est nickel !

Du fond du cœur : Merci :wave:

De rien… je déduis de ces réponses que je n’étais pas le seul à avoir un souci.

Vu que j’ai fait pas mal de recherche en vain sur le forum pour essayer de résoudre mon problème, c’est étrange que ça ne soit pas plus remonté dans les sujets concernant le plugin ESPEasy…
Faut croire que les grandes douleurs sont muettes :smiley:

1 « J'aime »

Bonjour à tous,

merci à Theduck38, j’ai également le même souci et j’ai bien fait la modif dans le fichier espeasy.class mais … le statut du demon passe bien en « ok » pendant quelques secondes pour repasser en « nok » et toujours pas de détection des esp. Aurais-je passé une étape?

![image|590x241]

merci pour votre aide

(upload://6sappHNAqeKKqmvTqDUCRTbXubh.png)

petite précision, il n’y a pas de message dans le log

en cherchant, voici le « log Espeasy_node » :
Server running
events.js:377
throw er; // Unhandled ‹ error › event
^

Error: listen EADDRNOTAVAIL: address not available 192.168.1.26:8121
at Server.setupListenHandle [as _listen2] (net.js:1303:21)
at listenInCluster (net.js:1368:12)
at doListen (net.js:1505:7)
at processTicksAndRejections (internal/process/task_queues.js:83:21)
Emitted ‹ error › event on Server instance at:
at emitErrorNT (net.js:1347:8)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
code: ‹ EADDRNOTAVAIL ›,
errno: -99,
syscall: ‹ listen ›,
address: ‹ 192.168.1.26 ›,
port: 8121
}

tout ceci en sachent que je suis sous Docker Synology v1.6.2

Hello @Theduck38 merci pour la modif , je suis passé hier d’un pi3 a pi4 et le problème de nodejs est apparu et grâce a ton post j’ai réussi a refaire fonctionné espeasy :smiley: , heureusement que ma domo n’est pas dépendante des gadgets en ESP sinon gros gros soucis de fonctionnement

1 « J'aime »

Hello,

Je ne suis pas un spécialiste, mais on dirait que tu as un pb d’adresse IP inexistante ou de port déjà utilisé.

Dans un autre fil, @olive semble dire que ce n’est qu’un problème de lien à recréer :

@olive, tu confirmes ? Nos soucis viennent du fait qu’un lien déclarant « node=nodejs » a sauté à la mise à jour ?
Parce qu’à la prochaine MàJ, si le pb n’est pas réglé, il va falloir aller refaire la modif dans le code…

Ce que je ne comprends pas, c’est que le script d’installation des dépendances de @lunarok crée le lien uniquement quand c’est sur RPi :
https://raw.githubusercontent.com/lunarok/jeedom_nodejs/master/nodejs.sh
(en revanche, et au passage, il y a une erreur de syntaxe sur dependancy / dependency à la 3ème ligne)

Oui je confirme que la tendance actuel est le manque du lien symbolique nodejs qui doit pointer sur node.
dans certains plugins comme :
plugin-mysensor
plugin-espeasy
plugin-gsh
plugin-rflink
(je ne connais pas la cause mais le remède est souvent efficace)
bonne journée

3 « J'aime »

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