Utilisation de la fonction tendance

Bonjour,

Je n’arrive pas à comprendre et à faire fonctionner la fonction tendance…
J’utilise le testeur d’expression pour vérifier le comportement.
La commande
#[Jardin][Sonde][Température]#-lastBetween(#[Jardin][Sonde][Température]#,today,-120min)
me donne le résultat 0.6

La commande
tendance(#[Jardin][Sonde][Température]#, 120min, 0.1)
me donne le résultat 0 alors que l’écart calculé 0.6 est bien supérieur à 0.1…

Ou est mon erreur?
Je n’ai jamais réussi à avoir autre chose que 0 avec cette fonction en remplaçant le 120min par « 120minute », « 120minutes »,« 120 min », « 120 minute », « 120 minutes »… Je me demande si je n’ai pas une erreur de syntaxe.
Ou y aurait il une subtilité qui m’échappe avec le fonctionnement de cette fonction?

https://www.php.net/manual/fr/datetime.formats.relative.php

ayant essayé 120 min et 120 minute aussi dans l’expression, ca ne m’avance pas!

As-tu essayé de remplace le 0.1 par 0,1 ? Et la bonne syntaxe est ,120 min,

Bien vu @Idaho947 !!
Jamais je n’aurais pensé à mettre une virgule parce que niveau syntaxique, l’utilisation de la virgule devrait être interprété comme un nouveau paramètre :upside_down_face:
Merci pour ton retour efficace!

1 « J'aime »

Par contre j’ai crié victoire trop vite.
La fonction ne me donne maintenant plus systématiquement 0 par contre je ne comprends pas le résultat suivant:

#[Jardin][Sonde][Température]#-lastBetween(#[Jardin][Sonde][Température]#,today,-30 min)

me donne le résultat 0.49

et

tendance(#[Jardin][Sonde][Température]#,30 min,0,7)

me donne le résultat 1… ???
Pourtant la différence de température (0.49) est bien inférieure au seuil de 0,7

Dès que passe à un seuil supérieur ou égale à 1, la fonction renvoie 0…
Du coup je me demande sérieusement, si comme je le pensais, il ne considère pas la « , » comme un séparateur auquel cas « 0,7 » reviendrait à 0…

La fonction renvoie -1 pour une tendance descendante, 0 stable, +1 tendance montante.

Donc ça me paraît pas déconnant a première vue.

Pour être sûr de bien comprendre le résultat de la fonction tendance…

Si

abs((valeur actuelle) - (valeur au délai choisi)) > seuil && (valeur actuelle) > (valeur au délai choisi)

Résultat: 1 ==> tendance à la hausse

Si

abs((valeur actuelle) - (valeur au délai choisi)) > seuil && (valeur actuelle) < (valeur au délai choisi)

Résultat: -1 ==> tendance à la baisse

Si

abs((valeur actuelle) - (valeur au délai choisi)) <= seuil

Résultat: 0 ==> tendance stable

Je me trompe dans l’attendu des résultats de la fonction tendance?

Ça me semble être ça.

Édit : apres différents tests je comprends pas trop le fonctionnement du paramètre seuil. J’ai l’impression qu’il utilise surtout les deux valeurs de la commande maintenant et au moment de la periode définie.

En tout cas manifestement moi, la fonction ne rend pas le resultat que j’attends…
Si un modo passe par la pour nous dire…
Et je suis pas chez moi donc pas acces au shell pour chercher dans quel fichier la fonction est définie…

Bon j’ai enfin la réponse à ma question. Et pour le coup, je dois dire que c’est très mal documenté… En fait, cela n’est pas documenté du tout! il faut regarder le code de la fonction pour comprendre!!!
Le seuil utilisé dans la fonction tendance n’est pas comparé avec la différence entre mes 2 mesures.
Pour expliquer de manière simplifiée mais pas tout à fait exacte, ce seuil est comparé avec le coefficient directeur de la droite représentant l’évolution de mes mesures…
Du coup, la valeur à saisir pour ce seuil n’est vraiment pas parlante quand on utilise la fonction tendance…
Je vais donc me rabattre sur un bon vieux calcul du type:

#[Jardin][Sonde][Température]#-lastBetween(#[Jardin][Sonde][Température]#,today,-30 min)

3 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.