Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Syntax condition dans rules linknx
#1
Bonjour je cherche la syntax pour faire ceci :

Si a=on ou b=on ou c=on ET d=on Alors xxx=on

Je l'ai traduit comme ça mais ça ne fonctione pas :

<rule id="escalier_Auto">
<condition type="or">
<condition type="object" id="a" value="on" trigger="true"/>
<condition type="object" id="b" value="on" trigger="true"/>
<condition type="object" id="c" value="on" trigger="true"/>
</condition>
<condition type="and">
<condition type="object" id="d" value="on" trigger="true" />
</condition>
<actionlist>
<action type="set-value" id="xxx" value="on" flags="f"/>
</actionlist>
</rule>
Répondre
#2
Bonjour,

comme ça c'est mieux je pense :

<rule id="escalier_Auto">
<condition type="and">
<condition type="or">
<condition type="object" id="a" value="on" trigger="true"/>
<condition type="object" id="b" value="on" trigger="true"/>
<condition type="object" id="c" value="on" trigger="true"/>
</condition>
<condition type="object" id="d" value="on" trigger="true" />
</condition>
<actionlist>
<action type="set-value" id="xxx" value="on" flags="f"/>
</actionlist>
</rule>

@+
Anthony.

Le 5 avril 2011 13:39, Casi <yannick@magikdo.com> a écrit :

> Bonjour je cherche la syntax pour faire ceci :
>
> Si a=on ou b=on ou c=on ET d=on Alors xxx=on
>
> Je l'ai traduit comme ça mais ça ne fonctione pas :
>
> <rule id="escalier_Auto">
> <condition type="or">
> <condition type="object" id="a" value="on"
> trigger="true"/>
> <condition type="object" id="b" value="on"
> trigger="true"/>
> <condition type="object" id="c" value="on"
> trigger="true"/>
> </condition>
> <condition type="and">
> <condition type="object" id="d" value="on"
> trigger="true" />
> </condition>
> <actionlist>
> <action type="set-value" id="xxx" value="on"
> flags="f"/>
> </actionlist>
> </rule>
Répondre
#3
Super, effectivement ça fonctionne! Merci je n'avait pas du tout
pensé a cette syntaxe.

On 5 avr, 13:45, Anthony PENHARD <a.penh...@gmail.com> wrote:
> Bonjour,
>
> comme ça c'est mieux je pense :
>
> <rule id="escalier_Auto">
>   <condition type="and">
>     <condition type="or">
>       <condition type="object" id="a" value="on" trigger="true"/>
>       <condition type="object" id="b" value="on" trigger="true"/>
>       <condition type="object" id="c" value="on" trigger="true"/>
>     </condition>
>     <condition type="object" id="d" value="on" trigger="true" />
>   </condition>
>   <actionlist>
>     <action type="set-value" id="xxx" value="on" flags="f"/>
>   </actionlist>
> </rule>
>
> @+
> Anthony.
>
> Le 5 avril 2011 13:39, Casi <yann...@magikdo.com> a écrit :
>
>
>
>
>
>
>
> > Bonjour je cherche la syntax pour faire ceci :
>
> > Si a=on ou b=on ou c=on ET d=on Alors xxx=on
>
> > Je l'ai traduit comme ça mais ça ne fonctione pas :
>
> > <rule id="escalier_Auto">
> >                        <condition type="or">
> >                                <condition type="object" id="a" value="on"
> > trigger="true"/>
> >                                <condition type="object" id="b" value="on"
> > trigger="true"/>
> >                                <condition type="object" id="c" value="on"
> > trigger="true"/>
> >                        </condition>
> >                        <condition type="and">
> >                                <condition type="object" id="d" value="on"
> > trigger="true" />
> >                        </condition>
> >                        <actionlist>
> >                                <action type="set-value" id="xxx" value="on"
> > flags="f"/>
> >                        </actionlist>
> >                </rule>
Répondre
#4
Bonjour,

je me permet de poster a la suite de ton sujet car mon problème ce situe
aussi dans la rédaction de rules linknx.

En fait, j'aimerai définir l'action d'un bouton a partir d'un autre bouton.
Je m'explique:

Si le bouton A est on, alors lors de l'appui sur le bouton 1 vas allumer une
certaine lumière, mais si le bouton B est on, alors je voudrais que le
bouton 1 allume une autre lumière.

Plus clairement j'aimerai définir l'action d'un bouton en fonction du
contexte dans lequel ce situ une pièce de ma maison (salle de projection
mais aussi de réception) que je définit en tournant un commutateur...

La seule manière de faire que j'ai trouvé:

<rule id="alarme">
<condition type="and">
<condition type="object" id="commut1" value="on"
trigger="true"/>
<condition type="object" id="interrupteur 1"
value="on" trigger="true"/>
</condition>
<actionlist>
<action type="set-value" id="lampe1"
value="on"/>
</actionlist>
</rule>

<rule id="alarme">
<condition type="and">
<condition type="object" id="commut2" value="on"
trigger="true"/>
<condition type="object" id="interrupteur 1"
value="on" trigger="true"/>
</condition>
<actionlist>
<action type="set-value" id="lampe1"
value="off"/>
</actionlist>
</rule>

mais il y a peut être plus simple et moins lourd, car j'ai 4 modes et 4
interrupteurs avec a chaque fois des ambiances différentes...

Autre question, est-ce que je peut envoyer une valeur d'éclairement (a ce
moment la en hexa)?

Merci

Si je doit refaire une nouvelle discutions dites le moi.

Le 5 avril 2011 13:49, Casi <yannick@magikdo.com> a écrit :

> Super, effectivement ça fonctionne! Merci je n'avait pas du tout
> pensé a cette syntaxe.
>
> On 5 avr, 13:45, Anthony PENHARD <a.penh...@gmail.com> wrote:
> > Bonjour,
> >
> > comme ça c'est mieux je pense :
> >
> > <rule id="escalier_Auto">
> > <condition type="and">
> > <condition type="or">
> > <condition type="object" id="a" value="on" trigger="true"/>
> > <condition type="object" id="b" value="on" trigger="true"/>
> > <condition type="object" id="c" value="on" trigger="true"/>
> > </condition>
> > <condition type="object" id="d" value="on" trigger="true" />
> > </condition>
> > <actionlist>
> > <action type="set-value" id="xxx" value="on" flags="f"/>
> > </actionlist>
> > </rule>
> >
> > @+
> > Anthony.
> >
> > Le 5 avril 2011 13:39, Casi <yann...@magikdo.com> a écrit :
> >
> >
> >
> >
> >
> >
> >
> > > Bonjour je cherche la syntax pour faire ceci :
> >
> > > Si a=on ou b=on ou c=on ET d=on Alors xxx=on
> >
> > > Je l'ai traduit comme ça mais ça ne fonctione pas :
> >
> > > <rule id="escalier_Auto">
> > > <condition type="or">
> > > <condition type="object" id="a"
> value="on"
> > > trigger="true"/>
> > > <condition type="object" id="b"
> value="on"
> > > trigger="true"/>
> > > <condition type="object" id="c"
> value="on"
> > > trigger="true"/>
> > > </condition>
> > > <condition type="and">
> > > <condition type="object" id="d"
> value="on"
> > > trigger="true" />
> > > </condition>
> > > <actionlist>
> > > <action type="set-value" id="xxx"
> value="on"
> > > flags="f"/>
> > > </actionlist>
> > > </rule>
>
Répondre
#5
bonjour,

si je comprends bien tu as 2 BP et pour 1 des deux l'action est différente
en fonction de l'état du premier

états des BP :
BP1 = on ou off
BP2 = on ou off

donc un truc du genre :

Si BP1 = on
si BP2 = on => lampe1 = on
si BP2 = off => lampe1 = off
sinon
si BP2 = on => lampe2 = on
si BP2 = off => lampe2 = off

est-ce bien ça ?

qu'entends tu par 4 modes et 4 inter ?

sinon oui tu peux envoyer une valeur d'éclairement ce n'est pas en hexa
mais soit 0-255 ou 0-100 (%) en fonction de la définition de l'object de
commande valeur d'éclairement respectivement 5.xxx ou 5.001

exemple :
<action type="set-value" id="Set_valeur_eclairement_lampe1" value="50"/>

@+
Anthony.


> Bonjour,
>
> je me permet de poster a la suite de ton sujet car mon problème ce situe
> aussi dans la rédaction de rules linknx.
>
> En fait, j'aimerai définir l'action d'un bouton a partir d'un autre
> bouton.
> Je m'explique:
>
> Si le bouton A est on, alors lors de l'appui sur le bouton 1 vas allumer
> une
> certaine lumière, mais si le bouton B est on, alors je voudrais que le
> bouton 1 allume une autre lumière.
>
> Plus clairement j'aimerai définir l'action d'un bouton en fonction du
> contexte dans lequel ce situ une pièce de ma maison (salle de projection
> mais aussi de réception) que je définit en tournant un commutateur...
>
> La seule manière de faire que j'ai trouvé:
>
> <rule id="alarme">
> <condition type="and">
> <condition type="object" id="commut1" value="on"
> trigger="true"/>
> <condition type="object" id="interrupteur 1"
> value="on" trigger="true"/>
> </condition>
> <actionlist>
> <action type="set-value" id="lampe1"
> value="on"/>
> </actionlist>
> </rule>
>
> <rule id="alarme">
> <condition type="and">
> <condition type="object" id="commut2" value="on"
> trigger="true"/>
> <condition type="object" id="interrupteur 1"
> value="on" trigger="true"/>
> </condition>
> <actionlist>
> <action type="set-value" id="lampe1"
> value="off"/>
> </actionlist>
> </rule>
>
> mais il y a peut être plus simple et moins lourd, car j'ai 4 modes et 4
> interrupteurs avec a chaque fois des ambiances différentes...
>
> Autre question, est-ce que je peut envoyer une valeur d'éclairement (a ce
> moment la en hexa)?
>
> Merci
>
> Si je doit refaire une nouvelle discutions dites le moi.
>
> Le 5 avril 2011 13:49, Casi <yannick@magikdo.com> a écrit :
>
>> Super, effectivement ça fonctionne! Merci je n'avait pas du tout
>> pensé a cette syntaxe.
>>
>> On 5 avr, 13:45, Anthony PENHARD <a.penh...@gmail.com> wrote:
>> > Bonjour,
>> >
>> > comme ça c'est mieux je pense :
>> >
>> > <rule id="escalier_Auto">
>> > <condition type="and">
>> > <condition type="or">
>> > <condition type="object" id="a" value="on" trigger="true"/>
>> > <condition type="object" id="b" value="on" trigger="true"/>
>> > <condition type="object" id="c" value="on" trigger="true"/>
>> > </condition>
>> > <condition type="object" id="d" value="on" trigger="true" />
>> > </condition>
>> > <actionlist>
>> > <action type="set-value" id="xxx" value="on" flags="f"/>
>> > </actionlist>
>> > </rule>
>> >
>> > @+
>> > Anthony.
>> >
>> > Le 5 avril 2011 13:39, Casi <yann...@magikdo.com> a écrit :
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > > Bonjour je cherche la syntax pour faire ceci :
>> >
>> > > Si a=on ou b=on ou c=on ET d=on Alors xxx=on
>> >
>> > > Je l'ai traduit comme ça mais ça ne fonctione pas :
>> >
>> > > <rule id="escalier_Auto">
>> > > <condition type="or">
>> > > <condition type="object" id="a"
>> value="on"
>> > > trigger="true"/>
>> > > <condition type="object" id="b"
>> value="on"
>> > > trigger="true"/>
>> > > <condition type="object" id="c"
>> value="on"
>> > > trigger="true"/>
>> > > </condition>
>> > > <condition type="and">
>> > > <condition type="object" id="d"
>> value="on"
>> > > trigger="true" />
>> > > </condition>
>> > > <actionlist>
>> > > <action type="set-value" id="xxx"
>> value="on"
>> > > flags="f"/>
>> > > </actionlist>
>> > > </rule>
>>
>
Répondre
#6
En fait j'ai un commutateur 4 positions (branché sur un module 4 entrées)
qui vas définir l'occupation:

Soirée,
Projection de film,
Repas,
Normal.

ET j'ai 2x2 BP (à différent endroit de la pièce) qui doivent agir de la même
manière (pour les deux entrée 1 des deux BP et les 2 entrée 2 des deux BP)
en fonction de l'activation d'un des 4 modes (donc le on de l'entrée 1 ou 2
ou 3 ou 4).

Donc c'est bien le principe que tu a retranscrit mais j'ai 6 sorties a
commander (pour faire varier "l'intensité" lumineuse de la pièce en allumant
plus ou moins de lampes et plus ou moins fort car j'ai un groupes de lampes
en variation).

Mais le principe c'est surtout que je ne veut pas une usine a gaz avec 40 BP
pour choisir quelle lampe allumer et le définir en fonction de mon
commutateur.

Alors la question est est-ce que je suis obligé de faire comme j'ai présenté
sur mon premier post ou si il y a une solution plus rapide et plus efficace.

En tout cas, merci pour ta réponse.

Stephane

Le 7 avril 2011 10:47, Anthony PENHARD <a.penhard@gmail.com> a écrit :

> bonjour,
>
> si je comprends bien tu as 2 BP et pour 1 des deux l'action est différente
> en fonction de l'état du premier
>
> états des BP :
> BP1 = on ou off
> BP2 = on ou off
>
> donc un truc du genre :
>
> Si BP1 = on
> si BP2 = on => lampe1 = on
> si BP2 = off => lampe1 = off
> sinon
> si BP2 = on => lampe2 = on
> si BP2 = off => lampe2 = off
>
> est-ce bien ça ?
>
> qu'entends tu par 4 modes et 4 inter ?
>
> sinon oui tu peux envoyer une valeur d'éclairement ce n'est pas en hexa
> mais soit 0-255 ou 0-100 (%) en fonction de la définition de l'object de
> commande valeur d'éclairement respectivement 5.xxx ou 5.001
>
> exemple :
> <action type="set-value" id="Set_valeur_eclairement_lampe1" value="50"/>
>
> @+
> Anthony.
>
>
> > Bonjour,
> >
> > je me permet de poster a la suite de ton sujet car mon problème ce situe
> > aussi dans la rédaction de rules linknx.
> >
> > En fait, j'aimerai définir l'action d'un bouton a partir d'un autre
> > bouton.
> > Je m'explique:
> >
> > Si le bouton A est on, alors lors de l'appui sur le bouton 1 vas allumer
> > une
> > certaine lumière, mais si le bouton B est on, alors je voudrais que le
> > bouton 1 allume une autre lumière.
> >
> > Plus clairement j'aimerai définir l'action d'un bouton en fonction du
> > contexte dans lequel ce situ une pièce de ma maison (salle de projection
> > mais aussi de réception) que je définit en tournant un commutateur...
> >
> > La seule manière de faire que j'ai trouvé:
> >
> > <rule id="alarme">
> > <condition type="and">
> > <condition type="object" id="commut1" value="on"
> > trigger="true"/>
> > <condition type="object" id="interrupteur 1"
> > value="on" trigger="true"/>
> > </condition>
> > <actionlist>
> > <action type="set-value" id="lampe1"
> > value="on"/>
> > </actionlist>
> > </rule>
> >
> > <rule id="alarme">
> > <condition type="and">
> > <condition type="object" id="commut2" value="on"
> > trigger="true"/>
> > <condition type="object" id="interrupteur 1"
> > value="on" trigger="true"/>
> > </condition>
> > <actionlist>
> > <action type="set-value" id="lampe1"
> > value="off"/>
> > </actionlist>
> > </rule>
> >
> > mais il y a peut être plus simple et moins lourd, car j'ai 4 modes et 4
> > interrupteurs avec a chaque fois des ambiances différentes...
> >
> > Autre question, est-ce que je peut envoyer une valeur d'éclairement (a ce
> > moment la en hexa)?
> >
> > Merci
> >
> > Si je doit refaire une nouvelle discutions dites le moi.
> >
> > Le 5 avril 2011 13:49, Casi <yannick@magikdo.com> a écrit :
> >
> >> Super, effectivement ça fonctionne! Merci je n'avait pas du tout
> >> pensé a cette syntaxe.
> >>
> >> On 5 avr, 13:45, Anthony PENHARD <a.penh...@gmail.com> wrote:
> >> > Bonjour,
> >> >
> >> > comme ça c'est mieux je pense :
> >> >
> >> > <rule id="escalier_Auto">
> >> > <condition type="and">
> >> > <condition type="or">
> >> > <condition type="object" id="a" value="on" trigger="true"/>
> >> > <condition type="object" id="b" value="on" trigger="true"/>
> >> > <condition type="object" id="c" value="on" trigger="true"/>
> >> > </condition>
> >> > <condition type="object" id="d" value="on" trigger="true" />
> >> > </condition>
> >> > <actionlist>
> >> > <action type="set-value" id="xxx" value="on" flags="f"/>
> >> > </actionlist>
> >> > </rule>
> >> >
> >> > @+
> >> > Anthony.
> >> >
> >> > Le 5 avril 2011 13:39, Casi <yann...@magikdo.com> a écrit :
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > > Bonjour je cherche la syntax pour faire ceci :
> >> >
> >> > > Si a=on ou b=on ou c=on ET d=on Alors xxx=on
> >> >
> >> > > Je l'ai traduit comme ça mais ça ne fonctione pas :
> >> >
> >> > > <rule id="escalier_Auto">
> >> > > <condition type="or">
> >> > > <condition type="object" id="a"
> >> value="on"
> >> > > trigger="true"/>
> >> > > <condition type="object" id="b"
> >> value="on"
> >> > > trigger="true"/>
> >> > > <condition type="object" id="c"
> >> value="on"
> >> > > trigger="true"/>
> >> > > </condition>
> >> > > <condition type="and">
> >> > > <condition type="object" id="d"
> >> value="on"
> >> > > trigger="true" />
> >> > > </condition>
> >> > > <actionlist>
> >> > > <action type="set-value" id="xxx"
> >> value="on"
> >> > > flags="f"/>
> >> > > </actionlist>
> >> > > </rule>
> >>
> >
>
>
>
Répondre
#7
j'essaye de bien comprendre
tu as donc :

4 modes:
M1
M2
M3
M4

6 sorties :
S1 à S6

BP1 = on ou off (entrée 1 des 2 BP de la pièce)
BP2 = on ou off (entrée 2 des 2 BP de la pièce)

donc un truc du genre :

Si M1 = on
si BP1 = on => les 6 sorties dans un certain état
si BP2 = on => les 6 sorties dans un certain état

Si M2 = on
si BP1 = on => les 6 sorties dans un certain état
si BP2 = on => les 6 sorties dans un certain état

... et idem pour M3 et M4

pour moi le plus "simple" c'est de faire 1 "rule" avec un script lua
parce que sinon tu vas avoir plusieurs "rule" super longues et "chiante" a
écrire pour gérer toutes les combinaisons
un truc du genre :

<rule id="commut_mode">
<condition type="or">
<condition type="object" id="BP1" value="on" trigger="true"/>
<condition type="object" id="BP2" value="on" trigger="true"/>
</condition>
<actionlist>
<action type="script">
BP1 = obj("BP1");
BP2 = obj("BP2");
M1 = obj("M1");
M2 = obj("M2");
M3 = obj("M3");
M4 = obj("M4");
if M1 = "on"
if BP1 = "on"
set("S1", "on");
set("S2", "off");
...
end;
if BP2 = "on"
set("S1", "off");
set("S2", "on");
...
end;
end;
if M2 = "on"
if BP1 = "on"
set("S1", "off");
set("S2", "off");
...
end;
if BP2 = "on"
set("S1", "on");
set("S2", "on");
set("S2_val_ecl", 50);
...
end;
end;
...
</action>
</actionlist>
</rule>


> En fait j'ai un commutateur 4 positions (branché sur un module 4 entrées)
> qui vas définir l'occupation:
>
> Soirée,
> Projection de film,
> Repas,
> Normal.
>
> ET j'ai 2x2 BP (à différent endroit de la pièce) qui doivent agir de la
> même
> manière (pour les deux entrée 1 des deux BP et les 2 entrée 2 des deux BP)
> en fonction de l'activation d'un des 4 modes (donc le on de l'entrée 1 ou
> 2
> ou 3 ou 4).
>
> Donc c'est bien le principe que tu a retranscrit mais j'ai 6 sorties a
> commander (pour faire varier "l'intensité" lumineuse de la pièce en
> allumant
> plus ou moins de lampes et plus ou moins fort car j'ai un groupes de
> lampes
> en variation).
>
> Mais le principe c'est surtout que je ne veut pas une usine a gaz avec 40
> BP
> pour choisir quelle lampe allumer et le définir en fonction de mon
> commutateur.
>
> Alors la question est est-ce que je suis obligé de faire comme j'ai
> présenté
> sur mon premier post ou si il y a une solution plus rapide et plus
> efficace.
>
> En tout cas, merci pour ta réponse.
>
> Stephane
>
> Le 7 avril 2011 10:47, Anthony PENHARD <a.penhard@gmail.com> a écrit :
>
>> bonjour,
>>
>> si je comprends bien tu as 2 BP et pour 1 des deux l'action est
>> différente
>> en fonction de l'état du premier
>>
>> états des BP :
>> BP1 = on ou off
>> BP2 = on ou off
>>
>> donc un truc du genre :
>>
>> Si BP1 = on
>> si BP2 = on => lampe1 = on
>> si BP2 = off => lampe1 = off
>> sinon
>> si BP2 = on => lampe2 = on
>> si BP2 = off => lampe2 = off
>>
>> est-ce bien ça ?
>>
>> qu'entends tu par 4 modes et 4 inter ?
>>
>> sinon oui tu peux envoyer une valeur d'éclairement ce n'est pas en hexa
>> mais soit 0-255 ou 0-100 (%) en fonction de la définition de l'object de
>> commande valeur d'éclairement respectivement 5.xxx ou 5.001
>>
>> exemple :
>> <action type="set-value" id="Set_valeur_eclairement_lampe1" value="50"/>
>>
>> @+
>> Anthony.
>>
>>
>> > Bonjour,
>> >
>> > je me permet de poster a la suite de ton sujet car mon problème ce
>> situe
>> > aussi dans la rédaction de rules linknx.
>> >
>> > En fait, j'aimerai définir l'action d'un bouton a partir d'un autre
>> > bouton.
>> > Je m'explique:
>> >
>> > Si le bouton A est on, alors lors de l'appui sur le bouton 1 vas
>> allumer
>> > une
>> > certaine lumière, mais si le bouton B est on, alors je voudrais que le
>> > bouton 1 allume une autre lumière.
>> >
>> > Plus clairement j'aimerai définir l'action d'un bouton en fonction du
>> > contexte dans lequel ce situ une pièce de ma maison (salle de
>> projection
>> > mais aussi de réception) que je définit en tournant un commutateur...
>> >
>> > La seule manière de faire que j'ai trouvé:
>> >
>> > <rule id="alarme">
>> > <condition type="and">
>> > <condition type="object" id="commut1"
>> value="on"
>> > trigger="true"/>
>> > <condition type="object" id="interrupteur 1"
>> > value="on" trigger="true"/>
>> > </condition>
>> > <actionlist>
>> > <action type="set-value" id="lampe1"
>> > value="on"/>
>> > </actionlist>
>> > </rule>
>> >
>> > <rule id="alarme">
>> > <condition type="and">
>> > <condition type="object" id="commut2"
>> value="on"
>> > trigger="true"/>
>> > <condition type="object" id="interrupteur 1"
>> > value="on" trigger="true"/>
>> > </condition>
>> > <actionlist>
>> > <action type="set-value" id="lampe1"
>> > value="off"/>
>> > </actionlist>
>> > </rule>
>> >
>> > mais il y a peut être plus simple et moins lourd, car j'ai 4 modes et
>> 4
>> > interrupteurs avec a chaque fois des ambiances différentes...
>> >
>> > Autre question, est-ce que je peut envoyer une valeur d'éclairement (a
>> ce
>> > moment la en hexa)?
>> >
>> > Merci
>> >
>> > Si je doit refaire une nouvelle discutions dites le moi.
>> >
>> > Le 5 avril 2011 13:49, Casi <yannick@magikdo.com> a écrit :
>> >
>> >> Super, effectivement ça fonctionne! Merci je n'avait pas du tout
>> >> pensé a cette syntaxe.
>> >>
>> >> On 5 avr, 13:45, Anthony PENHARD <a.penh...@gmail.com> wrote:
>> >> > Bonjour,
>> >> >
>> >> > comme ça c'est mieux je pense :
>> >> >
>> >> > <rule id="escalier_Auto">
>> >> > <condition type="and">
>> >> > <condition type="or">
>> >> > <condition type="object" id="a" value="on" trigger="true"/>
>> >> > <condition type="object" id="b" value="on" trigger="true"/>
>> >> > <condition type="object" id="c" value="on" trigger="true"/>
>> >> > </condition>
>> >> > <condition type="object" id="d" value="on" trigger="true" />
>> >> > </condition>
>> >> > <actionlist>
>> >> > <action type="set-value" id="xxx" value="on" flags="f"/>
>> >> > </actionlist>
>> >> > </rule>
>> >> >
>> >> > @+
>> >> > Anthony.
>> >> >
>> >> > Le 5 avril 2011 13:39, Casi <yann...@magikdo.com> a écrit :
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > > Bonjour je cherche la syntax pour faire ceci :
>> >> >
>> >> > > Si a=on ou b=on ou c=on ET d=on Alors xxx=on
>> >> >
>> >> > > Je l'ai traduit comme ça mais ça ne fonctione pas :
>> >> >
>> >> > > <rule id="escalier_Auto">
>> >> > > <condition type="or">
>> >> > > <condition type="object" id="a"
>> >> value="on"
>> >> > > trigger="true"/>
>> >> > > <condition type="object" id="b"
>> >> value="on"
>> >> > > trigger="true"/>
>> >> > > <condition type="object" id="c"
>> >> value="on"
>> >> > > trigger="true"/>
>> >> > > </condition>
>> >> > > <condition type="and">
>> >> > > <condition type="object" id="d"
>> >> value="on"
>> >> > > trigger="true" />
>> >> > > </condition>
>> >> > > <actionlist>
>> >> > > <action type="set-value" id="xxx"
>> >> value="on"
>> >> > > flags="f"/>
>> >> > > </actionlist>
>> >> > > </rule>
>> >>
>> >
>>
>>
>>
>
Répondre
#8
C'est exactement comme ça que je voyais la chose mais je ne savait pas
comment le faire (je ne connais pas LUA...) mais je me voyais avec mes "if
then else" ... ><

Je vais essayer de mettre ça en place avec l'exemple que tu m'a donné je te
tiens au courant.
Ça m'ouvre de nouvelle perspective pour ma supervision, je vais regarder le
LUA d'un peut plus prêt (tu sait ou je peut trouver pour me documenter ?)

Merci encore !!

Stephane

Le 7 avril 2011 11:51, Anthony PENHARD <a.penhard@gmail.com> a écrit :

> j'essaye de bien comprendre
> tu as donc :
>
> 4 modes:
> M1
> M2
> M3
> M4
>
> 6 sorties :
> S1 à S6
>
> BP1 = on ou off (entrée 1 des 2 BP de la pièce)
> BP2 = on ou off (entrée 2 des 2 BP de la pièce)
>
> donc un truc du genre :
>
> Si M1 = on
> si BP1 = on => les 6 sorties dans un certain état
> si BP2 = on => les 6 sorties dans un certain état
>
> Si M2 = on
> si BP1 = on => les 6 sorties dans un certain état
> si BP2 = on => les 6 sorties dans un certain état
>
> ... et idem pour M3 et M4
>
> pour moi le plus "simple" c'est de faire 1 "rule" avec un script lua
> parce que sinon tu vas avoir plusieurs "rule" super longues et "chiante" a
> écrire pour gérer toutes les combinaisons
> un truc du genre :
>
> <rule id="commut_mode">
> <condition type="or">
> <condition type="object" id="BP1" value="on" trigger="true"/>
> <condition type="object" id="BP2" value="on" trigger="true"/>
> </condition>
> <actionlist>
> <action type="script">
> BP1 = obj("BP1");
> BP2 = obj("BP2");
> M1 = obj("M1");
> M2 = obj("M2");
> M3 = obj("M3");
> M4 = obj("M4");
> if M1 = "on"
> if BP1 = "on"
> set("S1", "on");
> set("S2", "off");
> ...
> end;
> if BP2 = "on"
> set("S1", "off");
> set("S2", "on");
> ...
> end;
> end;
> if M2 = "on"
> if BP1 = "on"
> set("S1", "off");
> set("S2", "off");
> ...
> end;
> if BP2 = "on"
> set("S1", "on");
> set("S2", "on");
> set("S2_val_ecl", 50);
> ...
> end;
> end;
> ...
> </action>
> </actionlist>
> </rule>
>
>
> > En fait j'ai un commutateur 4 positions (branché sur un module 4 entrées)
> > qui vas définir l'occupation:
> >
> > Soirée,
> > Projection de film,
> > Repas,
> > Normal.
> >
> > ET j'ai 2x2 BP (à différent endroit de la pièce) qui doivent agir de la
> > même
> > manière (pour les deux entrée 1 des deux BP et les 2 entrée 2 des deux
> BP)
> > en fonction de l'activation d'un des 4 modes (donc le on de l'entrée 1 ou
> > 2
> > ou 3 ou 4).
> >
> > Donc c'est bien le principe que tu a retranscrit mais j'ai 6 sorties a
> > commander (pour faire varier "l'intensité" lumineuse de la pièce en
> > allumant
> > plus ou moins de lampes et plus ou moins fort car j'ai un groupes de
> > lampes
> > en variation).
> >
> > Mais le principe c'est surtout que je ne veut pas une usine a gaz avec 40
> > BP
> > pour choisir quelle lampe allumer et le définir en fonction de mon
> > commutateur.
> >
> > Alors la question est est-ce que je suis obligé de faire comme j'ai
> > présenté
> > sur mon premier post ou si il y a une solution plus rapide et plus
> > efficace.
> >
> > En tout cas, merci pour ta réponse.
> >
> > Stephane
> >
> > Le 7 avril 2011 10:47, Anthony PENHARD <a.penhard@gmail.com> a écrit :
> >
> >> bonjour,
> >>
> >> si je comprends bien tu as 2 BP et pour 1 des deux l'action est
> >> différente
> >> en fonction de l'état du premier
> >>
> >> états des BP :
> >> BP1 = on ou off
> >> BP2 = on ou off
> >>
> >> donc un truc du genre :
> >>
> >> Si BP1 = on
> >> si BP2 = on => lampe1 = on
> >> si BP2 = off => lampe1 = off
> >> sinon
> >> si BP2 = on => lampe2 = on
> >> si BP2 = off => lampe2 = off
> >>
> >> est-ce bien ça ?
> >>
> >> qu'entends tu par 4 modes et 4 inter ?
> >>
> >> sinon oui tu peux envoyer une valeur d'éclairement ce n'est pas en hexa
> >> mais soit 0-255 ou 0-100 (%) en fonction de la définition de l'object de
> >> commande valeur d'éclairement respectivement 5.xxx ou 5.001
> >>
> >> exemple :
> >> <action type="set-value" id="Set_valeur_eclairement_lampe1" value="50"/>
> >>
> >> @+
> >> Anthony.
> >>
> >>
> >> > Bonjour,
> >> >
> >> > je me permet de poster a la suite de ton sujet car mon problème ce
> >> situe
> >> > aussi dans la rédaction de rules linknx.
> >> >
> >> > En fait, j'aimerai définir l'action d'un bouton a partir d'un autre
> >> > bouton.
> >> > Je m'explique:
> >> >
> >> > Si le bouton A est on, alors lors de l'appui sur le bouton 1 vas
> >> allumer
> >> > une
> >> > certaine lumière, mais si le bouton B est on, alors je voudrais que le
> >> > bouton 1 allume une autre lumière.
> >> >
> >> > Plus clairement j'aimerai définir l'action d'un bouton en fonction du
> >> > contexte dans lequel ce situ une pièce de ma maison (salle de
> >> projection
> >> > mais aussi de réception) que je définit en tournant un commutateur...
> >> >
> >> > La seule manière de faire que j'ai trouvé:
> >> >
> >> > <rule id="alarme">
> >> > <condition type="and">
> >> > <condition type="object" id="commut1"
> >> value="on"
> >> > trigger="true"/>
> >> > <condition type="object" id="interrupteur 1"
> >> > value="on" trigger="true"/>
> >> > </condition>
> >> > <actionlist>
> >> > <action type="set-value" id="lampe1"
> >> > value="on"/>
> >> > </actionlist>
> >> > </rule>
> >> >
> >> > <rule id="alarme">
> >> > <condition type="and">
> >> > <condition type="object" id="commut2"
> >> value="on"
> >> > trigger="true"/>
> >> > <condition type="object" id="interrupteur 1"
> >> > value="on" trigger="true"/>
> >> > </condition>
> >> > <actionlist>
> >> > <action type="set-value" id="lampe1"
> >> > value="off"/>
> >> > </actionlist>
> >> > </rule>
> >> >
> >> > mais il y a peut être plus simple et moins lourd, car j'ai 4 modes et
> >> 4
> >> > interrupteurs avec a chaque fois des ambiances différentes...
> >> >
> >> > Autre question, est-ce que je peut envoyer une valeur d'éclairement (a
> >> ce
> >> > moment la en hexa)?
> >> >
> >> > Merci
> >> >
> >> > Si je doit refaire une nouvelle discutions dites le moi.
> >> >
> >> > Le 5 avril 2011 13:49, Casi <yannick@magikdo.com> a écrit :
> >> >
> >> >> Super, effectivement ça fonctionne! Merci je n'avait pas du tout
> >> >> pensé a cette syntaxe.
> >> >>
> >> >> On 5 avr, 13:45, Anthony PENHARD <a.penh...@gmail.com> wrote:
> >> >> > Bonjour,
> >> >> >
> >> >> > comme ça c'est mieux je pense :
> >> >> >
> >> >> > <rule id="escalier_Auto">
> >> >> > <condition type="and">
> >> >> > <condition type="or">
> >> >> > <condition type="object" id="a" value="on" trigger="true"/>
> >> >> > <condition type="object" id="b" value="on" trigger="true"/>
> >> >> > <condition type="object" id="c" value="on" trigger="true"/>
> >> >> > </condition>
> >> >> > <condition type="object" id="d" value="on" trigger="true" />
> >> >> > </condition>
> >> >> > <actionlist>
> >> >> > <action type="set-value" id="xxx" value="on" flags="f"/>
> >> >> > </actionlist>
> >> >> > </rule>
> >> >> >
> >> >> > @+
> >> >> > Anthony.
> >> >> >
> >> >> > Le 5 avril 2011 13:39, Casi <yann...@magikdo.com> a écrit :
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > > Bonjour je cherche la syntax pour faire ceci :
> >> >> >
> >> >> > > Si a=on ou b=on ou c=on ET d=on Alors xxx=on
> >> >> >
> >> >> > > Je l'ai traduit comme ça mais ça ne fonctione pas :
> >> >> >
> >> >> > > <rule id="escalier_Auto">
> >> >> > > <condition type="or">
> >> >> > > <condition type="object" id="a"
> >> >> value="on"
> >> >> > > trigger="true"/>
> >> >> > > <condition type="object" id="b"
> >> >> value="on"
> >> >> > > trigger="true"/>
> >> >> > > <condition type="object" id="c"
> >> >> value="on"
> >> >> > > trigger="true"/>
> >> >> > > </condition>
> >> >> > > <condition type="and">
> >> >> > > <condition type="object" id="d"
> >> >> value="on"
> >> >> > > trigger="true" />
> >> >> > > </condition>
> >> >> > > <actionlist>
> >> >> > > <action type="set-value" id="xxx"
> >> >> value="on"
> >> >> > > flags="f"/>
> >> >> > > </actionlist>
> >> >> > > </rule>
> >> >>
> >> >
> >>
> >>
> >>
> >
>
>
>
Répondre
#9
pour lua il y a quelques infos ici pour linknx :
https://sourceforge.net/apps/mediawiki/l..._Scripting

sinon la doc ici : http://www.lua.org/manual/5.1/

après réflexion tu va devoir faire 2 rule une par BP je pense
donc la condition n'est plus :
<condition type="or">
<condition type="object" id="BP1" value="on" trigger="true"/>
<condition type="object" id="BP2" value="on" trigger="true"/>
</condition>

mais uniquement :
<condition type="object" id="BP1" value="on" trigger="true"/>

et dans ce que je t'ai donner comme exemple il n'y a des actions que sur le
"on" il faut peut-être aussi géré le "off" mais après a toi de jouer le
principe est là...

@+
Anthony



Le 7 avril 2011 12:12, Stephane Triglia <stephane.triglia@gmail.com> a écrit
:

> C'est exactement comme ça que je voyais la chose mais je ne savait pas
> comment le faire (je ne connais pas LUA...) mais je me voyais avec mes "if
> then else" ... ><
>
> Je vais essayer de mettre ça en place avec l'exemple que tu m'a donné je te
> tiens au courant.
> Ça m'ouvre de nouvelle perspective pour ma supervision, je vais regarder le
> LUA d'un peut plus prêt (tu sait ou je peut trouver pour me documenter ?)
>
> Merci encore !!
>
> Stephane
>
> Le 7 avril 2011 11:51, Anthony PENHARD <a.penhard@gmail.com> a écrit :
>
> j'essaye de bien comprendre
>> tu as donc :
>>
>> 4 modes:
>> M1
>> M2
>> M3
>> M4
>>
>> 6 sorties :
>> S1 à S6
>>
>> BP1 = on ou off (entrée 1 des 2 BP de la pièce)
>> BP2 = on ou off (entrée 2 des 2 BP de la pièce)
>>
>> donc un truc du genre :
>>
>> Si M1 = on
>> si BP1 = on => les 6 sorties dans un certain état
>> si BP2 = on => les 6 sorties dans un certain état
>>
>> Si M2 = on
>> si BP1 = on => les 6 sorties dans un certain état
>> si BP2 = on => les 6 sorties dans un certain état
>>
>> ... et idem pour M3 et M4
>>
>> pour moi le plus "simple" c'est de faire 1 "rule" avec un script lua
>> parce que sinon tu vas avoir plusieurs "rule" super longues et "chiante" a
>> écrire pour gérer toutes les combinaisons
>> un truc du genre :
>>
>> <rule id="commut_mode">
>> <condition type="or">
>> <condition type="object" id="BP1" value="on" trigger="true"/>
>> <condition type="object" id="BP2" value="on" trigger="true"/>
>> </condition>
>> <actionlist>
>> <action type="script">
>> BP1 = obj("BP1");
>> BP2 = obj("BP2");
>> M1 = obj("M1");
>> M2 = obj("M2");
>> M3 = obj("M3");
>> M4 = obj("M4");
>> if M1 = "on"
>> if BP1 = "on"
>> set("S1", "on");
>> set("S2", "off");
>> ...
>> end;
>> if BP2 = "on"
>> set("S1", "off");
>> set("S2", "on");
>> ...
>> end;
>> end;
>> if M2 = "on"
>> if BP1 = "on"
>> set("S1", "off");
>> set("S2", "off");
>> ...
>> end;
>> if BP2 = "on"
>> set("S1", "on");
>> set("S2", "on");
>> set("S2_val_ecl", 50);
>> ...
>> end;
>> end;
>> ...
>> </action>
>> </actionlist>
>> </rule>
>>
>>
>> > En fait j'ai un commutateur 4 positions (branché sur un module 4
>> entrées)
>> > qui vas définir l'occupation:
>> >
>> > Soirée,
>> > Projection de film,
>> > Repas,
>> > Normal.
>> >
>> > ET j'ai 2x2 BP (à différent endroit de la pièce) qui doivent agir de la
>> > même
>> > manière (pour les deux entrée 1 des deux BP et les 2 entrée 2 des deux
>> BP)
>> > en fonction de l'activation d'un des 4 modes (donc le on de l'entrée 1
>> ou
>> > 2
>> > ou 3 ou 4).
>> >
>> > Donc c'est bien le principe que tu a retranscrit mais j'ai 6 sorties a
>> > commander (pour faire varier "l'intensité" lumineuse de la pièce en
>> > allumant
>> > plus ou moins de lampes et plus ou moins fort car j'ai un groupes de
>> > lampes
>> > en variation).
>> >
>> > Mais le principe c'est surtout que je ne veut pas une usine a gaz avec
>> 40
>> > BP
>> > pour choisir quelle lampe allumer et le définir en fonction de mon
>> > commutateur.
>> >
>> > Alors la question est est-ce que je suis obligé de faire comme j'ai
>> > présenté
>> > sur mon premier post ou si il y a une solution plus rapide et plus
>> > efficace.
>> >
>> > En tout cas, merci pour ta réponse.
>> >
>> > Stephane
>> >
>> > Le 7 avril 2011 10:47, Anthony PENHARD <a.penhard@gmail.com> a écrit :
>> >
>> >> bonjour,
>> >>
>> >> si je comprends bien tu as 2 BP et pour 1 des deux l'action est
>> >> différente
>> >> en fonction de l'état du premier
>> >>
>> >> états des BP :
>> >> BP1 = on ou off
>> >> BP2 = on ou off
>> >>
>> >> donc un truc du genre :
>> >>
>> >> Si BP1 = on
>> >> si BP2 = on => lampe1 = on
>> >> si BP2 = off => lampe1 = off
>> >> sinon
>> >> si BP2 = on => lampe2 = on
>> >> si BP2 = off => lampe2 = off
>> >>
>> >> est-ce bien ça ?
>> >>
>> >> qu'entends tu par 4 modes et 4 inter ?
>> >>
>> >> sinon oui tu peux envoyer une valeur d'éclairement ce n'est pas en hexa
>> >> mais soit 0-255 ou 0-100 (%) en fonction de la définition de l'object
>> de
>> >> commande valeur d'éclairement respectivement 5.xxx ou 5.001
>> >>
>> >> exemple :
>> >> <action type="set-value" id="Set_valeur_eclairement_lampe1"
>> value="50"/>
>> >>
>> >> @+
>> >> Anthony.
>> >>
>> >>
>> >> > Bonjour,
>> >> >
>> >> > je me permet de poster a la suite de ton sujet car mon problème ce
>> >> situe
>> >> > aussi dans la rédaction de rules linknx.
>> >> >
>> >> > En fait, j'aimerai définir l'action d'un bouton a partir d'un autre
>> >> > bouton.
>> >> > Je m'explique:
>> >> >
>> >> > Si le bouton A est on, alors lors de l'appui sur le bouton 1 vas
>> >> allumer
>> >> > une
>> >> > certaine lumière, mais si le bouton B est on, alors je voudrais que
>> le
>> >> > bouton 1 allume une autre lumière.
>> >> >
>> >> > Plus clairement j'aimerai définir l'action d'un bouton en fonction du
>> >> > contexte dans lequel ce situ une pièce de ma maison (salle de
>> >> projection
>> >> > mais aussi de réception) que je définit en tournant un commutateur...
>> >> >
>> >> > La seule manière de faire que j'ai trouvé:
>> >> >
>> >> > <rule id="alarme">
>> >> > <condition type="and">
>> >> > <condition type="object" id="commut1"
>> >> value="on"
>> >> > trigger="true"/>
>> >> > <condition type="object" id="interrupteur 1"
>> >> > value="on" trigger="true"/>
>> >> > </condition>
>> >> > <actionlist>
>> >> > <action type="set-value" id="lampe1"
>> >> > value="on"/>
>> >> > </actionlist>
>> >> > </rule>
>> >> >
>> >> > <rule id="alarme">
>> >> > <condition type="and">
>> >> > <condition type="object" id="commut2"
>> >> value="on"
>> >> > trigger="true"/>
>> >> > <condition type="object" id="interrupteur 1"
>> >> > value="on" trigger="true"/>
>> >> > </condition>
>> >> > <actionlist>
>> >> > <action type="set-value" id="lampe1"
>> >> > value="off"/>
>> >> > </actionlist>
>> >> > </rule>
>> >> >
>> >> > mais il y a peut être plus simple et moins lourd, car j'ai 4 modes et
>> >> 4
>> >> > interrupteurs avec a chaque fois des ambiances différentes...
>> >> >
>> >> > Autre question, est-ce que je peut envoyer une valeur d'éclairement
>> (a
>> >> ce
>> >> > moment la en hexa)?
>> >> >
>> >> > Merci
>> >> >
>> >> > Si je doit refaire une nouvelle discutions dites le moi.
>> >> >
>> >> > Le 5 avril 2011 13:49, Casi <yannick@magikdo.com> a écrit :
>> >> >
>> >> >> Super, effectivement ça fonctionne! Merci je n'avait pas du tout
>> >> >> pensé a cette syntaxe.
>> >> >>
>> >> >> On 5 avr, 13:45, Anthony PENHARD <a.penh...@gmail.com> wrote:
>> >> >> > Bonjour,
>> >> >> >
>> >> >> > comme ça c'est mieux je pense :
>> >> >> >
>> >> >> > <rule id="escalier_Auto">
>> >> >> > <condition type="and">
>> >> >> > <condition type="or">
>> >> >> > <condition type="object" id="a" value="on" trigger="true"/>
>> >> >> > <condition type="object" id="b" value="on" trigger="true"/>
>> >> >> > <condition type="object" id="c" value="on" trigger="true"/>
>> >> >> > </condition>
>> >> >> > <condition type="object" id="d" value="on" trigger="true" />
>> >> >> > </condition>
>> >> >> > <actionlist>
>> >> >> > <action type="set-value" id="xxx" value="on" flags="f"/>
>> >> >> > </actionlist>
>> >> >> > </rule>
>> >> >> >
>> >> >> > @+
>> >> >> > Anthony.
>> >> >> >
>> >> >> > Le 5 avril 2011 13:39, Casi <yann...@magikdo.com> a écrit :
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > > Bonjour je cherche la syntax pour faire ceci :
>> >> >> >
>> >> >> > > Si a=on ou b=on ou c=on ET d=on Alors xxx=on
>> >> >> >
>> >> >> > > Je l'ai traduit comme ça mais ça ne fonctione pas :
>> >> >> >
>> >> >> > > <rule id="escalier_Auto">
>> >> >> > > <condition type="or">
>> >> >> > > <condition type="object" id="a"
>> >> >> value="on"
>> >> >> > > trigger="true"/>
>> >> >> > > <condition type="object" id="b"
>> >> >> value="on"
>> >> >> > > trigger="true"/>
>> >> >> > > <condition type="object" id="c"
>> >> >> value="on"
>> >> >> > > trigger="true"/>
>> >> >> > > </condition>
>> >> >> > > <condition type="and">
>> >> >> > > <condition type="object" id="d"
>> >> >> value="on"
>> >> >> > > trigger="true" />
>> >> >> > > </condition>
>> >> >> > > <actionlist>
>> >> >> > > <action type="set-value" id="xxx"
>> >> >> value="on"
>> >> >> > > flags="f"/>
>> >> >> > > </actionlist>
>> >> >> > > </rule>
>> >> >>
>> >> >
>> >>
>> >>
>> >>
>> >
>>
>>
>>
>
Répondre
#10
il faudra aussi peut-être ne pas oublier le flag 's' dans la définition des
objet M et BP
Répondre


Atteindre :


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