Bug sur la condition Evenement (label) quand il n'y a pas d'evenement

Bonjour,

Je trouve le plugin super pratique.
Par contre, j’ai relevé un bug lorsqu’on fait un test sur la commande Evenement (label) .

Dans un scénario, j’ai cette condition :

Si un évènement existe pour le jour, pas de problème, la condition fonctionne :

2020-12-18 08:45:01][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-12-18 08:45:01][SCENARIO] Evaluation de la condition : ["horsgel" == 'horsgel'] = Vrai

Par contre, si je n’ai pas d’évènement, la condition se met en erreur :

[2020-12-18 08:47:00][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-12-18 08:47:00][SCENARIO] Evaluation de la condition : [- == 'horsgel'] = - == 'horsgel'
[2020-12-18 08:47:00][SCENARIO] Expression non valide : - == 'horsgel'

Ceci vient du fait que le label renvoie juste un - qui est interprété comme le signe - d’un nombre numérique et non le caractère « - ».

Dans le code dayinfo.class.php, j’ai testé différentes valeur pour le label (l453), et ça fonctionne si on met soit une chaine quelconque, soit une chaine vide :
l453 : $label = '';
Renvoie une expression valide :

2020-12-18 08:51:32][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-12-18 08:51:32][SCENARIO] Evaluation de la condition : ["" == 'horsgel'] = Faux

l453 : $label = 'rien';
Renvoie aussi une expression valide :

2020-12-18 08:49:47][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-12-18 08:49:47][SCENARIO] Evaluation de la condition : ["rien" == 'horsgel'] = Faux

Serait-il possible de corriger ce bug pour une prochaine version ?

@+

Fred

Hello…

As-tu simplement essayé de virer les ( ) dans le nom de la commande ?

Pour moi, la commande est bonne et renvoie bien la valeur attendue.
C’est juste que le type de la valeur avec un - n’est pas interprété correctement par la condition.

Fais l’essai quand même ça coute pas grand chose… C’est pas totalement innocent comme idée, les () c’est un des moyens pour Jeedom de detecter les fonctions … et c’est pas toujours très efficace

Bonjour,

Est-ce qu’un matches ne permettrait pas de passer à travers ce cas?
exemple:

#[la commande]# matches "/horsgel/"

Sans surprise, ça ne fonctionne pas (les parenthèses faisant partie intégrante du nom de la commande) :

2020-12-18 13:34:27][SCENARIO] Evaluation de la condition : [#[Chauffage][Infos cal chauffage][Evenement label]# == 'horsgel'] = #[Chauffage][Infos cal chauffage][Evenement label]# == 'horsgel'
[2020-12-18 13:34:27][SCENARIO] Expression non valide : #[Chauffage][Infos cal chauffage][Evenement label]# == 'horsgel'

Non plus, car le pb vient du type du contenu qui n’est pas considéré comme une chaine de caractère.

[2020-12-18 13:36:52][SCENARIO] Evaluation de la condition : [- matches "/horsgel/"] = - matches "/horsgel/"
[2020-12-18 13:36:52][SCENARIO] Expression non valide : - matches "/horsgel/"

Oui on est bien d’accord qu’en principe c’est le nom de la commande, mais Jeedom tente d’interpréter toute la chaine du test (commande incluse), là au moins on élimine une source de problème