Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[linknx] Question sur les rules / comparaison de température
#1
Bonjour,

Je souhaite éxécuter une action lorsqu'une température (extérieur) est
inférieur à une autre température (intérieur).

j'ai donc voulu utiliser : "lt : object value is less than reference
value "

mais je ne sais pas trop comment faire ...

j'ai donc pour la température intérieur :
<object type="9.xxx" id="TempMEZZ" gad="2/3/0" log="true"
init="persist">Temperature mezzanine</object>
et pour l'extérieur :
<object type="9.xxx" id="TempEXT" gad="3/1/0" log="true"
init="persist">Temperature exterieure</object>

voici ce que j'ai penser faire :

<rules>
<rule id="DIFFTEMP">
<condition type="lt" trigger="true" id="TempEXT" value="TempMEZZ">

mais dans value je dois mettre la valeur, mais cette valeur change ...

C'est la que je coince ...

Si quelqu'un peux m'aider, merci Smile
#2
On samedi 03 juillet 2010, Roby wrote:

> Je souhaite éxécuter une action lorsqu'une température (extérieur) est
> inférieur à une autre température (intérieur).
> [...]

Je ne suis pas certain que tu puisses le faire directement avec les
conditions ; mais tu peux utiliser les scripts Lua pour faire des calculs :

http://sourceforge.net/apps/mediawiki/li..._Scripting

--
Frédéric
#3
Effectivement Smile Merci Smile

Par contre j'ai quand même un souci, voici ma rule :

<rule id="VMC rapide">
<condition type="script" trigger="true">
return tonumber(obj("TempMEZZ")) > tonumber(obj("TempEXT"));
</condition>
<actionlist>
<action type="set-value" id="VMCDFRapide" value="on" />
</actionlist>
</rule>

Mais ca ne fonctionne pas alors que ma TempMEZZ est > à ma TempEXT ...

Dans les log, j'ai ça :
1278241057 INFO Rule : Rule: Configuring VMC rapide (active=1)
1278241057 INFO LuaCondition : LuaCondition: Configured code=return
tonumber(obj("TempMEZZ")) > tonumber(obj("TempEXT"));
1278241057 INFO Rule : ActionList: Configuring ''
1278241057 INFO Action : SetValueAction: Configured for object
VMCDFRapide with value on
1278241057 INFO Rule : Rule: Configuration done

Mais j'ai rien d'autre concernant VMCDFRapide dans les log ...

J'ai raté un truc, mais quoi ???

Merci Smile
#4
On dimanche 04 juillet 2010, Roby wrote:

> Par contre j'ai quand même un souci, voici ma rule :
> [...]
> J'ai raté un truc, mais quoi ???

Mmmm, déjà, je remplacerais la ligne :

return tonumber(obj("TempMEZZ")) > tonumber(obj("TempEXT"));

par :

return tonumber(obj("TempMEZZ")) &gt; tonumber(obj("TempEXT"));

Pas sûr que ce soit obligatoire en xml (le <, lui, doit être remplacé par
&ltWink, mais dans le doute...

--
Frédéric
#5
Toujours pareil, il ne passe jamais à l'action ...

je vais creuser un peu plus Smile
#6
Bonjour,

Le problème provient du fait que pour l'instant trigger="true" n'a
aucun effet pour les conditions lua. La solution que je vois pour
contourner le problème est d'utiliser un "et" logique avec un timer
qui force l'évaluation à intervalle régulier.

<rule id="VMC rapide">
<condition type="and">
<condition type="timer" trigger="true"><every>60</every></condition>
<condition type="script">
return tonumber(obj("TempMEZZ")) &gt; tonumber(obj("TempEXT"));
</condition>
</condition>
<actionlist>
<action type="set-value" id="VMCDFRapide" value="on" />
</actionlist>
</rule>

Dans une version future de linknx, je pense ajouter pour les
conditions lua un moyen d'ajouter une liste d'objets pour lesquels un
changement de valeur déclenche l'évaluation de la règle.

A+

Jean-François

On 4 juil, 18:41, Roby <goo...@macuba.net> wrote:
> Toujours pareil, il ne passe jamais à l'action ...
>
> je vais creuser un peu plus Smile
#7
On dimanche 04 juillet 2010, jef2000 wrote:

> Le problème provient du fait que pour l'instant trigger="true" n'a
> aucun effet pour les conditions lua.

Ah, ben forcément, ça ne pouvait pas marcher ;o)

> Dans une version future de linknx, je pense ajouter pour les
> conditions lua un moyen d'ajouter une liste d'objets pour lesquels un
> changement de valeur déclenche l'évaluation de la règle.

Cette liste ne pourrait pas être automatique ? Dès lors qu'un objet est
utilisé dans une règle Lua, hop, sont état est monitoré, et la (ou les)
règles(s) où il apparaît est (sont) évaluée(s). Sinon, je sens que ça va
être source d'oublis, d'erreurs, et de questions incessantes !

--
Frédéric
#8
Parfait, ça fonctionne Smile

Merci !


Atteindre :


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