Ajouter une condition sur "Action sur la valeur"

Bonjour,

Tout d’abord désolé si le sujet à déjà été abordé !

Dans la configuration des commandes de type info, on peut faire des « Action sur la valeur » avec une liste d’action, ce qui est très utile :

Par contre on ne peut avoir qu’une seule condition, hors pour gérer des seuils haut et bas, une seconde condition serait appréciable !

Il faudrait « Action sur la valeur, si […], et/ou si […] »

Évidemment une liste infinie de condition serait encore mieux, mais déjà en avoir 2 au lieu d’1 devrait couvrir 90% des usages !

Merci d’avance,
AgP

2 « J'aime »

Action scénario et tu ne fait ce que tu veut.
Ce n’est pas le but ici.

Bonjour,
Je suis assez d’accord avec le point de @agp.com, ces actions sur valeurs sont très utiles dans les infos binaires sauf qu’il n’y a qu’un seul cas.
Évidement un scénario peut tout faire mais alors pourquoi ces actions sur valeurs ? Quel était le but alors d’avoir cela en plus des scénarios ?

Salut,

L’idée est de se passer de scénario juste pour effectuer une action en fonction d’une condition:

Action sur la valeur, si : Permet de faire des sortes de mini scénarios. Vous pouvez, par exemple, dire que si la valeur vaut plus de 50 pendant 3 minutes, alors il faut faire telle action. Cela permet, par exemple, d’éteindre une lumière X minutes après que celle-ci se soit allumée.

Oui je connais le comportement, j’ai étudier toutes les docs jeedom je pense et j’utilise cette fonction. La condition de temps est pratique d’ailleurs.

Ma question était plus sur le côté binaire, faire ça si 0 ou ça si 1.
Et dans tous les cas on sait le faire par scénario (heureusement).

@kiboost semblait dire que ce n’était pas le but, pas l’esprit de la fonction.
En développement, il y a toujours un contexte d’origine dans lequel on développe quelque chose, c’est ça que je voulais comprendre.

Parce que si la réponse c’est juste « il y a les scenarios pour ça », mon retour reste « alors pourquoi avoir cela en plus ? »
J’espère que « l’esprit » de ma question est plus claire.

Ben c’est dans la doc justement. Éviter de faire des scénarios pour éteindre une lumière 2mins après allumage par exemple.
Ou prévenir si une porte reste ouverte 20minutes.
Ou corriger une température non calibrée.
Ou prévenir si la piscine déborde.
Y’a pas mal d’exemples d’utilisation qui justement permettent d’éviter de faire un scénario.

Ça évite surtout de faire des scenario avec des cron toutes les minutes juste pour vérifier des valeurs. La on a une action immédiate, un message ou autre.

Mais ajouter un moteur de scénario ici :exploding_head::flushed:

Sur le fond je suis d’accord qu’un if/else serait pratique, mais en effet ce n’est pas l’esprit et ce serait surtout beaucoup plus complexe à faire.

Donc personne ici n’a la réponse à ma question.
Je connais les exemples mais je peux donner les cas où c’est justement tellement frustrant d’inutilite : action sur valeur d’un détecteur de presence : si présent allume.
Sauf que tu ne sais jamais éteindre… Il n’y a pas moyen de mettre « si absent éteindre »
Et donc obligé de faire un scénario pour un truc aussi simple.
D’où mon point : A la limite pourquoi garder cette fonctionnalité si même pour les cas simple il faut faire un scénario ? C’est juste étrange d’avoir un « truc » là caché dans un écran.

Sinon on ne parlait pas d’un « moteur de scénario »… Juste de rajouter une deuxième action sur valeur :wink: ; il y a bien une liste d’actions possibles.
essayons de ne pas rendre plus complexe les choses qu’elle ne le sont.

1 « J'aime »

merci @Mips dans ton soutien à ma demande !

L’idée est bien de juste améliorer un peu la fonction existante et non pas de créer un moteur complexe de type scénario.
La demande n’est pas de rajouter du if/else mais bien une seconde condition identique à celle existante.

Dans le core cette fonction est évaluée comme ca :

$check = jeedom::evaluateExpression($_value . $this->getConfiguration('jeedomCheckCmdOperator') . $this->getConfiguration('jeedomCheckCmdTest'));

Avec un second champ de condition ça devient un truc comme :

$check = jeedom::evaluateExpression($_value . $this->getConfiguration('jeedomCheckCmdOperator') . $this->getConfiguration('jeedomCheckCmdTest').$this->getConfiguration('jeedomCheckCmdOperatorLiaison'). $this->getConfiguration('jeedomCheckCmdOperator2') . $this->getConfiguration('jeedomCheckCmdTest2'));

Non ?

Je pense qu’il faudrait quand même 2 lignes de codes pour tester les 2 conditions séparément.