Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Rule linknx
#1
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
#2
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
#3
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
#4
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
#5
Dans ton actionlist rajoute <action type="set-value"
id="telecomande1_v1" value="off" /> pour réinitialiser l'état de ta
télécommande.
#6
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.
#7
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.
#8
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.


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)