Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Syntax condition dans rules linknx
#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


Messages dans ce sujet
Syntax condition dans rules linknx - par Casi - 05/04/2011, 12:39:35
Syntax condition dans rules linknx - par Anthony PENHARD - 05/04/2011, 12:45:58
Syntax condition dans rules linknx - par Casi - 05/04/2011, 12:49:00
Syntax condition dans rules linknx - par Stephane Triglia - 07/04/2011, 09:20:26
Syntax condition dans rules linknx - par Anthony PENHARD - 07/04/2011, 09:47:44
Syntax condition dans rules linknx - par Stephane Triglia - 07/04/2011, 10:06:08
Syntax condition dans rules linknx - par Anthony PENHARD - 07/04/2011, 10:51:48
Syntax condition dans rules linknx - par Stephane Triglia - 07/04/2011, 11:12:56
Syntax condition dans rules linknx - par Anthony PENHARD - 07/04/2011, 12:18:57
Syntax condition dans rules linknx - par frederic Gilliard - 07/04/2011, 14:12:36

Atteindre :


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