Depuis quelques semaines, j’observe des dysfonctionnements dans le comportement de mes interrupteurs va-et-vient, spécifiquement lors de l’exécution de scénarios déclenchés par des événements de scène sur mes modules Fibaro FGS-212.
Mon environnement actuel :
Jeedom en version 4.5
Plugin Z-Wave JS à jour (dernière version disponible)
Ces problèmes semblent liés à des mises à jour récentes du plugin Z-Wave, mais je n’ai pas identifié laquelle en est à l’origine.
Analyse du problème :
Mes scénarios sont basés sur des événements liés aux ID de scène. En utilisant MQTT Explorer, j’ai remarqué que mon module Fibaro envoie des notifications en double :
Premier événement :
{"time": 1766476053497, "value": 14}
Second événement (sans valeur) :
{"time": 1766476054497}
Ce second événement, bien que dépourvu de valeur, déclenche malgré tout mon scénario.
Solution temporaire :
J’ai configuré le scénario en mode synchrone, ce qui résout le problème. Cependant, je ne comprends pas pourquoi ce comportement apparaît maintenant.
Avez-vous déjà rencontré ce type de dysfonctionnement ou une piste pour en identifier la cause ?
- Nom du scénario : VA ET VIENT PIECE
- Objet parent : PIECE
- Mode du scénario : provoke
- Evènement : #[PIECE][INTERRUPTEUR1][SceneId]#
- Evènement : #[PIECE][INTERRUPTEUR2][SceneId]#
SI trigger(#[PIECE][INTERRUPTEUR1][SceneId]#) == "1"
ALORS
SI #[PIECE][INTERRUPTEUR1][SceneId]# == 14
ALORS
SI #[PIECE][INTERRUPTEUR2][Etat]# > 0
ALORS
#[PIECE][INTERRUPTEUR2][Off]# - Options : {"enable":"1","background":"0"}
SINON
#[PIECE][INTERRUPTEUR2][On]# - Options : {"enable":"1","background":"0"}
SINON
SINON
SI trigger(#[PIECE][INTERRUPTEUR2][SceneId]#) == "1"
ALORS
SI #[PIECE][INTERRUPTEUR2][SceneId]# == 14
ALORS
SI #[PIECE][INTERRUPTEUR1][Etat]# > 0
ALORS
#[PIECE][INTERRUPTEUR1][Off]# - Options : {"enable":"1","background":"0"}
SINON
#[PIECE][INTERRUPTEUR1][On]# - Options : {"enable":"1","background":"0"}
SINON
SINON
Voir le log :
------------------------------------
[2026-01-02 17:18:41][SCENARIO] -- Début : . Tags : {"#trigger#":"zwavejsCmd","#trigger_name#":"[PIECE][INTERRUPTEUR1][SceneId]","#trigger_id#":"11645","#trigger_message#":"Scénario exécuté automatiquement sur événement venant de : [PIECE][INTERRUPTEUR1][SceneId] (14)","#trigger_value#":14}
[2026-01-02 17:18:41][SCENARIO] - Exécution du sous-élément de type [condition] : if trigger(#[PIECE][INTERRUPTEUR1][SceneId]#) == "1"
[2026-01-02 17:18:41][SCENARIO] Evaluation de la condition : [1 == "1"] = Vrai
[2026-01-02 17:18:41][SCENARIO] - Exécution du sous-élément de type [action] : then
[2026-01-02 17:18:41][SCENARIO] Exécution d'un bloc élément : 1936
[2026-01-02 17:18:41][SCENARIO] - Exécution du sous-élément de type [condition] : if #[PIECE][INTERRUPTEUR1][SceneId]# == 14
[2026-01-02 17:18:41][SCENARIO] Evaluation de la condition : [14 == 14] = Vrai
[2026-01-02 17:18:41][SCENARIO] - Exécution du sous-élément de type [action] : then
[2026-01-02 17:18:41][SCENARIO] Exécution d'un bloc élément : 1937
[2026-01-02 17:18:41][SCENARIO] - Exécution du sous-élément de type [condition] : if #[PIECE][INTERRUPTEUR2][Etat]# > 0
[2026-01-02 17:18:41][SCENARIO] Evaluation de la condition : [99 > 0] = Vrai
[2026-01-02 17:18:41][SCENARIO] - Exécution du sous-élément de type [action] : then
[2026-01-02 17:18:41][SCENARIO] Exécution de la commande [PIECE][INTERRUPTEUR2][Off]
[2026-01-02 17:18:41][SCENARIO] Fin correcte du scénario
------------------------------------
[2026-01-02 17:18:42][SCENARIO] -- Début : . Tags : {"#trigger#":"zwavejsCmd","#trigger_name#":"[PIECE][INTERRUPTEUR1][SceneId]","#trigger_id#":"11645","#trigger_message#":"Scénario exécuté automatiquement sur événement venant de : [PIECE][INTERRUPTEUR1][SceneId] (14)","#trigger_value#":14}
[2026-01-02 17:18:42][SCENARIO] - Exécution du sous-élément de type [condition] : if trigger(#[PIECE][INTERRUPTEUR1][SceneId]#) == "1"
[2026-01-02 17:18:42][SCENARIO] Evaluation de la condition : [1 == "1"] = Vrai
[2026-01-02 17:18:42][SCENARIO] - Exécution du sous-élément de type [action] : then
[2026-01-02 17:18:42][SCENARIO] Exécution d'un bloc élément : 1936
[2026-01-02 17:18:42][SCENARIO] - Exécution du sous-élément de type [condition] : if #[PIECE][INTERRUPTEUR1][SceneId]# == 14
[2026-01-02 17:18:42][SCENARIO] Evaluation de la condition : [14 == 14] = Vrai
[2026-01-02 17:18:42][SCENARIO] - Exécution du sous-élément de type [action] : then
[2026-01-02 17:18:42][SCENARIO] Exécution d'un bloc élément : 1937
[2026-01-02 17:18:42][SCENARIO] - Exécution du sous-élément de type [condition] : if #[PIECE][INTERRUPTEUR2][Etat]# > 0
[2026-01-02 17:18:42][SCENARIO] Evaluation de la condition : [0 > 0] = Faux
[2026-01-02 17:18:42][SCENARIO] - Exécution du sous-élément de type [action] : else
[2026-01-02 17:18:42][SCENARIO] Exécution de la commande [PIECE][INTERRUPTEUR2][On]
[2026-01-02 17:18:42][SCENARIO] Fin correcte du scénario```
Rajoute un sleep de 2 secondes à la fin de ton scénario de manière à ce qu’il soit en dehors de toute conditions SI et qu’il s’applique à chaque lancement de scénario.
La cause de ton problème est que ton sceneId est répété.
D’autres sujets en parlent tu n’es pas le seul.