Bonjour,
Je cherche à afficher dans un virtuel une information en fonction de la valeur d’une commande.
Voici la formule : (#[Jardin][OnOff plug-in unit 1][Etat]#=1) ? "gmdate("H:i",lastStateDuration(#[Jardin][OnOff plug-in unit 1][Etat]#,1))" : "0"
Lorsque #[Jardin][OnOff plug-in unit 1][Etat]# = 0 la valeur affichée est bien 0 Lorsque #[Jardin][OnOff plug-in unit 1][Etat]# = 1 la valeur affichée est (1=1)?00:00 : 0
J’ai tenté avec des parenthèse, des guillemets, ça fait pareil.
La commande gmdate("H:i",lastStateDuration(#[Jardin][OnOff plug-in unit 1][Etat]#,1)) seul fonctionne sans problème.
Effectivement y’a un truc qui lui plait pas avec gmdate('H:i',..... sur une commande d’un virtuel alors que c’est OK avec le testeur d’expression… Peut-être l’enchaînement de parenthèses ?!
J’ai pas creusé plus loin mais sur quelques essais j’ai les mêmes retours que toi
Il ne traite plus la ligne comme un ternaire dès qu’il y a gmdate('H:i', en +… Du coup il affiche l’intégralité du ternaire et ne traite plus la condition
Je me permet une petite question car cela est super intéressant de pouvoir faire des tests dans un virtuel !
Pour de petites choses cela peut éviter des scénarios inutiles
Et comment faire pour avoir deux réponses :
si condition vraie : « inf »
si condition fausse « sup » car il me répond null le testeur d’expression
(#[Météo][Plugin MétéoFrance LS][Marine - Direction du vent]#<90) ? "inf" "sup"
merci
Lemars
:JE VIENS DE TROUVER DANS UN POST DESOLE: faut séprer les réponses avec des « : »
(#[Météo][Plugin MétéoFrance LS][Marine - Direction du vent]#<90) ? « inf » : « sup »
Manque de bol cela fonctionne dans le testeur d’expression avec des tests imbriqués : ((#[Météo][Plugin MétéoFrance LS][Marine - Direction du vent]#<45) ? "du Nord" : ((#[Météo][Plugin MétéoFrance LS][Marine - Direction du vent]#<135) ? "d'Est" : ((#[Météo][Plugin MétéoFrance LS][Marine - Direction du vent]#<225) ? "du Sud" : ((#[Météo][Plugin MétéoFrance LS][Marine - Direction du vent]#<315) ? "d'Ouest" : "du Nord"))))
mais pas dans le virutel : la réponse est :
((45<45) ? du Nord : ((45<135) ? d’Est : ((45<225) ? du Sud : ((45<315) ? d’Ouest : du Nord))))