Durée variable

Bonjour, je cherche une fonction me permettant de connaitre le temps depuis lequel une variable à une certaine valeur (binaire). Sur des commandes il y a des solutions, pour les variables je ne trouve pas. Si vous avez une solution… Merci

Bonjour,
Tu ne trouves pas dans la doc jeedom ? Il me semble qu’il y a une fonction spécifique pour ce que tu veux…
Désolé suis sur tel…

Bonjour, non malheureusement je ne trouve rien sur cette fonction sur la doc.

salut,
les fonction de calcul ds jeedom, doc:
https://doc.jeedom.com/fr_FR/core/3.3/scenario#Les%20fonctions%20de%20calcul

enjoy it

Ho Ho ho

Merci pour vos réponses. Effectivement il semble que l’on ne puisse utiliser une variable. Du coup je suis passé par un virtuel pour en faire une commande est pouvoir vérifier la durée d’état de ma variable.

1 « J'aime »

bonjour, dommage de ne pas avoir indiqué la fonction …

Bonjour,

Tu ne trouves pas ton bonheur dans la doc (maintenant en v4.4) ?

https://doc.jeedom.com/fr_FR/core/4.4/scenario#Les%20fonctions%20de%20calcul

Celle-ci par exemple :

  • lastChangeStateDuration(commande,valeur) : Donne la durée en secondes depuis le dernier changement d’état à la valeur passée en paramètre. -1 : Aucun historique n’existe ou la valeur n’existe pas dans l’historique. -2 La commande n’est pas historisée

bonjour Bison, il s’agit dans ce cas d’une variable . dans mon cas j’ai une variable qui varie entre 0 et 1
lastChangeStateDuration(variable(SOLEIL),1) , j’ai un retour -2 alors que SOLEIL = 1

Salut,

Et quand le retour est -2 , il y a une raison qui est pourtant bien expliquée dans la doc.
image
c’est bô …

oui j’ai vu, ça veut aussi dire que cette fonction ne marche pas avec les variables qui ne sont pas historisables ?
une fonction qui marcherait avec les variables ?

Ça a été indiqué dans ce post, ça ne fonctionne pas avec une variable, il faut utiliser une commande et l’historiser.

Dans ta commande info tu mets variable(SOLEIL)

Je fais exactement comme l’a dit @Bison bien entendu, il faut faire ça dans un virtuel (c’était pas précisé mais implicite). Le virtuel se mettra à jour automatiquement dès que ta variable se mettra à jour et du coup tu pourras utiliser des commandes historisées dessus.

1 « J'aime »

Bonjour,

Dans ce cas, autant supprimer la variable et utiliser une commande info du virtuel.

:thinking:

Ben tout dépend où tu te trouve de la conception …

Si ta variable est déjà présente dans 10 scénarios et que tu as un nouveau besoin de voir l’histo de cette variable, le virtuel miroir est un bon workaround qui permet de gagner du temps.

Si par contre tu en est au tout début de ta conception, effectivement autant partir directement sur une commande on est d’accord :slight_smile:

Bonjour,

Il me semble avoir lu un post ou Loïc disait que si une variable est souvent modifiée, il vaut mieux partir sur un virtuel. C’est moins lourd.

Donc modifier quelques scénarios afin d’optimiser et corriger ses erreurs du départ ne me semble pas une chose délirante à prévoir.

Luis

Je pense que ça dépend si la valeur est historisée ou non.
Une variable est stockée en BDD donc toute modif de cette dernière va entrainer des R/W sur la BDD.
Une commande n’est stockée en BDD que si elle est historisée.

Après je suis pas expert du core de jeedom mais si ta commande est historisée les deux c’est kifkif.

Ben Justement, dans mes souvenirs Loïc disait que si une variable a sa valeur qui change souvent, vaut mieux une commande info virtuel.
Il ne parlait pas d’historisation.

Oui car pour ça pas d’appel à la BDD si la commande en question n’est pas historisée.

Oui mais dans le cas présent si, on parle de passer sur une commande plutôt que sur une variable justement pour pouvoir utiliser les fonctions qui font appel à l’histo.

C’est pour ça que pour le cas présent entre un virtuel historisé et une variable il ne doit pas y avoir beaucoup de différence de perfs.

Sauf qu’ici c’est perdu 2 fois… variable et historique

Surtout dommage d’avoir déterrer un post de 3 ans sans lire la doc déjà fournie plus haut tout çà pour arriver à la même conclusion

1 « J'aime »