12/03/2011, 15:23:58
Bonjour,
Je ne suis pas sûr d'avoir vraiment compris ce que tu cherches à
faire, mais voici quelques pistes :
1/ Avec la version 1.28 de linknx, tu peux utiliser une condition
"time-counter" :
http://sourceforge.net/apps/mediawiki/li...27s_Syntax
2/ Avec une version antérieure :
Tu peux utiliser 2 rules avec des scripts LUA.
La 1ère rule mémorise l'heure de changement d'état de ton objet.
La 2nde rule utilise cette heure de changement d'état pour évaluer le
temps passé et exécuter ou pas des actions.
Exemple :
<rule id="monobjet_last_switch_on">
<condition type="object" id="monobjet" value="on" trigger="true" />
<actionlist>
<action type="script"><![CDATA[
time = os.time();
set("last_switch_on", tostring(time));
]]></action>
</actionlist>
</rule>
<rule id="detect_switch_off">
<condition type="and">
<condition type="object" id="monobjet" value="off" trigger="true" /
>
<condition type="script"><![CDATA[
time = os.time();
delta = os.difftime( time, tonumber(obj("last_switch_on")) );
return delta > 5;
]]></condition>
</condition>
<actionlist>
... Si monobjet passe à off mais qu'il est resté on plus de 5 sec,
alors on exécute ces actions...
</actionlist>
</rule>
Espérant que ça t'aide.
Ben
Je ne suis pas sûr d'avoir vraiment compris ce que tu cherches à
faire, mais voici quelques pistes :
1/ Avec la version 1.28 de linknx, tu peux utiliser une condition
"time-counter" :
http://sourceforge.net/apps/mediawiki/li...27s_Syntax
2/ Avec une version antérieure :
Tu peux utiliser 2 rules avec des scripts LUA.
La 1ère rule mémorise l'heure de changement d'état de ton objet.
La 2nde rule utilise cette heure de changement d'état pour évaluer le
temps passé et exécuter ou pas des actions.
Exemple :
<rule id="monobjet_last_switch_on">
<condition type="object" id="monobjet" value="on" trigger="true" />
<actionlist>
<action type="script"><![CDATA[
time = os.time();
set("last_switch_on", tostring(time));
]]></action>
</actionlist>
</rule>
<rule id="detect_switch_off">
<condition type="and">
<condition type="object" id="monobjet" value="off" trigger="true" /
>
<condition type="script"><![CDATA[
time = os.time();
delta = os.difftime( time, tonumber(obj("last_switch_on")) );
return delta > 5;
]]></condition>
</condition>
<actionlist>
... Si monobjet passe à off mais qu'il est resté on plus de 5 sec,
alors on exécute ces actions...
</actionlist>
</rule>
Espérant que ça t'aide.
Ben