Erreur 500 après installation de mon plugin mais aucune traces

Hello,

Je viens de publier mon plugin qui marche parfaitement sur ma plateforme de dev.
Cependant, à l’installation sur ma prod via le market, le plugin après activation, affiche sur jeedom une page blanche. Idem pour toutes les autres pages jeedom.
J’ai regardé le http.error et rien. Dans les logs de mon plugin en debug, je ne vois que le lancement de install.php qui semble bien se passer vu que qu’il ne fait que créé mes cron et que je les vois par le rescue.

Je n’arrive pas à comprendre.
Quelqu’un aurait une piste sur quoi regarder ? Aucun des fichier de log php n’indique de souci hormis le code 500 quand je requete une page.

Merci d’avance de votre aide.

Bonjour,
En general ca c’est :

  • une erreur de typo dans un fichier php du plugin (en ssh faire php path_vers_fichier pour la voir)
  • l’utilisation de la class object au lieu de jeeObject

Bonjour Loic,

Merci de l’idée mais ca semble pas ca.

root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# find . -name "*.php"
./plugin_info/install.php
./plugin_info/configuration.php
./desktop/modal/modal.Diagral_eOne.php
./desktop/php/Diagral_eOne.php
./3rparty/Diagral-eOne-API-PHP/class/Diagral/UUID.class.php
./3rparty/Diagral-eOne-API-PHP/class/Diagral/Diagral_eOne.class.php
./core/ajax/Diagral_eOne.ajax.php
./core/class/Diagral_eOne.class.php
./core/php/Diagral_eOne.inc.php
root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# php ./plugin_info/install.php
root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# php ./plugin_info/configuration.php
PHP Fatal error:  Uncaught Exception: Fichier introuvable : /var/www/Jeedom/core/php/../../desktop/php/404.php in /var/www/Jeedom/core/php/utils.inc.php:59
Stack trace:
#0 /var/www/Jeedom/plugins/Diagral_eOne/plugin_info/configuration.php(21): include_file('desktop/php', '404.php', 'php')
#1 {main}
  thrown in /var/www/Jeedom/core/php/utils.inc.php on line 59
root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# php ./desktop/modal/modal.Diagral_eOne.php
PHP Fatal error:  Uncaught Error: Call to undefined function isConnect() in /var/www/Jeedom/plugins/Diagral_eOne/desktop/modal/modal.Diagral_eOne.php:19
Stack trace:
#0 {main}
  thrown in /var/www/Jeedom/plugins/Diagral_eOne/desktop/modal/modal.Diagral_eOne.php on line 19
root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# php ./desktop/php/Diagral_eOne.php
PHP Fatal error:  Uncaught Error: Call to undefined function isConnect() in /var/www/Jeedom/plugins/Diagral_eOne/desktop/php/Diagral_eOne.php:2
Stack trace:
#0 {main}
  thrown in /var/www/Jeedom/plugins/Diagral_eOne/desktop/php/Diagral_eOne.php on line 2
root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# php ./3rparty/Diagral-eOne-API-PHP/class/Diagral/UUID.class.php
root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# php ./3rparty/Diagral-eOne-API-PHP/class/Diagral/Diagral_eOne.class.php
root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# php ./core/ajax/Diagral_eOne.ajax.php
{"state":"error","result":"<span id=\"span_errorMessage\">401 - Accès non autorisé<\/span>","code":0}root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# 
root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# php ./core/class/Diagral_eOne.class.php
root@jeedom-master:/var/www/Jeedom/plugins/Diagral_eOne# php ./core/php/Diagral_eOne.inc.php

Les erreurs me semble etre du à la façon de le lancer en CLI non ? genre la fonction isConnect() non défini mais comme c’est une fonction Jeedom et que le reste marche quand j’installe pas mon plugin…

Je me rend compte que si je supprime le fichier Diagral_eOne/core/class/Diagral_eOne.class.php je ne recupere l’acces au Jeedom. Je sais pas si cela veut dire que le probleme est dans ce fichier ?

Ben ça vient du fichier dont tu parle alors. Isconnect c’est normal cette erreur dans ce mode la

Bon petit a petit je m’approche.

Les lignes qui semble poser souci sont :

define('__ROOT__', dirname(dirname(dirname(__FILE__))));
require_once (__ROOT__.'/3rparty/Diagral-eOne-API-PHP/class/Diagral/Diagral_eOne.class.php');

Bizarre car ca marche sur ma Jeedom de dev.
Est-ce que ROOT est réservé par Jeedom ?

Bon en remplacant par cela :

define('__PLGBASE__', __DIR__.'/../../');
require_once (__PLGBASE__.'3rparty/Diagral-eOne-API-PHP/class/Diagral/Diagral_eOne.class.php');

Ca marche.
Merci de ton aide @Loic
Bon weekend

L’installation se passe sans problème, mais quand je sauve mon équipement j’ai le message d’erreur
[2019-09-14 17:41:41][ERROR] : Le fichier de configuration ‹ /var/www/html/plugins/Diagral_eOne/core/class/…/…//core/config/scenarios_0.json › est invalide
A noter que comme j’ai installé la centrale et la box alerte et pilotage hier je n’ai aucun scénario, mais le chemin me semble de toute façon curieux.
Mes groupes et leur noms sont bien remontés mais sur le widget j’ai mise à jour disponible(s) et la roue qui tourne depuis un bon moment.
diagral1
A suivre

Bon l’état s’est bien mis à jour sur le widget mais le plugin me dit que j’ai « 1 mise à jour disponible(s) » alors que l’app Diagral me dit que tout est à jour

Ok je crois avoir compris d’où viens l’erreur
[2019-09-14 17:41:41][ERROR] : Le fichier de configuration ‘/var/www/html/plugins/Diagral_eOne/core/class/…/…//core/config/scenarios_0.json’ est invalide
c’est le problème dont tu as parlé avec Loïc dans ce fil.
Je pensais que comme la correction était déjà dans ta branche develop sur Github, j’allais l’avoir en installant la version beta depuis le market, mais en regardant le fichier de la classe sur mon Jeedom, ce n’est pas la cas donc la nouvelle version ne sera publiée sur le market que demain.
A savoir quand tu pousse une correction sur ton Github, tu peux si tu veux la rendre immédiatement disponible sur le market en cliquant sur le bouton « Test/Synchroniser » sur la ligne beta (comme tu as fait lors de la publication) si tu ne le fais pas elle n’est disponible que le lendemain.
Pour info, comme je n’ai aucun scénario mon fichier /core/config/scenarios_0.json contient juste

{
    "lastModified": "2019-09-14 17:41:03",
    "scenarios": null
}

J’ai pourtant bien fait le Test/Sync et la dernière installation que j’ai faite c’est fait correctement avec la dernière version.

C’est bizarre.

Pour la 1 mise à jour, ça dépend de la version de ton app mobile. Tu es sur IPhone ou IOS ? En quelle version ?
Je me suis rendu compte que quand ta version d’app est pas la dernière, il propose pas la maj à priori. En tout cas c’est ça sur IPhone.

Je suis sur iphone
IOS 12.4.1
app mobile jeedom 1.3.4
app e-ONE 1.10.1

Pour la maj version Diagral :

Bizarre je suis dans la même version que toi.
Alors ce que j’ai déjà eu c’est que l’application Diagral ne me mettait pas systématiquement l’update au login mais je l’avais au moins une fois sur 3.

Tu peux mettre ce fichier dans le repertoire 3rdparty du plugin et le lancer manuellement : https://gist.githubusercontent.com/mguyard/1bf338b26774bd3c1d1149654009ce8d/raw/b6fc17a463c24d2f62a321b0b3650f397079e69e/get_infos.php ?
Ensuite envoi moi le contenu du fichier verbose_content.log (créé par le script) par PM.

Il devrait contenir le resultat JSON d’une requete POST https://appv3.tt-monitor.com/topaze/configuration/getFirmwareUpdates qui indique le totalUpdates

Pour le JSON scénario :

Je pense avoir trouvé le souci pour ca. En effet, le code part du principe qu’il existe au moins 1 scenario. A tord.
Je viens de pousser une MAJ qui devrais le resoudre. Donc met à jour, force le refresh du JSON scenario (cmd) et donne moi le contenu de ton json scenario mis à jour.

Je te propose de poursuivre ici pour ne pas HS ce sujet : Test du plugin Diagral_eOne - Plugins Tiers - Communauté Jeedom