Pas d'imbrication de calcul possible

J’ai remarqué qu’il était impossible de fournir en paramètre de fonction un résultat de calcul. Je l’ai noté dans time_op mais je me rappelle avoir buté sur une formule il y a quelques temps et après cette découverte, je pense que c’était ça.

Voici l’exemple basique, simple pour les tests :

  • time_op(1200,10) retourne 1210 → C’est bon
  • time_op(1200,(5+5)) retourne time_op(1200,(5+5)) → c’est pas bon pourtant la formule est cohérente

Bonjour
Oui c’est connu nous n’avons malheureusement pas les compétences pour corriger (plusieurs on est essayé et ya toujours des cas où ça ne marche pas)

Salut,
Tu as toujours la possibilité de passer par une variable temporaire dans laquelle tu fais ton calcul et écrire :
time_op(1200,variable(temp))

Pas possible de passer par une variable temporaire quand il s’agit d’un calcul d’une information dans un virtuel…

Je ne vois pas pourquoi, une info virtuelle peut très bien avoir pour valeur une variable calculée pas un tag.

je ne vois pas comment la variable pourrait être à jour au rafraichissement du virtuel, sauf à monter une usine a gaz…

Et si tu mets intval(5 + 5)?

J’ai pas testé mais cela donnerait :
time_op(1200,intval(5 + 5))

Comme l’a dit Loïc plus haut, c’est l’imbrication de formule qui ne fonctionne pas et qu’ils n’arrivent pas à debugger. Mon exemple est là pour pur démonstration du bug.

pour moi, cela fonctionne …

et ton test ne fonctionne pas:

en fait, il considère le 5+5 comme un string… il faut juste le convertir en nombre

5+5, pour moi c’est un nombre, aucune raison que ce soit considéré (ormi un bug) comme une chaine de caractères.
Et il n’y a pas que cette fonction qui bug… par exemple round(duration(#[Zone Technique Eau][Chauffe eau][Etat]#,1,last sunday) / ((#njour#+1) * 60)) renvoi round(539 / ((6+1) * 60))
alors que duration(#[Zone Technique Eau][Chauffe eau][Etat]#,1,last sunday) / ((#njour#+1) * 60) renvoi 1.2833333333333

écoute, je te donne un workaround, libre a toi de l’utiliser pour te débloquer …

Jai créé ce fil pour soulever un probleme général d’analyse des formules
Loic y a répondu

En aucun cas, la réponse ne débloque la situation globale :wink:

d’ou le mot workaround

Ca ne contourne qu’un cas … j’en ai découvert des dizaines en imbriquant des formules

ils ont tous le même « bug » ou la même manière de travailler:

avec le intval:
image

cela te donne un 2ème cas avec un workaround. tu peux toujours mettre les autres que l’on trouve une solution pour te débloquer

Sauf que tu mets directement les valeurs (539,…) une fois appliqué avec les sources des données sur mon virtuel ça ne fonctionne pas… toujours l’imbrication problematique

Peut-être avec action sur la valeur du virtuel ou scénario par déclencheur sur le virtuel, il me semble.

Ca c’est ce que j’ai déjà fait comme contournement :
scenario déclenché au changement de valeur et calcul par étape avec variable…
Mais c’est lourd à mettre en place, couteux en ressources

bon, la version complete:

j’ai simulé aussi ton #njour#

je sais pas ce que je peux faire de plus, mettre juste un intval c’est pas trop compliqué et cela t’évite de faire les scenarios

Et au pire, si jamais le problème est corrigé, le fait d’avoir la commande intval n’aura pas d’effet négatif

2 « J'aime »