Rule linknx - Version imprimable +- Forum KNX francophone / English KNX forum (https://www.knx-fr.com) +-- Forum : Français (https://www.knx-fr.com/forumdisplay.php?fid=3) +--- Forum : Archives eib-domotique (https://www.knx-fr.com/forumdisplay.php?fid=8) +--- Sujet : Rule linknx (/showthread.php?tid=1113) |
Rule linknx - Casi - 27/05/2010 Bonjour, J'ai une telecommande hager identifié : <object id="telecomande1_v1" gad="0/1/0">Telecomande 1 voie1</object> et j'ai une rule : <rule id="telecomande1butt1"> <condition type="and"> <condition type="object" id="telecomande1_v1" value="on" trigger="true"/> </condition> <actionlist> <action type="set-value" id="garage1_o" value="on" flags="f"/> </actionlist> </rule> Cela fonctionne très bien la première exécution, mais pas ensuite, j'imagine que linknx garde en mémoire le dernier etat du gad et n'estime que la rule ne doit pas être interprète de nouveau. Comment faire pour empêcher ce phénomène? cldt, yannick Rule linknx - Ben - 28/05/2010 Bonjour, Quelle version de linknx utilises-tu ? Si c'est la 1.27, essaye de rajouter ces flags sur ton objet : <object id="telecomande1_v1" gad="0/1/0" flags="cwtus">Telecomande 1 voie1</object> Tiens nous au courant. Ben Rule linknx - Yannick JUPIN - 28/05/2010 Bonjour J'ai esseyer de rajouter ces flahd mais ça ne change rien Cordialement, Yannick Le 28 mai 2010 à 07:55, Ben <tmt.ben@gmail.com> a écrit : > Bonjour, > > Quelle version de linknx utilises-tu ? > > Si c'est la 1.27, essaye de rajouter ces flags sur ton objet : > <object id="telecomande1_v1" gad="0/1/0" flags="cwtus">Telecomande 1 > voie1</object> > > Tiens nous au courant. > > Ben Rule linknx - Yannick JUPIN - 28/05/2010 Sinon j utilise en effet la v 1.27 Cordialement, Yannick Le 28 mai 2010 à 07:55, Ben <tmt.ben@gmail.com> a écrit : > Bonjour, > > Quelle version de linknx utilises-tu ? > > Si c'est la 1.27, essaye de rajouter ces flags sur ton objet : > <object id="telecomande1_v1" gad="0/1/0" flags="cwtus">Telecomande 1 > voie1</object> > > Tiens nous au courant. > > Ben Rule linknx - Ben - 28/05/2010 Dans ton actionlist rajoute <action type="set-value" id="telecomande1_v1" value="off" /> pour réinitialiser l'état de ta télécommande. Rule linknx - Yannick JUPIN - 28/05/2010 Hmmm bien vu, jessai ça ce soir Cordialement, Yannick Le 28 mai 2010 à 13:42, Ben <tmt.ben@gmail.com> a écrit : > Dans ton actionlist rajoute <action type="set-value" > id="telecomande1_v1" value="off" /> pour réinitialiser l'état de ta > télécommande. Rule linknx - jef2000 - 28/05/2010 Bonjour, Si la télécommande envoie un ON sur l'objet telecomande1_v1 chaque fois qu'on appui dessus et n'envoie jamais de OFF, il faut effectivement ajouter le flag 's' sur l'objet sinon il filtrera les ON succcessifs. De la même manière, si rien ne remets systématiquement l'objet garage1_o sur OFF après l'ouverture, il faut ajouter le flag 's' dans la définition de l'objet garage1_o. (par exemple si la porte s'ouvre à moitié, il n'est pas possible d'envoyer un second ON pour relancer l'ouverture si le flag 's' est absent) Le paramètre flags="f" dans le tag <action ....> n'a aucun effet. Il reste un point qui peut encore poser problème dans ce cas ci, c'est le fait que l'actionlist est, par défaut, de type "on-true", ce qui veut dire qu'elle n'est exécutée que lorsque la condition passe de "faux" à "vrai", or dans ce cas ci la condition est vraie en permanence puisqu'on ne reçoit que des ON. Deux solutions à ce problème: 1) Utiliser <actionlist type="if-true"> à la place de <actionlist> (ce dernier étant équivalent à <actionlist type="on-true">). Dans ce cas l'actionlist sera exécutée à chaque fois que la condition est évaluée et que le résultat est "vrai". Et comme grâce au flag 's' sur telecomande1_v1, la condition est évaluée à chaque fois qu'un télégramme est reçu pour cet objet, l'actionlist sera exécutée à chaque fois qu'un ON est reçu. 2) Comme Ben propose, rajouter <action type="set-value" id="telecomande1_v1" value="off" /> dans l'actionlist pour réinitialiser l'état de telecomande1_v1. J'espère que ça clarifie les choses. Je sais que c'est un peu tordu parfois, mais c'est le seul moyen que j'ai trouvé pour pouvoir couvrir tous les comportements possibles. A+ Jean-François On 28 mai, 13:54, Yannick JUPIN <yann...@magikdo.com> wrote: > Hmmm bien vu, jessai ça ce soir > > Cordialement, > Yannick > > Le 28 mai 2010 à 13:42, Ben <tmt....@gmail.com> a écrit : > > > Dans ton actionlist rajoute <action type="set-value" > > id="telecomande1_v1" value="off" /> pour réinitialiser l'état de ta > > télécommande. Rule linknx - Yannick JUPIN - 29/05/2010 Merci pour ces informations utiles Cela résoud en effet le problème Cordialement, Yannick Le 28 mai 2010 à 20:16, jef2000 <jef2000@ouaye.net> a écrit : > Bonjour, > > Si la télécommande envoie un ON sur l'objet telecomande1_v1 chaque > fois qu'on appui dessus et n'envoie jamais de OFF, il faut > effectivement ajouter le flag 's' sur l'objet sinon il filtrera les ON > succcessifs. > De la même manière, si rien ne remets systématiquement l'objet > garage1_o sur OFF après l'ouverture, il faut ajouter le flag 's' dans > la définition de l'objet garage1_o. (par exemple si la porte s'ouvre > à > moitié, il n'est pas possible d'envoyer un second ON pour relancer > l'ouverture si le flag 's' est absent) > > Le paramètre flags="f" dans le tag <action ....> n'a aucun effet. > > Il reste un point qui peut encore poser problème dans ce cas ci, c'e > st > le fait que l'actionlist est, par défaut, de type "on-true", ce qui > veut dire qu'elle n'est exécutée que lorsque la condition passe de > "faux" à "vrai", or dans ce cas ci la condition est vraie en > permanence puisqu'on ne reçoit que des ON. > Deux solutions à ce problème: > 1) Utiliser <actionlist type="if-true"> à la place de <actionlist> ( > ce > dernier étant équivalent à <actionlist type="on-true">). Dans ce c > as > l'actionlist sera exécutée à chaque fois que la condition est > évaluée > et que le résultat est "vrai". Et comme grâce au flag 's' sur > telecomande1_v1, la condition est évaluée à chaque fois qu'un > télégramme est reçu pour cet objet, l'actionlist sera exécutée à > chaque fois qu'un ON est reçu. > 2) Comme Ben propose, rajouter <action type="set-value" > id="telecomande1_v1" value="off" /> dans l'actionlist pour > réinitialiser l'état de telecomande1_v1. > > J'espère que ça clarifie les choses. Je sais que c'est un peu tordu > parfois, mais c'est le seul moyen que j'ai trouvé pour pouvoir couvr > ir > tous les comportements possibles. > > A+ > > Jean-François > > On 28 mai, 13:54, Yannick JUPIN <yann...@magikdo.com> wrote: >> Hmmm bien vu, jessai ça ce soir >> >> Cordialement, >> Yannick >> >> Le 28 mai 2010 à 13:42, Ben <tmt....@gmail.com> a écrit : >> >>> Dans ton actionlist rajoute <action type="set-value" >>> id="telecomande1_v1" value="off" /> pour réinitialiser l'état d >>> e ta >>> télécommande. |