Plugin Espeasy toujours pb sur mise à jour

Bonjour,

depuis au moins 2 ans je rencontre des pbs lors de la montée de version du plugin Espeasy.

En effet une fois la maj de faite je rencontre l’erreur suivante dans la log :

`Tue May 17 2022 22:24:33 GMT+0200 (Central European Summer Time)Got response Value: 200
/var/www/html/plugins/espeasy/resources/espeasy.js:12
    var decodeUrl = decodeURIComponent(req.url).replace(/[/]/g,"");
                    ^

URIError: URI malformed
    at decodeURIComponent (<anonymous>)
    at Server.answer (/var/www/html/plugins/espeasy/resources/espeasy.js:12:21)
    at Server.emit (events.js:400:28)
    at parserOnIncoming (_http_server.js:900:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:127:17)`

Sur un exemple d’utilisation, pas d’accent sur le nom du composant ni d’espace et coté publish gateay :

device=%sysname%&taskid=%id%&cmd=%valname%&value=%value%device=%

Tout fonctionnait parfaitement jusqu’à il y a 2 ans mais à chaque maj je DOIS corriger / modifier l’implémentation sur espeasy.js afin d’appliquer l’ancienne partie de code :

    var decodeUrl = decodeURIComponent(req.url).replace(/[/]/g,"");
    if (loglevel <= 200) {console.log("We have got a request for " + decodeUrl + " from " + ipString);} // INFO
    urlj = urlJeedom + "&" + decodeUrl+ "&ip=" + ipString;

par :

 urlj = urlJeedom + "&" + req.url.replace("/", "") + "&ip=" + ipString;

Ainsi j’ai la remontée d’information de mes devices.

Par contre aucune explication du pourquoi cela ne fonctionne pas avec le code original du plugin.

Mon contexte de fonctionnement : Debian 10, NodeJs en 14.19.3

Merci pour votre aide

Bonjour,

pour ma part je n’ai pas de probleme. Mais qq pistes:
Bien qu’espeasy refuse les espaces/caractère spé dans les noms des devices/value, j’avais réussi a mettre des espaces non intentionnellement en faisant des copier-coller des noms de device => Problème de remonté d’info dans Jdom.
Ca le fait avec tous tes espeasy ?

Au temps pour moi.

Merci pour ton retour car j’ai fait le tour de quelques esp et en général ça fonctionne, je me suis donc focusé sur un qui dysfonctionnait et j’ai trouvé une erreur sur controllerPublish (celui cité ci dessus) où j’avais un manque en fin de chaine qui est celle-ci ailleurs :

device=%sysname%&taskid=%id%&cmd=%valname%&value=%value%

Certainement un remplacement mal réalisé par moi avec des 2 mains gauches et mon cerveau de blond !

En tout cas un grand merci, c’est juste étonnant qu’avant il n’y avait pas de dysfonctionnement ce qui oriente plus vers un problème de nouvelle version que de paramétrage !

Pour information j’ai trouvé ça grace à l’affichage dans mon code de l’erreur et de l’url via la modification d’un bout de code dans espeasy.js en remplaçant ça :

 var decodeUrl = decodeURIComponent(req.url).replace(/[/]/g,"");

Par ça :

 var decodeUrl = "";

        try {
          decodeUrl = decodeURIComponent(req.url).replace(/[/]/g,"");
        } catch(errorexception) {
                console.error(errorexception);
                console.error(req.url);
        }

Si ça peut aider d’autres personnes à résoudre le soucis !

Merci encore

Daniel

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.