Condition scénario: OK dans testeur mais KO à l'execution

Salut

Je viens d’identifier un problème dans une condition de scénario.
Le parenthésage est correct. La même condition est OK dans le testeur d’expression et KO à l’exécution.

La condition:

(#time# >  2329) OU (#time#  <  0830) OU (variable(Nuit) == 1)  OU  ((#[Présence][Mode Eté][Etat]# == 1 ) ET ((#[Chambres][P.Fenêtre Elodie][Ouvert]# == 1 ) OU (#[Chambres][P.Fenêtre Parents][Ouvert]# == 1) OU (#[Chambres][Fenêtre Maxime][Ouvert]# == 1)))

Log scénario:

[2025-07-02 04:18:19][SCENARIO] Exécution d'un bloc élément : 764
[2025-07-02 04:18:19][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Présence][Mode Eté][Etat]# == 1  ET
[2025-07-02 04:18:19][SCENARIO] Evaluation de la condition : [1 == 1  ET] = 1 == 1  ET
[2025-07-02 04:18:19][SCENARIO] Expression non valide : 1 == 1  ET
[2025-07-02 04:18:19][SCENARIO] Fin correcte du scénario

Avec le testeur:

Ca fonctionne quand j’enleve le dernier OU qui contient un ET
Y aurait-t-il une limitation sur la taille des expressions?
Jeedom v4.4.19

Merci

A priori, la limitation n’est pas dans la longueur de l’expression mais dans le nombre d’imbrications.
En développant votre expression pour supprimer les imbrications ça devrait fonctionner.

Bonjour,

Plutot que tester chaque fenetre de chambres pour voir si l’une d’entre elles est ouverte

Utiliser le generictype
Si generictype(opening_window, #[chambres]#) > 0

Un truc du genre doit fonctionner et devient plus generique du coup

Pas bête je n’y avais pas pensé merci :wink:
Ca va résoudre mon problème mais il y a peut être quand même un souci dans l’évaluation des expressions du core

Chez moi, j’ai un virtuel qui m’indique si toutes les fenêtres sont fermées (sur 2 zones) et les scenarii sont gérés sur une seule condition pour les ouvertures / fermetures.
Ça simplifie les conditions des scenarii …

Bonjour

Tu peux également retirer un OU en remplaçant

(#time# >  2329) OU (#time#  <  0830)

par

time_between(#time#, 2329,0830)
2 « J'aime »

Hello,
Pour recentrer sur ta question : j’ai deja imbriqué pas mal de conditions, et je n’ai jamais rencontré ce genre de problèmes.
Peux-être un problème de nom de commandes ou de caractères inconnus.
Tu peux p-e essayer en remplacant les ET par des && et les OU par ||

Le log de ton scenario ne semble pas correspondre a ta condition. Tu peux nous le remettre en entier stp?
Je veux bien voir ta variable Nuit aussi
J’ai copié ta condition et remplacé par mes équipement, et ca marche bien…

Merci à tous
J’ai résolu mon problème en passant par les generics c’est l’essentiel.

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.