Bonjour, j’utilise le plugin enphasesecur depuis un moment et suite à une upgrade debian 11, php 8.3 et jeedom 4.4.3, impossible de lancer le daemon du plugin, j’obtiens l’err :
Erreur sur la fonction deamon_start du plugin : Non-static method enphasesecur::CreaEquip() cannot be called statically
j’ai relancé une install de dépendances, le log enphasesecur_update est clean.
Il semblerait que ce soit une limitation php 8.*
php 7.* semble plus permissif.
Bonsoir,
Oui, c’est php 8 le coupable.
La fonction CreaEquip est déclarée comme cela :
Il suffit d’ajouter static dans sa déclaration.
public static function CreaEquip
Comme vous êtes dans une configuration non supportée, vous devriez pouvoir le faire vous même en attendant que le dev du plugin fasse une passe compatibilité php8 sur son code.
Oui, bizarre, j’ai du PHP 7.4.33 sur ma Debian 11 à jour.
J’ai des plugins incompatibles PHP 8, c’est pour cela que je n’ai pas encore migré en Debian 12 d’ailleurs …
j’ai effectivement remplacé « public function CreaEquip » par « public static function CreaEquip » dans le fichier core/class/enphasesecur.class.php et le plugin semble marcher à nouveau.
J’ai mis les log en DEBUG et je n’ai aucune erreur.
concernant le php8, il est écris sur le site de jeedom dans le CHANGELOG de la 4.4.1 :
Prise en charge de PHP 8.
Vérification de la version minimale du core requise avant installation ou mise à jour d’un plugin.
Ajout d’un bouton Assistance sur la page de configuration des plugins (Création automatique d’une demande d’aide sur le forum).
J’ai donc installé un php 8.1 sur ma debian 11 en parallèle de la 7.4.
Le composer m’a alors remonté le souci suivant :
Problem 1
- symfony/http-client[v7.0.0, …, v7.0.6] require php >=8.2 → your php version (7.4.33) does not satisfy that requirement.
- Root composer.json requires symfony/http-client ^7.0 → satisfiable by symfony/http-client[v7.0.0, …, v7.0.6].
j’ai donc upgrade en 8.3… voila
cddu33 (merci pour ton travail !) plusieurs plugin que j’utilise ont également le meme genre de probleme… je pense que l’adoption de php8 va se faire doucement au fur et à mesure des MAJ de la 4.4
Je me suis aussi retrouvé avec du PHP 8 et + en ayant installé PHP 7.4 avant de faire la mise à jour vers Jeedom 4.4.3…
Côté plugin enphasesecure, le message concernant le manque de static se retrouve aussi sur la function xcron15x → j’ai ajouté le static à la main, et ça semble ok (en attendant une mise à jour offcielle).
J’ai un autre message généré dans le log http à chaque lecture de la passerelle Enphase :
[Wed Apr 10 08:24:34.420231 2024] [php7:warn] [pid 5039] [client 127.0.0.1:34428] PHP Warning: A non-numeric value encountered in /var/www/html/vendor/symfony/expression-language/Node/BinaryNode.php on line 144
Des idées?
Ca n’empêche visiblement pas le fonctionnement du plugin ,mais ça bombarde le log … et risque de masquer des messages + importants…