Valeurs virtuel par palier

Hello,

Après pas mal de tests et manip, je sèche sur un besoin qui me semblait simple au départ :

J’ai un capteur de poids sous le lit, et je voudrais monter un virtuel qui m’indique « l’occupation » :
0 si poids < 25000
1 si 25001 < poids < 40000
2 si poids > 40001

j’ai pu le faire avec 3 items différents dans le virtuel, mais je voudrais un seul item qui évolue (plus simple à adresser dans les scénarios)

Config actuelle :

Merci d’avance pour le coup de main

Hello
tu peux faire cela avec des tests ternaires
Ex : (1<0?1:(3>4?5:6)) … doit répondre 6

Salut,

Tu pourrais le faire avec un seul virtuel bien sûr mais ce serait un calcul assez lourd à faire à cet endroit qui n’est pas prévu pour ça. A mon sens le mieux serait de traiter la valeur du capteur de poids dans un scénario qui ferait un event sur une commande virtuelle (info/numérique) pour la passer à 0, 1 ou 2.

  • Evènement (event) : Permet de pousser une valeur dans une commande de type information de manière arbitraire.

Documentation Jeedom

oui j’y ai pensé, ce qui m’a arrêté c’est la fréquence de déclenchement.

Le capteur remonte une info toutes les 30 secondes, et il est très sensible, même en journée, la valeur change en permanence (de quelques grammes certes, mais elle évolue)

Les mises à jour sont calées à 30 secondes pour être réactif sur les éclairage de nuit (ça doit être WAF)

Je vais regarder la partie tests ternaires

Rien ne t’empêche de n’activer ton scénario qu’au moment de ton choix et/ou ne le faire tourner qu’à la minute ou toutes les 5 minutes par exemple. Bref trouver l’usage adéquat.

Tu es stoppé par la fréquence de déclenchement d’un scénario prévu pour alors que la solution du calcul dans un virtuel sera bien pire en terme d’impact sur le système et les perfs : tu feras un calcul complexe à chaque chgt de valeur avec lancement de toute la mécanique Jeedom à chaque fois !

Si c’est pour de l’affichage pourquoi ne pas tout simplement appliquer un widget numérique multistate sur ton capteur ?

Tu ajoutes trois conditions de test et pour chaque condition une image (ou un texte) différente.

Si c’est pour utiliser une info qui doit générer une action en conséquence pourquoi ne pas utiliser dans la configuration avancée de ta commande info capteur des Actions sur la valeur ? (voir exemple ci dessous où trouver cela) ?

merci pour le conseil, j’y avait pensé à l’action sur valeur, mais une seule condition est paramétrable.

J’ai contourné le besoin avec une division de la valeur par un nombre fixe, arrondi à 0 décimales :

round((#[Chambre Parents][ESP02_Balance][WeightChanA]# / 43000))

J’ai en retour 0 / 1 / 2, ce qui correspond à mon besoin.

Je laisse en tests quelques jours pour affiner si besoin.