[linknx] Question sur les rules / comparaison de température - Version imprimable +- Forum KNX francophone / English KNX forum (https://www.knx-fr.com) +-- Forum : Français (https://www.knx-fr.com/forumdisplay.php?fid=3) +--- Forum : Archives eib-domotique (https://www.knx-fr.com/forumdisplay.php?fid=8) +--- Sujet : [linknx] Question sur les rules / comparaison de température (/showthread.php?tid=958) |
[linknx] Question sur les rules / comparaison de température - Roby - 03/07/2010 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 [linknx] Question sur les rules / comparaison de température - Frédéric - 03/07/2010 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/linknx/index.php?title=Lua_Scripting -- Frédéric [linknx] Question sur les rules / comparaison de température - Roby - 04/07/2010 Effectivement Merci 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 [linknx] Question sur les rules / comparaison de température - Frédéric - 04/07/2010 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")) > tonumber(obj("TempEXT")); Pas sûr que ce soit obligatoire en xml (le <, lui, doit être remplacé par <, mais dans le doute... -- Frédéric [linknx] Question sur les rules / comparaison de température - Roby - 04/07/2010 Toujours pareil, il ne passe jamais à l'action ... je vais creuser un peu plus [linknx] Question sur les rules / comparaison de température - jef2000 - 04/07/2010 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")) > 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 [linknx] Question sur les rules / comparaison de température - Frédéric - 04/07/2010 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 [linknx] Question sur les rules / comparaison de température - Roby - 05/07/2010 Parfait, ça fonctionne Merci ! |