Tuto : créer une page météo sur Jeedom Connect

D’après ce que je vois, en ligne 2 et 13 supprimes les balises commentaires /* */

En effet je n’ai pas mis le log car il est désespérément vide avec ou sans les /* et */.
C’est peut être pas trés propre mais je m’en sert pour isoler des parties de codes quand j’ai ce problème pou isoler une ligne ou une partie de code qui me donne le message d’erreur sur fond orange ET un log vide.

Bonjour @PanoLyon
Decommente tout et transmets les logs,
Colle aussi le bloc code entre </> pour nous aider à analyser

1 « J'aime »

En l occurrence ton scénario n execute : rien !
Donc pas de log
D ou l erreur surement

Voici le code décommenté que j’utilise :

require_once dirname(__FILE__) . '/../../plugins/JeedomConnect/core/class/JeedomConnectWidget.class.php';

$widgetId=43;
$iconCmd='[Appartement][Maison][Météo Actuellement - Icone]';

// mise à jour de l'image
$icoFilename = cmd::byString('#'.$iconCmd.'#')->execCmd().'.png' ;
$icoFilename = str_replace("bis","",$icoFilename);

$widgetKey='image';
$widgetValue= array('source' => 'user', 'name' => $icoFilename, 'shadow' => false);
JeedomConnectWidget::updateConfig($widgetId,$widgetKey,$widgetValue);

et la copie d’écran du log car il est vide.

lorsque je clique sur le bouton ‹ executer ›, avec le code ci-dessus. jeedom me donne ‹ En cours › puis finit avec ‹ erreur › sur fond orange.

Ton $iconCmd est le même que @ngrataloup ?

Oui je suis je suis en plein test et je cherche à comprendre.
Par contre mon widgetId est différente.

1 « J'aime »

OK donc ton équipement météo se trouve aussi à la même place

1 « J'aime »

Oui mais la c’est de la coïncidence.
Pour information quand je supprime la 1ere ligne avec le require_once.
Le scénario se lance et finit très vite, et le log contient un message me disant qu’il manque la class nécessaire mais c’est normal…

------------------------------------
[2022-09-10 14:04:24][SCENARIO] -- Start : Scenario lance manuellement.
[2022-09-10 14:04:24][SCENARIO] - Exécution du sous-élément de type [action] : code
[2022-09-10 14:04:24][SCENARIO] Exécution d'un bloc code 
[2022-09-10 14:04:24][SCENARIO]  - ----------------------------------------
[2022-09-10 14:04:24][SCENARIO]  - - Framework sc v0.993f
[2022-09-10 14:04:24][SCENARIO]  - - Vos scenarios en PHP
[2022-09-10 14:04:24][SCENARIO]  - - by dJuL
[2022-09-10 14:04:24][SCENARIO]  - ----------------------------------------
[2022-09-10 14:04:24][SCENARIO]  - INFO: DOCUMENTATION DISPONIBLE EN LOCAL EN CLIQUANT ICI
[2022-09-10 14:04:24][SCENARIO]  - - - 
[2022-09-10 14:04:24][SCENARIO]  - /* - Execution du Bloc code n°1 - DEBUG NATIF ACTIF (php >= v7) */
[2022-09-10 14:04:24][SCENARIO]  - - - 
[2022-09-10 14:04:24][SCENARIO]  - ERREUR PHP: Class 'JeedomConnectWidget' not found à la ligne 12 !
[2022-09-10 14:04:24][SCENARIO]  - - - 
[2022-09-10 14:04:24][SCENARIO]  - /* - Fin du Bloc code n°1 - */
[2022-09-10 14:04:24][SCENARIO]  - - - 
[2022-09-10 14:04:24][SCENARIO] Arrêt forcé du scénario pour cause d'erreur de syntaxe php ou de retour 'false'
[2022-09-10 14:04:24][SCENARIO] Action stop
[2022-09-10 14:04:24][SCENARIO] Durée d'exécution (depuis le 1er bloc code) : 30.32 millisecondes
[2022-09-10 14:04:24][SCENARIO] Fin correcte du scénario

Et la première page de ton scénario ?
Tu n’as rien dans le centre de notif ?
Si tu as une erreur dans le bloc code tu devrais à minima avoir un log de lancement du scénario

Faut simplement l adapter au framework que tu utilises, puisque l insertion de classe se fait de base par rapport a la classe scenario du core
J imagine qu avec le framework, la base est ailleurs…

1 la première page du scenario :


2 le centre de notif donne rien pas d’erreur dans le journal des log non plus.
3 Non.

Hihi c’est ce que j’allais dire…
Je viens de tester en oubliant de modifier la cmd et ton scénario se lance bien avec l’erreur sur la commande

Cela viendrais du fait que le fichier class.php n’aurais pas le bon chemin ?
C’est la première fois que j’aurais ce problème car cette class sert seulement pour JPI.

Desactive ce bloc code
Ajoute un autre bloc code et mets a l interieur :

$scenario->setLog("dir " . dirname(__FILE__));

Sauvegarde
Execute

Que dit la log ?

pile poile ce que cherchais, le log me donne :

------------------------------------
[2022-09-10 14:31:27][SCENARIO] -- Start : Scenario lance manuellement.
[2022-09-10 14:31:27][SCENARIO] - Exécution du sous-élément de type [action] : action
[2022-09-10 14:31:27][SCENARIO] - Exécution du sous-élément de type [action] : code
[2022-09-10 14:31:27][SCENARIO] Exécution d'un bloc code 
[2022-09-10 14:31:27][SCENARIO]  - ----------------------------------------
[2022-09-10 14:31:27][SCENARIO]  - - Framework sc v0.993f
[2022-09-10 14:31:27][SCENARIO]  - - Vos scenarios en PHP
[2022-09-10 14:31:27][SCENARIO]  - - by dJuL
[2022-09-10 14:31:27][SCENARIO]  - ----------------------------------------
[2022-09-10 14:31:27][SCENARIO]  - INFO: DOCUMENTATION DISPONIBLE EN LOCAL EN CLIQUANT ICI
[2022-09-10 14:31:27][SCENARIO]  - - - 
[2022-09-10 14:31:27][SCENARIO]  - /* - Execution du Bloc code n°1 - DEBUG NATIF ACTIF (php >= v7) */
[2022-09-10 14:31:27][SCENARIO]  - - - 
[2022-09-10 14:31:27][SCENARIO] dir /var/www/html/sc
[2022-09-10 14:31:27][SCENARIO]  - - - 
[2022-09-10 14:31:27][SCENARIO]  - /* - Fin du Bloc code n°1 - */
[2022-09-10 14:31:27][SCENARIO]  - - - 
[2022-09-10 14:31:27][SCENARIO] Durée d'exécution (depuis le 1er bloc code) : 0.26 millisecondes
[2022-09-10 14:31:27][SCENARIO] Fin correcte du scénario

merci, maintenant je lui donne le chemin depuis ce dossier, c’est bien ça ?

1 « J'aime »

CQFD
Le chemin « officiel » est /var/www/html/core/class
Donc c est bien l utilisation du framework qui fait merder le scenario

Donc remplace la 1ere ligne par :

require_once dirname(__FILE__) . '/../plugins/JeedomConnect/core/class/JeedomConnectWidget.class.php';
1 « J'aime »

@tomitomas
parce qu’il utiliserait le plug-in jpi ? Et qu’il prendrait la main sur celui par défaut ??

Tout a fait !

Merci beaucoup,
Je test ça tout de suite.

EDIT :
Ça fonctionne très bien :wink:
Il faut donc noter pour les utilisateurs du Framework sc v0.993f by dJuL que :
-Le chemin « officiel » est /var/www/html/core/class
-Lors de l’utilisation de ce Framework le chemin devient : ‹ /var/www/html/sc ›
Merci baucoup à @tomitomas , @ngrataloup :+1:

nb : le plugin JPI n’est plus utilisé c’est pour cela que j’ai installé le Framwork

2 « J'aime »