Quand je fais un single ou un double j’ai la lumière qui Toggle tout comme le garage. Je ne comprends pas.
J’ai également un souci avec un capteur de vibration, je poste ensemble car je pense que mes problèmes sont liés.
Ce capteur Aqara lui ne met pas la variable Statut à jour. Comme vous pouvez le voir
dans le screen ci-dessous. Zigbee2mqtt remonte bien l’info comme quoi il n’y a plus d’action (au bout de 30s) mais mon Statut ne change jamais.
Pour mon capteur de vibration j’ai vu ce comportement… En fait comme le JSON ne contient pas l’information action, jMQTT ne sait pas que ça existe et donc pas possible de mettre à jour (aka effacer) l’info
Au final on s’en sort en analysant le payload complet dans un info binaire d’un virtuel par exemple urlencode(#[Au sous-sol][SecheLingeMQTT][SecheLinge]#) matches "/.*vibration.*/i"
Salut, pour les capteurs de vibration tu ne peux pas les utiliser tel quel car pas du binaire pour l’alarme, il faut faire scénario / virtuel, chercher le sujet sur le plugin xiaomi.
J’en profite, sur un double interrupteur AQARA filaire, quand j’appui sur l’interrupteur gauche :
un click simple allume une lumière via un scénario (non branchée sur l’interrupteur)
un click release fait un toggle pour allumer/éteindre l’alarme
Mais l’info du click et click_left reste dans le playload (sauf bien-sur si je fais du click droit) donc des fois quand click simple sur le left l’alarme s’allume (car toujours dans le playload).
Je me réponds à moi-même, ce que je ne comprends pas c’est que quand je cliques sur mon bouton gauche, (simple click) dans les logs j’ai les deux infos, CLICK : LEFT et CLICKLEFT : RELEASE et donc les 2 scénarios se lancent celui avec la lumière en simple click gauche et l’alarme en release gauche.
A priori, tu repères beaucoup d’informations : le coté : click=left (ou right) et le fait de relâcher le bouton : clickleft=release (et j’imagine clickright)… Probablement que ces valeurs se suivent dans le temps:
à t0 click = left
à t1-clickleft =release
ça semble logique par exemple pour pouvoir déterminer la durée du maintien du bouton (en faisant t1-t0)… A mon avis tu confonds le payload (le message qui est émis) avec les états que construit jMQTT. Comme pour les vibrations, si l’infos n’est pas dans le payload, jMQTT ne sais pas effacer les infos… et donc tu vois toujours la dernière valeur.
Maintenant sans historique et sans le détails de tes scénarios c’est pas possible de confirmer… Regarde et fait l’analyse précisément. Une fois que tu vois ce que ça fait, adapte tes scénarios
Oui le playload est très chargé. Juste pour parler du click (sans compter linkquality et tout) :
Click qui peut donner : left ou right
Button_left : release ou hold
Button_right : release ou hold
Pour mes deux scénarios j’ai mis :
1er : Lumière
Déclencheur : Click
Si Click == Left
2eme : Alarme
Déclencheur : Bouton_left
Si Bouton_left == Release
Quand je click sur l’interrupteur, single, le playload remonte le click et le dernier statut de button_left en même temps.
Je mets de coté les noms qui sont pas forcement corrects (Bouton_left ?) mais l’idée est là je pense.
En gros, tu déclenches le scénario 1 quand tu appuis sur le bouton gauche… jusque là ça va…
Mais tu déclenches aussi le scénario 2 quand tu relâches le bouton gauche…
On est bien d’accord que tu va forcement relâcher le bouton à un moment ou un autre quand tu veux juste allumer la lumière non ?
Donc c’est purement un souci de conception …
Tu as plusieurs options à la place : simple click/ double click etc… ou bien clic droit /clic gauche
Je pensais le problème réglé, mais non. En fait maintenant quand je fais un double ckick dans les logs du scénario de la lumière qui fonctionne avec un simple click :
[2020-06-09 18:26:58][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Garage][Interrupteur garage][CLICK].
[2020-06-09 18:26:59][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-06-09 18:26:59][SCENARIO] Evaluation de la condition : **[0 == "single" OU "double" == "single"] = Vrai**
[2020-06-09 18:26:59][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-06-09 18:26:59][SCENARIO] Exécution d'un bloc élément : 29
[2020-06-09 18:26:59][SCENARIO] Exécution du sous-élément de type [condition] : if
[2020-06-09 18:26:59][SCENARIO] Evaluation de la condition : [0 == "OFF" ] = Vrai
[2020-06-09 18:26:59][SCENARIO] Exécution du sous-élément de type [action] : then
[2020-06-09 18:26:59][SCENARIO] Exécution de la commande [Sous-sol][Interrupteur sous-sol][ON]
[2020-06-09 18:26:59][SCENARIO] Fin correcte du scénario