Page 1 sur 1

Calcul de valeur absolue : abs() absente de jeedom ?

Publié : 12 déc. 2018, 10:34
par flotheouf
Bonjour,
Je cherche à calculer la valeur absolue d'une différence, pour tester un scenario de pilotage de mes radiateurs.
On a accès à une fonction max() et min(), mais pas abs()... Existe-t-il un moyen ?

Merci !

Florent

Re: Calcul de valeur absolue : abs() absente de jeedom ?

Publié : 12 déc. 2018, 10:40
par Nebz
Hello,

(variable(maValeur) >=0?variable(maValeur):-variable(maValeur))

non ?

Re: Calcul de valeur absolue : abs() absente de jeedom ?

Publié : 12 déc. 2018, 14:33
par flotheouf
ah oui je ne savais pas que des formules comme çà marchait ! top je vais essayer, merci !

Re: Calcul de valeur absolue : abs() absente de jeedom ?

Publié : 14 déc. 2018, 06:33
par tomdom
Bonjour,

La fonction abs() fonctionne.

Re: Calcul de valeur absolue : abs() absente de jeedom ?

Publié : 19 juil. 2019, 12:58
par FRED777
Bonjour tomdom
La fonction abs fonctionne en effet mais avec des expressions simples. Sinon, les résultats sont farfelus.
Exemple : avec abs(((10-15)/5)+1) le testeur d'expression donne 8 là ou nous attendons 0....
C'est une expérience passée :( ...

Re: Calcul de valeur absolue : abs() absente de jeedom ?

Publié : 19 juil. 2019, 13:27
par toregreb
Le testeur d'expression (mais aussi les calculs dans les scénarios et les virtuels) accepte toutes les fonctions PHP, sauf que l'accumulation des parenthèses perturbe le parser d'expression. Peut-être qu'un message d'erreur serait préférable à une valeur erronée (j'ai eu le même souci avec la fonction round par exemple).

Donc pour l'expression ternaire proposée ci-dessus, ça peut également ne pas marcher lorsque l'expression devient complexe. Par conséquent, il est recommandé :
- de simplifier au maximum ses calculs, et de les décomposer sur plusieurs lignes dans un scénario par exemple
- d'utiliser les formules de calcul et l'arrondi dans la configurations avancées des commandes.

Re: Calcul de valeur absolue : abs() absente de jeedom ?

Publié : 22 juil. 2019, 10:43
par FRED777
Bonjour toregreb,
Ta proposition est effectivement pertinente dans le cas où ces expressions sont utilisées dans des scénarios.
Là ou je m'étonne, c'est lorsque ces calculs avec parenthèse imbriquées sont injectés hors fonction, les résultats sont bons !!
Dans l'exemple cité, ((10-15)/5)+1 donne bien 0 !
Dans mon cas, c'était un calcul dans un virtuel ; plus précisément, une info binaire mise à jour par un opérateur ternaire avec un calcul d'abs comme indiqué précédemment. Du coup, j'ai remplacé le abs par un carré... l'expression fait 3 lignes, c'est horrible à lire, mais c'est juste :D

Re: Calcul de valeur absolue : abs() absente de jeedom ?

Publié : 22 juil. 2019, 10:57
par loic
Bonjour,
C'est un soucis connu nous n'avons jamais reussi a améliorer cette partie malheureusement.

Re: Calcul de valeur absolue : abs() absente de jeedom ?

Publié : 22 juil. 2019, 12:41
par FRED777
Merci Loïc
Le sujet n'est pas bloquant car une solution de contournement existe :!:
J'en profite pour saluer la qualité des développements (qui s'exprime notamment par la stabilité de la solution) :D