Maxcube et Passage V4

Bonjour à tous,

J’utilise ce plugin depuis quelques années, tout fonctionne très bien mais je souhaiterais passer la version V4 (update que je repousse depuis lontemps). Il y a apparemment une modification du code à faire (Object:: => JeeObject::slight_smile: mais dans quel fichier?
Faut il desintaller le plug in pour le réinstaller une fois la modification effectuée?

Merci d’avance pour votre aide.

@+ Grom

Salut

Et donc tu vas effacer le fichier avec la modification pour réinstaller la version non modifiée ? C’est quoi le but de la manœuvre ?

Antoine

effectivement, c’est un non sens…

C’est dans le fichier plugins/maxcube/desktop/php/maxcube.php ligne 90
image

Si vous installez la version beta du plugin, le changement d’object en jeeObject est déjà fait.

Hello la communauté,

De mon coté, j’ai eu le même soucis.
J’ai donc installé la béta du plugin mais depuis, impossible de réinstaller les dépendances.

Je signale au passage que depuis que mon Jeedom tourne sous Buster, je n’ai jamais retrouvé la stabilité du plugin Maxcube que j’avais avant sous Stretch.
Je suis bloqué avec ma domotique radiateur à l’arrêt (+ de 30 composants Maxcube).

Voici ma config :
Jeedom v4.3.21 sous Buster
nodejs v18.18.2
node v18.18.2
npm v3.8.1

Le log maxupdate m’indique plusieurs erreurs de type « npm ERR ! »

Quequ’un aurait-il des conseils pour que je puisse retrouver une config fonctionnelle et stable ?
Effacer ou modifier un fichier de config par exemple ou revoir les versions de node ou npm peut-être…
Je suis à court d’idée et j’ai peur de faire plus de mal que de bien en bidouillant un peu partout !
Grand merci.

Votre version de npm semble très ancienne. C’est peut-être la source des npm ERR :thinking:
Essayez:
image
Afin d’installer la dernière dispo:
image

En effet, bonne remarque !
J’ai réalisé la mise à jour de npm avec succès.

Hélas, aucune amélioration, les dépendances ne veulent plus s’installer (bloque à 50%) :pensive:

Entre temps, j’ai aussi essayé de réinstaller le plugin beta d’origine et j’ai aussi plein d’erreurs de npm.

Mon fork de Maxcube est aussi en panne chez moi depuis Jeedom 4.3.21 qui a installé la version 18 de node.

J’essaye de regarder. C’est mes premiers pas en nodejs …
J’arrive à installer les dépendances mais le daemon ne se lance pas encore.

Le fait que l’on soit tous les 2 avec une version 18 de node m’a mis la puce à l’oreille !

J’ai donc désinstallé le plugin Maxcube et tenté un downgrade de node en installant le module suivant : npm install -g n
Ensuite il suffit d’utiliser la commande : n 14.21.3 afin d’installer et utiliser une ancienne release de node avec le npm associé.
J’ai choisi cette version (v14, code Fermium) car conseillée sur community pour tous les nouveaux développements, liste des anciennes releases dans le lien ci-dessous pour tester et c’était fonctionnel du premier coup.
https://nodejs.org/en/about/previous-releases

  • Réinstallation du plugin en stable (avec la modif du jeeObject à la main)
  • Installation des dépendances → OK
  • Lancement du démon → OK

Par contre, impossible d’ajouter un nouveau composant composant maxcube → 500:internal server error
J’ai donc appliqué le correctif suivant indiqué dans un autre poste et plus d’erreur :

En commentant les lignes suivantes dans le fichier /var/www/html/plugins/maxcube/core/class/maxcube.class.php, je n’ai plus d’erreur.
115: $cmd->setEventOnly(1);
138: $cmd->setEventOnly(0);
167: $cmd->setEventOnly(1);
197: $cmd->setEventOnly(1);
226: $cmd->setEventOnly(1);
251: $cmd->setEventOnly(1);
275: $cmd->setEventOnly(0);

Pour info, j’ai essayé les mêmes manips avec le plugin maxcube en version béta mais impossible d’installer les dépendances.

Par contre, nouveau bug malgré le bon fonctionnement du plugin maxcube → j’ai régulièrement des erreurs « JeeEvent, Vous n’êtes pas autorisé à effectuer cette action, IP:(IP de mon Jeedom) »
Si j’arrête le démon, les erreurs stoppent, si je relance le démon, les erreurs reviennent.
Je pense que celà doit être lié au passage à Jeedom v4.2 ou supérieur avec les mises à jour importantes de sécurité alors que le plugin n’a pas été modifié en conséquence.
Quid des modifications à réaliser ?

Pour moi, node v18 est obligatoire à cause des autres plugins qui utilisent aussi nodejs.

  • Il n’y a qu’une seule version de node possible par machine ( Pi, Smart, VM, NUC).
  • A chaque MAJ de Jeedom, la version 18 sera réinstallée.
  • Jeedom et les devs de plugin se sont concertés avant de choisir cette version. Au départ, c’était même une version 20 qui était prévue.
    Le dev de Maxcube étant maintenant passé sur HA. Je ne pense pas qu’il y aura une évolution venant de lui.
    Dans son script d’install, si node n’est pas installé, il installe une version 8 de node. :stuck_out_tongue_closed_eyes:

Je suis en version 10.24.0 sur vm
Pas de soucis jusqu’à present

++ /usr/bin/node -v

  • new=v10.24.0
  • echo ‹ new version installed: v10.24.0 ›
    new version installed: v10.24.0

De mémoire installation stable, beta et restable et quelques modifications
maxcube_update.txt (10,1 Ko)

Pas de souci avec node 10.
Avec Jeedom 4.3.20, j’utilisais node v16.
Le souci est avec node v18 installé par Jeedom 4.3.21

Je viens de faire l’installation
Ça a bien mis le v18

Je viens de changer la consigne via thermostat et idem via jeedom pour l’instant ok
Édit :
Remonté de consigne aussi
Re édit arrêt plug et relance et là la cata

J’ai remis backup
Ça ne change pas le Node v18
Mise a jour dépendance (récréation json)
Arrêt démon et relance
Ok
Et reupdate core
Arrêt démon et relance
Pour l’instant ça tient
A suivre les maj

J’ai finalement réussi à installer le plugin.

  • Il faut installer la version stable puis la beta. La stable n’est pas correcte pour Jeeedom 4.4 et la beta est incomplète.
    Dans la beta, le fichier package.json permettant de construire le daemon node est absent. Il y a un fichier package-lock.json reste d’un build chez le dev qu’il faut aussi supprimer.

  • Dans le répertoire plugins/maxcube/resources, il faut supprimer (si ils existent) les répertoires npm-cache, maxcube.js/node-modules et surtout le fichier maxcube.js/package-lock.json

  • J’ai laissé le système installer les dépendances seul. ( Démarrage de l’install chaque 5 minutes tant que NOK )

Log de l'install des dépendances maxcube_update
+++ dirname /var/www/html/plugins/maxcube/core/class/../../resources/install_maxcube.sh
++ cd /var/www/html/plugins/maxcube/core/class/../../resources
++ pwd
+ ME=/var/www/html/plugins/maxcube/resources
+ touch /tmp/maxcube_in_progress
+ echo 0
+ echo 'Installing maxcube dependencies'
Installing maxcube dependencies
+ sudo apt-get install -y git
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
git est déjà la version la plus récente (1:2.30.2-1+deb11u2).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
+ echo 10
++ which node
+ BIN=/usr/bin/node
+ '[' /usr/bin/node = '' ']'
+ '[' /usr/bin/node = '' ']'
++ /usr/bin/node -v
+ actual=v18.19.0
++ /usr/bin/node -v
++ sed s#v##
++ sed 's#[.].*##'
+ major=18
+ echo 'Current version: v18.19.0 (major 18)'
Current version: v18.19.0 (major 18)
+ echo 30
++ arch
+ '[' x86_64 == armv6l -a 18 -lt 5 ']'
+ '[' 18 -lt 8 ']'
++ which node
+ BIN=/usr/bin/node
+ '[' /usr/bin/node = '' ']'
++ /usr/bin/node -v
+ new=v18.19.0
+ echo 'new version installed: v18.19.0'
new version installed: v18.19.0
+ echo 50
+ git --version
git version 2.30.2
+ cd /var/www/html/plugins/maxcube/resources/maxcube.js
+ sudo rm -rf node_modules
+ echo 'cache = "/var/www/html/plugins/maxcube/resources/npm-cache"'
+ npm i
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.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
added 113 packages, and audited 114 packages in 30s
12 packages are looking for funding
run `npm fund` for details
2 moderate severity vulnerabilities
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
+ echo 100
+ rm /tmp/maxcube_in_progress
  • Après la correction d’une erreur signalée dans le log maxcube_debug que j’ai toujours eue, le daemon démarre enfin …

Il reste des setEventOnly à supprimer dans la classe maxcube. Ils provoquent des erreurs 500 à la sauvegarde des nouveaux équipements.

3 « J'aime »

Je vais suivre ces instructions et voir ce que ça donne de mon côté.
C’est vrai que que si c’est node 18 est la base de travail pour jeedom et ses plugins, il n’est pas judicieux de downgrader node juste pour faire tourner le plugin maxcube…
Je testerai les manips d’ici demain, merci pour le travail et les tests réalisés.

Bonjour,
Le dev du plugin m’a donné accès au repo sur github. Github plugin maxcube
J’y ai fait les corrections de setEventOnly et la clé API du plugin au lieu de celle du core.
Je vais tester mes modifs en installant le plugin avec la méthode fichier.

Il faudra ensuite attendre le passage du robot de Jeedom pour la diffusion via le market la nuit prochaine.
Il n’y aura plus qu’une seule version: stable
La beta sera identique.

2 « J'aime »

La clé API maxcube est-elle activée dans Configuration Onglet API ?


Activez là et redémarrez le daemon.

Voir Actualités du plugin maxcube

Merci pour la mise en ligne de l’update.
Pour ma part, après installation de cette nouvelle version, les dépendances ne s’installent toujours pas.
J’hésite à supprimer le plugin Maxcube et le réinstaller car c’est peut-être ma config qui n’est pas clean mais je risque de perdre l’ensemble de mes équipements Maxcube…

Bonjour,

Il me faut le log maxcube_update