Un conditions si avec des ou qui s'enchaînent, mais pas toujours

Pour lancer un scénario qui commande les jets d’eau d’un bassin j’ai une condition si qui arrête le scénario si certaine conditions sont présentent.


Avec deux condtions cela fonctionne avec trois cela ne fonctionne pas
Si je l’ance le scénario avec une troisième condition, j’ai un message d’erreur .

Et rien dans les logs. Je cherche à savoir pourquoi la troisème condition met le scénario en erreur.

Bonsoir,

Fait un copier coller de l’ensemble de la condition SI dans le testeur d’expression. Ça donne quoi ?

Mettez vos conditions entre ()
(Ça) ou (ça) ou (ça)

Et mettez le log de votre scénario entre les balises bonjour et merci.

J’avais fait ce teste sans résultat exploitable. Voila ce que cela donne.

Voila la modification.

(#[Jardin][Anémomètre ][Vitesse Vent]# > 15) ou (#[Jardin][Anémomètre ][Vitesse rafale]# > 20 ) ou (#[Jardin][Anémomètre ][Vitesse Max]# > 25 )

Cela n’a pas supprimé le problème.

Je ne comprend pas en quoi consiste « mettre le log du scénario entre les balises ». Merci de me donner quelques explications complémentaires.

Bonsoir
Je n’ai jamais eu ce pb même sans parenthèse (ça devrait passer sans difficulté ! 3 ou 10 OU passe facile. Le pb est autre part.

Ce n’est pas le problème de l’espace apres anémomètre ? (Je pense pas mais autant pas le garder)
Plutôt les « ou » qui sont pas en majuscule ? (D’ailleurs déprécié, vous devriez regarder le doc scénario / les copier si vous les trouvez pas sur le clavier, et utiliser les II)
Et il y a aucune raison que ça ne passe pas.

Il faudrait donner le log du scenario en utilisant le bouton </> pour sa mise en page. Vous utilisez régulièrement la communauté, vous devrier connaître.

Quand un scénario ne fonctionne pas, son log est une des premières choses à consulter et analyser.

Antoine

2 « J'aime »

C’est votre idée qui ne doit pas être bonne, car l’expression fonctionne bien.

Vous demandez SI
7 > 15 ou 7 > 20 ou 26 > 25
Donc, des qu’il y a une vérité (comme vous avez mis un OU) alors c’est VRAIS (TRUE = 1, FALSE = 0) et votre expression montre bien que 26 est plus grand que 25

RELISEZ BIEN CELA EN FRANCAIS Pour comprendre :
7 > 15 ou 7 > 20 ou 26 > 25

Pour moi, il n’y a pas de problème.

Disons qu’il a quand même une chtite erreur :smile:

Donc soit il y a autre chose après dans le scénario et que l’on ne voit pas sur la capture, soit c’est vraiment le fait d’ajouter ce 3eme élément dans le SI qui pose problème…

2 options à te proposer :

  • Utiliser des || comme proposé au dessus donc :
#[Jardin][Anémomètre ][Vitesse Vent]# > 15 || #[Jardin][Anémomètre ][Vitesse rafale]# > 20 || #[Jardin][Anémomètre ][Vitesse Max]# > 25
  • Supprimer ton scénario et le recrer. J’ai vu des choses incompréhensible qui ont été réglé comme ça

Merci pour la précision. Effectivement je connais bien la notion de log. Par contre je ne connais pas le bouton </> sur la page du scénarion j’ai:
image

Ci-joint le fichier téléchargé comme je le fait habituellement.
scenario40.log (40,4 Ko)

Je n’ai pas joint le fichier jusqu’a présent car il n’y a rien sur les logs quand le scénario est en erreur . On peut le constater sur le fichier

Pour le détail voilà comment fonctionne la condition si:
si:
7>15
ou
7>20
ou
26>25
Alors le scénario est arrêté.
sinon il est exécuté

Dans cet exemple 26 est supérieur à 25 donc le scénario ne sera pas exécuté.
Mais le fait de rajouter la troisième condition met le scénario en erreur.

Merci pour la suggestion, mais en quoi consiste le sigle II (ici j’ai mis deux i majuscules)?

Ce sont des symboles, pas des i majuscule
(Je n’ai pas de PC windowd, je peux pas vous indiquer le raccourci clavier. D’ou ma proposition + une recherche sur google pour savoir comment les faire par la suite)

Ps: apparemment « Alt Gr 6 »

1 « J'aime »

Alt Gr et touche 6 comme dit par Henri

Tu peux faire un copier/coller de ce que j’ai mis sinon.

Tu pourrais nous copier/coller l’ensemble du scénario parce que je peux qu’il y a des choses bizarres.

Tu stoppes ce même scénario c’est ça ? En principe on fait pas trop comment ça

if variable(V16 jet rotatif)=1 suggère que tu as pas vraiment mis une comparaison ( == ) donc cette condition ( = ) sera toujours vraie ce qui n’est pas ce que tu veux

Super merci Alt Gr 6 cela fonctionne dès que j’ai un moment dans la journée je fais le test.

Dans l’encart où tu écris tes messages sur la communauté…

Antoine

En fait quand je suis absent je supprime un des jets pour cela le scénario teste la variable 16 si V16 = 1 je suis la le jet rotatif fonctionne . Si V16=0 je ne suis en vacances le jet rotatif ne fonctionne pas. c’est complémentaire à la condition s’ill ya du vent le scénario
scenario.txt (2,6 Ko)
est arrêté.
En pièce, jointe le scénario complet.

Donc pour stopper le scénario en cours il faut mieux faire un « stop »

Pour la condition SI variable(V16 jet rotatif)=1 il faut l’écrire avec un double == → SI variable(V16 jet rotatif)==1

1 « J'aime »

Je viens de tester:
#[Jardin][Anémomètre][Vitesse Vent]# > 15 || #[Jardin][Anémomètre][Vitesse rafale]# > 20 ||#[Jardin][Anémomètre][Vitesse Max]# > 25

Merci pour ton aide peut-tu m’en dire plus sur || et pourquoi cela fonctionne alors qu’avec ou cela ne fonctione pas

Les « ou » ce n’est pas du langage PHP. En PHP il faut utiliser des « || » pour dire « ou ».
Jeedom, pour faciliter la vie des utilisateurs, permet les « ou » et les interprètes en « || ». Possible que la façon de faire ces transformations déconne quand il y a plusieurs « ou ». Il faudrait vérifier dans le code mais j’ai pas trop le courage d’aller debug cette partie :slight_smile: