Utilisation de rand()

Bonjour,

J’ai relevé un truc intéressant qu’a dit neurall dans ce post :

En l’occurrence, je suis intéressé par l’utilisation de la fonction rand() tel que montrée dans cette image :

Je ne comprends pas comment ça peut fonctionner. J’ai essayé dans le plugin Simulpre mais n’y suis pas parvenu. J’ai essayé cette syntaxe dans un scenario :

…mais ça me rend une erreur :

J’avoue ne pas comprendre comment ça peut fonctionner et je ne trouve aucune référence dans la doc ni ailleurs. J’ai contacté neurall mais il ne se souvient plus vraiment.

Quelqu’un saurait il m’expliquer ?
À l’avance merci beaucoup !
@+

Bizniouf

Bonjour,

  1. Il manque la deuxième commande dans ton exemple (masqué dans le post de référence) :
    (rand'1,10) > 5 ? #[macommande1]# : #[macommande2]#)

  2. Il faut que cette chaine soit évaluée, un scénario n’évalue pas une « action », c’est pourquoi tu as cette erreur.

Si neurall a confirmé son bon fonctionnement, c’est que le plugin évalue bien avant de faire l’action, donc commence par corrigé la chaine dans le plugin comme indiqué précédemment.

Ohé Phpvarious,

Merci de ton aide. Effectivement, ça paraît logique, même si la seconde commande, potentiellement masquée dans le premier post de neurall, n’est pas présente dans la recopie d’écran que j’ai insérée dans mon premier message (c’est neurall qui me l’a envoyée et qui me dit que ça fonctionne chez lui…)

J’ai donc essayé de remplacer mon action par :
(rand(1,10) > 5 ? #[Bureau][Plafonnier][On]# : #[Bureau][Plafonnier][Off]#)

…mais ça continue de me rendre une erreur :

:thinking:

Tu ne souhaites pas utiliser les blocs SI?

On peut pas faire une action sur une commande

Comme je t’ai dit :

donc fait le test dans le plugin !

Non. Je sais faire. C’est juste que ce truc m’intrigue, que j’aime bien comprendre et que ça peut être utile :wink:

1 « J'aime »

Ah ok. Je n’avais pas compris, et je pensais que le fait qu’il y ait eu « traduction » des libellés utilisés en les codes correspondants (les #165# et #166# de mon exemple étaient le signe que la chaîne avait été « évaluée » - c’était idiot de ma part puisqu’il reste le rand() tel que…

Ceci dit, je viens d’essayer dans le plugin Simupre, et ça ne fonctionne pas. Rien ne se passe (et je vois pas de log associée)…

Phpvarious a tout dit, il faut que tu sois dans un champ ou une expression ternaire puisse être interprétée.
Cela dépend du développement du core et des développements des plugins.