Maxcube et Passage V4

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

Bonjour,
En effet, j’ai zappé de joindre le log…
maxcube_update.txt (16,5 Ko)

Merci,
Il reste des traces de l’ancienne installation de node.
Il faudrait:

  • Désactiver l’installation automatique des dépendances
  • Faire du ménage dans la plugin en supprimant les fichiers/répertoires:
    plugins/maxcube/resources/npm-cache
    plugins/maxcube/resources/maxcube.js/package-lock.json
    plugins/maxcube/resources/maxcube.js/node_modules
  • Lancer les dépendances
  • Fournir le log maxcube_update

Bien vu !
J’ai réalisé les opérations demandées, les dépendances se sont bien installées du premier coup et le démon s’est lancé.
J’ai tenté un reboot Jeedom, le plugin a correctement redémarré.
La conf est stable depuis ce midi, aucun message d’erreur.
maxcube_update_2.txt (2,2 Ko)

Merci encore pour le travail apporté et les conseils prodigués.
Ma conf est enfin de nouveau fonctionnelle, stable et à jour :grinning:

Bonjour les amis, un grand merci pour ces modification. J’ai une question :slight_smile:

Je n’ai pas de soucis particulié, j’avais fait les modification en son temps et tout roule. Mais j’ai une notification de mise a jours Maxcube.

Si je la fait pour passer a ta version je risque que ça déconne ou pas ? En hiver je déteste toucher à ça ^^

Merci

Si il fonctionne, ne mettez pas à jour le plugin.
Il n’y a aucune modification dans son fonctionnement.
C’est juste pour corriger son installation comme signalé par @Grom68 dans le 1er post.

Si le signalement de cette mise à jour sur le dashboard vous gêne, dans le « Centre de mise à jour », cochez la case « Ne pas mettre à jour » de la ligne du plugin et sauvegardez cette modif.

1 « J'aime »

J’ajoute le nettoyage fait manuellement dans la procédure d’installation du plugin.
Il y aura une version cette nuit. Il ne sera pas nécessaire pour vous de l’installer.

Dernier petit soucis, toujours depuis Jeedom V4 car je n’avais pas ce problème en V3 : il s’agit cette fois, d’un problème fonctionnel.
Impossible de rajouter un nouveau composant Maxcube.

Procédure habituelle :

  • couper le démon → OK
  • ajouter le composant via l’appli MAX! → OK
  • redémarrer le démon → OK
  • ajouter un nouvel équipement dans le plugin Jeedom → OK
  • configurer le nouvel équipement → ECHEC
    Dans la liste déroulante des composants Maxcube remontée par le cube, les nouveaux composants apparaissent en Undefined dans une pièces nommée aussi Undefined.
    Si je sélectionne quand même un objet Undefined, la liste des commandes est vide, l’objet Maxcube n’est pas reconnu.

Exemple ci-dessous avec l’ajout d’un thermostat radiateur et un contacteur de fenetre.

J’ai redémarrer Jeedom et le cube → pareil

Vous avez encore des composants Maxcube à intégrer dans Jeedom? Il y a bien longtemps que je n’en ai plus à ajouter. :wink:
Pouvez-vous SVP me fournir (en MP si confidentiel) le résultat du clic sur: image dans la configuration du plugin.
C’est ce json qui est utilisé pour construire la liste des objets Maxcube.