Scénario déclenché par variable

Bonjour à tous !
J’ai fait (à la demande de madame) un scénario pour couper la VMC.
Pour cela j’ai créé =3 variables :
Si l’humidité de la salle d’eau est supérieur à 50% alors la variable HumiSeau passe à 1 (scénario déclenché par une variation du capteur d’humidité)
Si l’humidité de la salle à manger est supérieur à 50% alors la variable HumiSmanger passe à 1 (scénario déclenché par une variation du capteur d’humidité)
La variable HumiMaison est la somme des deux précédente (scénario déclenché par une variation des variables précédents)

Enfin, j’ai un scénario qui contrôle la VMC, si la variable HumiMaison est différente de 0 alors VMC=On sinon VMC=Off
Ce scenario lui est déclenché par la variable HumiMaison.

Voici la question : pourquoi ce tout dernier scénario s’enclenche toutes les minutes alors que la variable HumiMaison ne bouge pas ? Je pensais avoir trouvé une méthode élégante pour éviter des déclenchements fréquents et inutiles mais… j’ai du me planter.

Merci et bonne journée !

met nous des screens de tes scénario.
les deux pages a chaque fois (général et scénario). Ca sera plus simple pour essayer de comprendre ton souci.

Bonjour,
Est-ce que dans la configuration de ton équipement, la répétition de la valeur est à « non » ?

Merci pour vos retours :

VMC :

Humi salle d’eau (celui de la salle à manger est construit de la même facon)

Et enfin la mise à jour de la variable HumiMaison:

La répétition est à non dans le scénario mais… pas dans « l’équipement » (mais pour le coup, j’utilise des variables alors : quel équipement ?)

Bonjour
A la place des variables, vous devriez utiliser des virtuels !
C’est plus approprié, ca permet de connaître leurs états plus facilement (vous pouvez visualiser leurs états sur le Dashboard ou le masquer les test fini), vous pouvez également historissiser leurs valeurs pour comprendre se qui c’est passé). Accéder à l’option « répétition des valeurs ».
Bref, c’est mieux !
Puis dans les déclencheurs mettre virtuel == 1

1 « J'aime »

le scénario est déclenché toutes les minutes car les valeurs changent en permanence. l’humidité est exprimée à 2 décimales donc en centième de %…

il faut limiter ça en créant un virtuel avec une valeur arrondie et en positionnant le paramètre « répétion des valeurs identiques » à non.

Il faut donc que je fasse une révision des virtuels. :blush:

Pour ce qui est des changements d’états, je pensais m’en être premunis justement, en allant pas chercher les températures, mais la variable et … Non pas la variable qui dépend de la température, mais celle qui dépend d’un calcul dont le résultat… Ne varie pas (ou presque).

Je vais explorer les virtuels ! Merci pour vos retours :slight_smile:

Bonjour,

Dans les scénarios qui mettent à jour les variables HumiSeau et HumiiSmanger, active la non répétition au niveau des SI (la double flèches en rond à gauche de SI)

Avant :
image

Après :
image

Bonjour,

Désolé pour vous mais effectivement c’est la pire des solutions.

Utiliser des variables veut dire d’office écriture en db => le pire, à utiliser en dernier recourt.

Supprimez toutes vos variables et mettez en déclencheurs de scénario vos commandes humidités et ensuite testez ces infos directement dans votre scénario.

Même faire des virtuels ne va rien apporter ici…
Déclencher un scénario (qui en fait va être tout bête avec un test et une action) ne sera pas plus lourd que de mettre à jour un virtuel alors qu’utiliser un virtuel intermédiaire double le travail dans la pire des cas et ne sera jamais moins de travail.

Deuxième avantage à utiliser directement les infos dans la scénario: c’est hyper simple à comprendre et à maintenir!

Ah ! Intéressant aussi ça.
Donc, un scénario déclenché fréquemment par la moindre variation de dixième de pourcent d’humidité n’est pas si grave alors ?
… Pas grave, ou moins pire que les solutions précédentes ? :thinking:

Autant adopter les bonnes pratiques :smile:

Bonjour
Et… heuu…
Non, ou j’ai loupé un truc !?
Prenons un exemple simple :
L’humidité suit une courbe purement croissante allant de 40 à 60.
Si vous faites un virtuel binaire V : humidité > 50. Puis déclencheur : V==1
Ou
La méthode de Mips : déclencheur : humidité > 50
Le scénario va se déclencher qu’UNE SEUL FOIS !!
Quand humidité vaudra 51,52,53,… la condition / le déclencheur sera toujours égale à 1, donc pas de changement de sont état, donc pas de nouveau déclenchement !
Je vous laisse vérifier avec les log du scénario.

Si la condition de déclenchement est humidité > 50 il y aura bien un déclenchement pour tout changement de valeur > 50 (donc déclenchement à 51, 52, 53 …)

Ce que je veux dire c’est que si votre capteur remonte des infos tous les dixièmes de secondes

  1. De toute façon jeedom va vérifier s’il doit déclencher un scénario ou mettre à jour qlqch (comme un virtuel)
  2. Si qlqch est trouvé en 1. Il va mettre a jour le virtuel et potentiellement un nouvel événement et retour au point 1.

Donc oui tant qu’à devoir passer par le point 2 autant lancer le scénario directement à mon avis.
Et dans le scénario faire un test avec non répétition des actions comme cela a été proposé plus haut.

Si vous voulez réduire la charge il faut configurer la source pour être moins bavarde et ne pas remonter des infos trop fréquemment => une fois dans jeedom c’est « trop tard » et aucune usine à gaz ne permettra d’optimiser vraiment quoi que ce soit.
De nouveau ce n’est que mon avis.

Autant pour moi !
Je passe toujours par un virtuel pour ce genre de chose. J’ai cru que la méthode de Mips n’aurait pas ce comportement.
Je viens de vérifier.
Le scénario se relance !
Donc il reste que ma méthode…
Passé par un virtuel avec comme déclencheur Seuil == 1
Là c’est certain que le scénario ne se relance pas !!
J’ai fait évolué une valeur virtuel de 48 à 65 :


Voici les log du scénario en utilisant :

------------------------------------
[2022-12-13 08:46:20][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Test][Test pr niveau de capteur par virtuel][Valeur test] (51).
[2022-12-13 08:46:20][SCENARIO] Exécution du sous-élément de type [action] : action
[2022-12-13 08:46:20][SCENARIO] Log : ----@@@ Scénario appelé avec valeur =: 51 (>50)
[2022-12-13 08:46:20][SCENARIO] Fin correcte du scénario
------------------------------------
[2022-12-13 08:46:23][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Test][Test pr niveau de capteur par virtuel][Valeur test] (52).
[2022-12-13 08:46:23][SCENARIO] Exécution du sous-élément de type [action] : action
[2022-12-13 08:46:23][SCENARIO] Log : ----@@@ Scénario appelé avec valeur =: 52 (>50)
[2022-12-13 08:46:23][SCENARIO] Fin correcte du scénario
------------------------------------
[2022-12-13 08:46:26][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Test][Test pr niveau de capteur par virtuel][Valeur test] (53).
[2022-12-13 08:46:26][SCENARIO] Exécution du sous-élément de type [action] : action
[2022-12-13 08:46:26][SCENARIO] Log : ----@@@ Scénario appelé avec valeur =: 53 (>50)
[2022-12-13 08:46:26][SCENARIO] Fin correcte du scénario
------------------------------------
[2022-12-13 08:46:29][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Test][Test pr niveau de capteur par virtuel][Valeur test] (54).
[2022-12-13 08:46:29][SCENARIO] Exécution du sous-élément de type [action] : action
[2022-12-13 08:46:29][SCENARIO] Log : ----@@@ Scénario appelé avec valeur =: 54 (>50)
[2022-12-13 08:46:30][SCENARIO] Fin correcte du scénario
------------------------------------
[2022-12-13 08:46:32][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Test][Test pr niveau de capteur par virtuel][Valeur test] (55).
[2022-12-13 08:46:33][SCENARIO] Exécution du sous-élément de type [action] : action
[2022-12-13 08:46:33][SCENARIO] Log : ----@@@ Scénario appelé avec valeur =: 55 (>50)
[2022-12-13 08:46:33][SCENARIO] Fin correcte du scénario

Voici les log avec :

------------------------------------
[2022-12-13 08:36:30][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Test][Test pr niveau de capteur par virtuel][Seuil] (1).
[2022-12-13 08:36:30][SCENARIO] Exécution du sous-élément de type [action] : action
[2022-12-13 08:36:30][SCENARIO] Log : ----@@@ Scénario appelé avec valeur =: 51 (>50)
[2022-12-13 08:36:30][SCENARIO] Fin correcte du scénario

Bref, y a pas photo, je me souviens d’un coup pourquoi j’utilise les virtuels !!! :slight_smile:

Bref, de bref, @Wapata, on dirait que la solution était bien :

:rofl: :joy: :sweat_smile: :innocent: :innocent: :kissing_heart:

Je tiens à vous remercier de la richesse de vos réponses !
Je vais mettre en application des que possible.

:smiling_face_with_three_hearts: