Créer scénario simple et double appui avec variable

Bonsoir,

J’ai une centrale domotique/alarme avec des relais, dimmer, des boutons poussoir standard avec un ID derrière chaque bouton relié par un bus. Actuellement elle ne gère pas les doubles appuis ce qui est un gros manque.

Le fabricant fournit un plugin pour lier la centrale à Jeedom.

En installant le plugin, mes boutons poussoir se retrouvent dans les variables de Jeedom et dans la documentation il est expliqué que je peux utiliser les variables pour déclencher des scénarios.

BP

Voici un exemple des variables dont je dispose :

Je peux d’après la documentation uniquement déclencher des scénarios via un appui ou relâchement.

La valeur de la variable est uniquement 0 ou 1.

Dans quelle mesure via les scénarios, je pourrais arriver à faire comprendre à Jeedom que j’appuie 1 ou 2 fois pour déclencher différents scénarios ?

Soit c’est impossible, soit vous avez peut-être des astuces dont je serais preneur.

D’avance merci.

Bonjour,

Il y a une fonction core pour compter le nombre d’appui en un temps x

Salut,

Tu peux tenter un truc.

Créer un virtuel (plugin virtuel) avec des commandes info binaire que tu historiques et en valeur variable(BP1...) == 1

Un autre virtuel info binaire stateChanges(#[Commande_BP1]#,1, 2 secondes) == 2

Si ça le fait tu auras 1 dans la 2eme commande en cas de double clic sur 2 secondes. À voir si ça marche avec 1 secondes.

Bonsoir,

Ou est-ce que je peux trouver cette fonction ?

Est-ce qu’il y a de la documentation sur le fonctionnement ?

@Bison vient de te la donner
https://doc.jeedom.com/fr_FR/core/3.3/scenario

Il y a plusieurs façons de faire en fait …

Perso j’aurais sans doute fait un scénario dont le déclencheur est le passage de cette variable à 1.

Une fois le scénario déclenché, j’attends de voir si elle repasse bien à 0 puis à 1 et si c’est bien le cas, je fais une action que je veux pour le double appui.
Si c’est pas le cas alors je déclenche l’action du simple appui.

@SWR
Je n’avais pas compris que le msg de @Bison était en lien avec le vôtre.

@Bison
J’ai installé le plugin Virtuel et j’ai tenté de retranscrire ce que vous expliquez :

Est-ce que je suis dans le bon ?

@Aurel
Je vais aussi tester vôtre proposition.

Merci pour vos idées !

Presque :

  • pas de # autour de variable(…)
  • il faut cliquer sur « Rechercher équipement » pour aller chercher le nom de la commande BP… du virtuel. Là elle n’est pas correcte dans la fonction statesChanges

Est-ce que c’est mieux comme ca ?

Oui, reste à vérifier si ça marche.

Un clic normal devrait donner 0 pour la 2eme commande au bout de 2 secondes

Un double clic en 2 secondes devrait donner 1

Dans la configuration du virtuel, l’état de statesChange qui était à 1 lors de la création de celui-ci est passé à 0 :

Ça a fait un instant ce que vous dites et je n’arrive plus à le reproduire :

J’ai crée un nouveau virtuel identique :

[2023-12-13 00:03:58]INFO : Evènement sur la commande [Salle TV][test][state] valeur : 0
[2023-12-13 00:08:54]INFO : Evènement sur la commande [Salle TV][test][state] valeur : 0
[2023-12-13 00:10:57]INFO : Evènement sur la commande [Salle TV][test][state] valeur : 0
[2023-12-13 00:13:13]INFO : Evènement sur la commande [Salle TV][test][state] valeur : 1
[2023-12-13 00:13:14]INFO : Evènement sur la commande [Salle TV][test][state] valeur : 0
[2023-12-13 00:13:48]INFO : Evènement sur la commande [Salle TV][test][state] valeur : 1
[2023-12-13 00:13:49]INFO : Evènement sur la commande [Salle TV][test][state] valeur : 0

Ca semble fonctionner 2 fois et puis, à nouveau impossible à reproduire.

Est-ce que tu peux essayer de mettre 2 sec à la place de 2 secondes, j’ai un doute.

Et c’est pas évident de voir tes manips physiques rien qu’avec ses captures (qui sont bien pourtant).
Est-ce que la commande « BP » du virtuel suis déjà bien tes actions donc que tu repères un passage à la valeur 1 quand tu appuies une fois sur l’inter et 2 passages rapproché à 1 quand tu appuies 2 fois sur l’inter ?

Oui, je comprends bien que ce n’est pas ultra parlant sachant que cela correspond à plusieurs essais de simple et double :blush:

Je vais essayer avec 2 sec.

Ça, c’est un simple :

[2023-12-13 21:10:01]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 1
[2023-12-13 21:10:01]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 0

Ça, c’est un double :

[2023-12-13 21:14:15]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 1
[2023-12-13 21:14:15]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 0
[2023-12-13 21:14:15]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 1
[2023-12-13 21:14:15]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 0

Ok donc ça c’est bon pour la première commande.
Que donne la 2eme du coup ?

Je n’ai rien dans les logs concernant la commande state.
Que je fasse un appui ou un double appui, je n’ai que la commande BP1 qui passe une ou deux fois de 1 à 0.
Pour la commande state, j’ai une réaction lors de la création du virtuel, après plus rien.
Soit je ne fais pas ce qu’il faut, soit je n’ai pas configuré correctement, soit ça ne fonctionne pas.

Je vois pas d’erreur par rapport à ce que tu as montré en tout cas. Je testerai un truc du genre chez moi pour voir.

Par contre, plus difficile de sortir un log propre, mais si je fais 4 appuis, j’arrive à faire passer la commande state de 0 a 1 :


0433|[2023-12-13 22:34:02]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 1
0434|[2023-12-13 22:34:03]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 0
0435|[2023-12-13 22:34:03]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 1
0436|[2023-12-13 22:34:03]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 0
0437|[2023-12-13 22:34:03]INFO : Evènement sur la commande [Salle TV][test][state] valeur : 1
0438|[2023-12-13 22:34:04]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 1
0439|[2023-12-13 22:34:04]INFO : Evènement sur la commande [Salle TV][test][state] valeur : 0
0440|[2023-12-13 22:34:04]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 0
0441|[2023-12-13 22:34:04]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 1
0444|[2023-12-13 22:34:04]INFO : Evènement sur la commande [Salle TV][test][BP1] valeur : 0

Tu peux créer une commande numérique NbStateChanges qui vaudrait stateChanges([Salle TV][test][BP1], 1, 8 sec) et faire :

  • Un clic simple :
    regarder le résultat du changement 1 → 0 de [Salle TV][test][BP1]
    regarder le changement de [Salle TV][test][NbStateChanges] de 0 à 1

Attendre 15 à 30 secondes puis

  • Un clic double :
    regarder le résultat du changement 1 → 0 → 1 → 0 de [Salle TV][test][BP1]
    regarder le changement de [Salle TV][test][NbStateChanges] de 1 à 2

Attendre 15 à 30 secondes puis

  • Un clic simple :
    regarder le résultat du changement 1 → 0 de [Salle TV][test][BP1]
    regarder le changement de [Salle TV][test][NbStateChanges] de 2 à 1

Bonsoir,

La commande numérique c’est à la place ou pour remplacer le statechange binaire :

stateChanges(#[Salle TV][BP][BP1273A7A1700B4]#,1, 2 sec) == 2