Scénario déclenché sans valeur de scène

Bonjour,

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 ?

Merci pour votre aide !

Bonjour,

On peut voir le log du scénario ? Et le scénario ?

Et oui ce comportement touche beaucoup de modules en Central Scene. Il y a des solutions trouvables sur la communauté comme ici :

Pour ma part aucun soucis avec mon fgd212 étant donné que j’exclue la valeur nulle dans mon scénario.

Bonjour,

Voici le scénario

- 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```

Cordialement

Bonjour,

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.

Je vois que tu as exclu la valeur null ? Je ne suis pas fan des pauses (ou des attentes) forcées…

Pas compris.

Pas trop le choix ici vu que tu utilises le même sceneId pour on/off. Tu ne peux donc pas utiliser « ne pas répéter » sur une condition SI.

Un pause de 2 secondes ne va rien faire à ton Jeedom.

Ok merci de l’aide