Bonjour à tous,
Je suis actuellement en train de découvrir Jeedom avec comme petit projet de contrôler mon système de chauffage central via un interrupteur sec FGS-214, des vannes thermostatique Aeotec, le tout géré par le plugin Thermostat. Durant mes tests il semblerait que je sois tombé sur un bug du plugin thermostat.
Sur mon jeedom j’ai constaté que le plugin Thermostat, configuré en mode Temporel execute l’action « Pour chauffer je dois? » plus que nécessaire (une fois de trop) lorsque je bascule entre deux modes de chauffage, sans passer par l’état Off du thermostat. Ceci est problématique dans mon cas car l’action « Pour chauffer je dois? » incrémente une semaphore utilisée dans la gestion de l’allumage et de l’extinction de ma chaudière. Celà a pour conséquence de fausser la gestion de ma chaudière et de la laisser allumée en permanence. Il est bien entendu possible de corriger celà en enregistrant des actions spécifiques lors de l’execution de la commande associée au mode afin de forcer un état « Off » entre les changements de modes, cependant une correction du bug en amont serait bien plus générique.
NB: ce bug n’existe pas lorsque le thermostat est utilisé en mode « Hysteresis »
Condition pour reproduire et constater le bug:
0. créer un thermostat fonctionnant en mode Temporel
- avoir 2 modes configurés dans le plugin thermostat
- dans la configuration de l’action « Pour chauffer je dois ? » déclencher un scenario qui incrémente une variable (ceci permet de constater le bug)
- dans le widget du themostat, se mettre sur un mode
- basculer sur l’autre mode
- constater que la variable a été incrémentée une fois de plus que prévu
Logs générés par le scenario suite au changement de mode (on constate deux executions à 1s d’interval):
[2020-10-12 13:31:00][SCENARIO] Start : Lancement provoque.
[2020-10-12 13:31:00][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-10-12 13:31:01][SCENARIO] Evaluation de la condition : [0 == 0] = Vrai
[2020-10-12 13:31:01][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-10-12 13:31:01][SCENARIO] Exécution de la commande [Chaufferie][Switch Chaudière][On]
[2020-10-12 13:31:01][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-10-12 13:31:01][SCENARIO] Affectation de la variable CHAUDIERE_ON_SEMAPHORE => 0 + 1 = 1
[2020-10-12 13:31:01][SCENARIO] Fin correcte du scénario
------------------------------------
[2020-10-12 13:31:02][SCENARIO] Start : Lancement provoque.
[2020-10-12 13:31:02][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-10-12 13:31:02][SCENARIO] Evaluation de la condition : [1 == 0] = Faux
[2020-10-12 13:31:02][SCENARIO] Exécution du sous-élément de type [action] : else
[2020-10-12 13:31:02][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-10-12 13:31:02][SCENARIO] Affectation de la variable CHAUDIERE_ON_SEMAPHORE => 1 + 1 = 2
[2020-10-12 13:31:02][SCENARIO] Fin correcte du scénario