Erreur connexion gateway

Bonjour à tous.
Depuis aujourd’hui, je ne peux plus connecter le plugin Mysensors à la gateway MySensors après avoir débrancher temporairement la liaison USB.
J’obtiens le message d’erreur suivant en lançant le démon :

*Fri Mar 04 2022 17:25:02 GMT+0100 (heure normale d’Europe centrale) - Jeedom url : http://127.0.0.1:80/plugins/mySensors/core/api/jeeSensors.php?apikey=XXXXXXXXXXXXXXXX&gateway=master, gwAddress : /dev/ttyACM0
Connection type serial
/var/www/html/plugins/mySensors/resources/mysensors.js:230
	gw = new SerialPort(gwAddress);
	     ^

TypeError: SerialPort is not a constructor
    at launchGateway (/var/www/html/plugins/mySensors/resources/mysensors.js:230:7)
    at Object.<anonymous> (/var/www/html/plugins/mySensors/resources/mysensors.js:306: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
*

Puis le démon refait une tentative quelques minutes après et retombe tout de suite en Nok.

J’ai relancer les dépendances et c’est toujours pareil.

Je joins le log des dépendances au besoin.
mySensors_dep.txt (7,9 Ko)

Quelqu’un a-t-il eu ce problème, et avez vous une idée pour résoudre le pb.
Merci d’avance pour votre aide.

Bonsoir EtienneM

https://nsm09.casimages.com/img/2022/03/04//22030408205823870817818663.png

oui même problème, je démare péniblement avec le plugin.

log de Mysensors_node

Fri Mar 04 2022 18:14:31 GMT+0100 (Central European Standard Time) - Jeedom url : http://127.0.0.1:80/plugins/mySensors/core/api/jeeSensors.php?apikey=61RTB1N8A5yrbgFP38I5OFryxva0idVyDhMyDqifKSnu1sl6tbvmZjgPH4swB0Ii&gateway=master, gwAddress : /dev/ttyACM0
Connection type serial
/var/www/html/plugins/mySensors/resources/mysensors.js:230
gw = new SerialPort(gwAddress);
^
TypeError: SerialPort is not a constructor
at launchGateway (/var/www/html/plugins/mySensors/resources/mysensors.js:230:7)
at Object. (/var/www/html/plugins/mySensors/resources/mysensors.js:306: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
Fri Mar 04 2022 18:15:45 GMT+0100 (Central European Standard Time) - Jeedom url : http://127.0.0.1:80/plugins/mySensors/core/api/jeeSensors.php?apikey=61RTB1N8A5yrbgFP38I5OFryxva0idVyDhMyDqifKSnu1sl6tbvmZjgPH4swB0Ii&gateway=master, gwAddress : /dev/ttyACM0
Connection type serial
/var/www/html/plugins/mySensors/resources/mysensors.js:230
gw = new SerialPort(gwAddress);
^

la le Log mysensors_dep

D?paquetage de nodejs (14.19.0-deb-1nodesource1) ...
Param?trage de nodejs (14.19.0-deb-1nodesource1) ...
Traitement des actions diff?r?es (<< triggers >>) pour man-db (2.8.5-2) ...
ln: impossible de cr?er le lien symbolique '/usr/bin/nodejs': Le fichier existe
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/mySensors/resources/node_modules/@serialport/bindings-cpp
> node-gyp-build
added 66 packages from 146 contributors and audited 66 packages in 12.924s

14 packages are looking for funding
  run `npm fund` for details
found 0 vulnerabilities
Fin de l'installation

pour info : sur une base Armbian/odroidC2

des liens

Pour Info

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

donc j’ai suprimer le plugin Mysensors et installer JeeMysensors, et la tout est revenue :slight_smile:

Bonsoir JeeLet,
Merci pour l’info, mais j’ai essayé JeeMySensors et la gestion des « capteurs » me parait plus compliquée.
En effet, lors de mon essai rapide, un capteur apparait sous plusieurs objets (ex : capteur temp avec niveau batt, on trouve 3 objets, un pour l’identité du capteur, un pour la temp et un pour la batt !). De plus, j’ai un historique depuis décembre 2018 pour l’ensemble de mes capteurs MySensors, donc dur dur de changer.

Je garde cependant l’option sous le coude, si il n’y a pas d’autre infos sur ce pb.

Êtes-vous bien sûr que ttyACM0 est le bon port ?

sur les miens c’est ttyUSB0

et ttyACM0 c’est chez moi le port pour mon rflink

j’ai le souvenir un peu ancien de mes premières connexions de gateway

Sur mon Jeedom, ttyUSB0 est la Zigate, ttyUSB1 le RFLink et ttyACM0 a toujours été MySensors.

Merci quand même pour l’info.

1 « J'aime »

arf too bad

si ça peut aider voila ce que j’ai dans mon fichier de dependances un peu ancien


Unpacking nodejs (12.20.2-1nodesource1) ...
Setting up nodejs (12.20.2-1nodesource1) ...
Processing triggers for man-db (2.8.5-2) ...
Version actuelle : v12.20.2
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
> @serialport/bindings@9.0.4 install /var/www/html/plugins/mySensors/resources/node_modules/@serialport/bindings
> prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
prebuild-install WARN install No prebuilt binaries found (target=12.20.2 runtime=node arch=arm libc= platform=linux)
make: Entering directory '/var/www/html/plugins/mySensors/resources/node_modules/@serialport/bindings/build'
……..

CXX(target) Release/obj.target/bindings/src/poller.o
CXX(target) Release/obj.target/bindings/src/serialport_linux.o
SOLINK_MODULE(target) Release/obj.target/bindings.node
COPY Release/bindings.node
make: Leaving directory '/var/www/html/plugins/mySensors/resources/node_modules/@serialport/bindings/build'
> serialport@9.0.6 postinstall /var/www/html/plugins/mySensors/resources/node_modules/serialport
> node thank-you.js
e[96me[1mThank you for using serialport!e[96me[1m
e[0me[96mIf you rely on this package, please consider supporting our open collective:e[22me[39m

Bon en cherchant je pense que votre probleme
c’est que les dependances installent serialports version 10
alors que le code du plugin est compatible version 9 (je crois)

il y a un breaking change sur le constructeur’ c’est documenté ici: Upgrade Guide | Node SerialPort


has changed to;

new SerialPort({ path: '/dev/port', baudRate: 9600 })

soit vous vous debrouilez pour revenir à la version 9

soit vous essayez de faire les changements dans https://gitlab.com/lunarok/jeedom_mysensors/-/blob/master/node/mysensors.js

c’est vers la ligne 555


		var serialPort = require("serialport");
		var SerialPort = require('serialport').SerialPort;
		gw = new SerialPort(gwAddress, { baudrate: gwBaud });

Bonjour Etienne, me voilà rassuré, je ne suis pas tout seul.

Sans aucune raison, je me suis réveillé hier avec exactement le même soucis et à lire les réponses que vous avez reçu, j’imagine que votre problème reste entier.

Bonjour, avec les indications de hlehoux et mon problème avec RFLink, j’ai trouvé la solution.

(voir Plugin RFlink ne fonctionne plus)

Il faut forcé les dépendances à utiliser une version 9.2.x de serialport en modifiant le fichier /plugins/mySensors/resources/package.json et remplacer « latest » par « ~9.2.0 » dans la ligne serialport comme sur la copie d’écran ci-dessous :

image

Puis relancer les dépendances et relancer le démon si besoin.
Depuis j’ai retrouvé les infos de mes capteurs !

Nota : pour éditer le fichier il faut utiliser Réglages/Système/Editeur de fichier

Merci à tous

4 « J'aime »

Yo

oui c’est impec , un big merci
( @EtienneM bien le Nota, c de l’info complète :slight_smile: )

2 « J'aime »

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