Changement d'état trop rapide pour le scénario

Bonjour,
Je rencontre un problème depuis ma bascule de Zwave vers ZWaveJS.
L’équipement change d’état trop rapidement (1 seconde), du coup quand le scénario teste la commande, l’état a déjà changé et l’exécution ne se fait pas.
J’ai le problème sur les équipements suivants:
FGKF601 - Keyfob
CWS-3101 - Wall Switch

[2023-01-14 15:01:44][SCENARIO] -- Start : Scenario execute automatiquement sur evenement venant de : [Itinerant][15 - ID-RF Wall Switch CWS-3101][CentralScene-3] (0).
[2023-01-14 15:01:44][SCENARIO] - Exécution du sous-élément de type [condition] : if trigger(#[Itinérant][15 - ID-RF Wall Switch CWS-3101][CentralScene-1]#) == 1 ET #[Itinérant][15 - ID-RF Wall Switch CWS-3101][CentralScene-1]# == 0
[2023-01-14 15:01:44][SCENARIO] Evaluation de la condition : [0 == 1 ET 90 == 0] = Faux
[2023-01-14 15:01:44][SCENARIO] - Exécution du sous-élément de type [action] : else
[2023-01-14 15:01:44][SCENARIO] - Exécution du sous-élément de type [condition] : if trigger(#[Itinérant][15 - ID-RF Wall Switch CWS-3101][CentralScene-3]#) == 1 ET #[Itinérant][15 - ID-RF Wall Switch CWS-3101][CentralScene-3]# == 0
[2023-01-14 15:01:44][SCENARIO] Evaluation de la condition : [1 == 1 ET 90 == 0] = Faux
[2023-01-14 15:01:44][SCENARIO] - Exécution du sous-élément de type [action] : else
[2023-01-14 15:01:44][SCENARIO] Fin correcte du scénario

On voit bien que l’état 0 déclenche le scénario, mais quand il passe sur le 2eme bloc, il est déjà retourné à 90.

Comment remédier au problème ?
Je n’ai pas trouvé un paramètre au niveau des équipements pour que l’état reste plus longtemps.

Merci pour votre aide.
Mathieu

Et si tu enregistrais le fait que le trigger soit ton détecteur dans un tag sur le premier test.

@mich0111 Merci pour ton retour.
Tu peux me montrer un exemple ?
Merci

SI trigger(détecteur)
ALORS
    tag(trigg) = 1
    ...



SI tag(trigg) == 1
ALORS
    ...

La syntaxe indiquée n’est pas bonne, tu devras la corriger en lisant la doc.
L’idée étant de stocker l’info que le trigger est ton détecteur.
Par la suite, au lieu de tester ton détecteur, tu testes ton tag, ce qui revient au même sauf que l’état de ton détecteur n’est plus à la bonne valeur contrairement au tag.
Une fois sortie du scénario, le tag n’existera plus jusqu’à la prochaine entrée dans le scénario.

1 « J'aime »

Je vais tester cela :wink:
Merci

Ceci étant, en y réfléchissant, je ne comprends pas pourquoi le trigger n’est plus bon.
Normalement, l’information de triggering est consistante tant que le scénario est en cours d’exécution, et ce que le détecteur soit revenu à son état initial ou non.
Peux-tu faire un scénario de test juste pour tester le triggering avec ton détecteur qui réagit trop vite ?

1 « J'aime »

Ce n’est pas le trigger qui pause problème, c’est vraiment la valeur de la commande.
Le trigger n’est pas le même (2 touches différentes).

Mathieu

Je crois avoir vue passer un PR en 4.4 pour la valeur du trigger soit enregistré avant le lancement du scenario et ne bouge pas justement :thinking:

Ah ben là si çà va trop vite on va pas se plaindre quand meme :face_with_spiral_eyes:

2 « J'aime »

En fait, je ne comprends pas ton scénario.
Ton premier SI teste :

SI trigger(scene1) == 1 ET trigger(scene1) == 0

C’est comme qui dirait incohérent.

Ça me paraîtrait effectivement logique et surtout souhaitable.

@mich0111 tu te trompes :

trigger(#[Itinérant][15 - ID-RF Wall Switch CWS-3101][CentralScene-1]#) == 1 ET #[Itinérant][15 - ID-RF Wall Switch CWS-3101][CentralScene-1]# == 0

@kiboost Je suis d’accord, mais 1s en position 0 ce qui fait que y’a des loupés :wink:

Effectivement, sur smartphone, c’est difficile à lire.

Ceci étant, le PR mentionné par @Kiboost correspond au workaround que je t’ai proposé plus haut.

1 « J'aime »

@mich0111 aucun problème :slight_smile:
Du coup, cela corrigerait mon problème ?
@kiboost cela enregistre aussi la valeur de la commande qui a lancé le scénario ?

Mathieu

1 « J'aime »

Je n’ai pas testé faudrai retrouver le PR

1 « J'aime »

Bonsoir,

Non.
A mon avis, le plus simple, et même si c’est lourd mais comme c’est provisoire c’est pas trop grave, serait d’enregistrer dans des tags, dès le début du scénario avant tout autre action, trigger, valeurs des triggers et valeurs des détecteurs.
Ensuite, tu auras le temps de faire ce que tu veux.
@kiboost
Je viens de lire ton commentaire dans le PR. Sans l’avoir lu, j’ai dit la même chose.
Les grands esprits … :wink:

Au risque de paraitre idiot, le fait que le PR soit fermé, cela veut-il dire que l’idée est abandonnée et ne sera pas intégrée dans Jeedom ?

Ça, je ne sais pas dire, il faut t’adresser à qui de droit.

Salut,
Ton scénario ne peut pas fonctionner :thinking:
Une variable ne peut avoir qu’une valeur à la fois !
Donc tes conditions blocky ne fonctionnent pas.

Une voiture rouge déclenche l’ouverture du garage, pour le refermer il faut que la même voiture soit verte et jaune :crazy_face::crazy_face:

T’as un déclenchement sur le scénario pour n’importe quelle valeur, OK
Après tu récupères le nom de ton déclencheur, tu teste va valeur et tu fais ton action qui va bien

1 « J'aime »