jojo Posté(e) mardi à 18:03 Signaler Posté(e) mardi à 18:03 je me mets enfin aux "VariableCache" et du coup j'ai des questions (je n'y ai pas trouvé de réponse dans le document de syntaxe) : les valeurs ne semblent que numériques ou bouléennes (cfr exemples), car pour 20, il faut rentrer "20", et du coup comment faire la différence entre string "20" et number 20 ? comment utiliser sa valeur. ok comme ça : {"VariableCache", "TisunChaudiereSolaireOn"} et peut-on faire des calculs ? Exple : {"VariableCache", "TisunChaudiereSolaireOff", {"VariableCache", "TisunChaudiereSolaireOn"}+8} si 2. ok, comment faire ceci : {"Email", "admin", "TisunChaudiereSolaireOn = "..{"VariableCache", "TisunChaudiereSolaireOn"}.."\nle #date# à #time#.", -- "Variables cacche"}) Merci votre aide / idées
Lazer Posté(e) mardi à 18:58 Signaler Posté(e) mardi à 18:58 1. Tu mets ce que tu veux dans une VariableCache, GEA conservera le type que tu utilises... donc number, boolean, string, ou même table. 2. Oui OK 3. Pour faire des calculs, il faut utiliser "Function". Tu as un exemple dans la doc de syntaxe. Pour ton cas ça doit donner un truc comme ça je pense : {"VariableCache", "TisunChaudiereSolaireOff", {"Function", function(vc) return vc + 8 end, {"VariableCache", "TisunChaudiereSolaireOn"}}} 4. Je doute fort que ça fonctionne tel que tu l'as écris... Essaye un truc du genre : {"Email", "admin", {"Function", function(vc) return "TisunChaudiereSolaireOn = "..vc.."\nle #date# à #time#." end, {"VariableCache", "TisunChaudiereSolaireOn"}}, "Variables cache"} Ou bien, mais moins propre je trouve : {"Function", function(vc) GEA.options.email.action("TisunChaudiereSolaireOn = "..vc.."\nle #date# à #time#.") end, {"VariableCache", "TisunChaudiereSolaireOn"}, "Variables cache"} Dans cette dernière syntaxe tu découvres qu'on peut appeler n'importe quelle option de GEA au sein même de la function() exécutée par "Function". "Function" est extrêmement puissant, mais difficile à maitriser... 1
jojo Posté(e) mardi à 19:56 Signaler Posté(e) mardi à 19:56 il y a 45 minutes, Lazer a dit : Je doute fort que ça fonctionne tel que tu l'as écris... moi aussi, c'était pour expliquer ce que souhaitais. J'implémente tous ces conseils demain (ce soir, je cuve ...)
jojo Posté(e) mardi à 21:11 Signaler Posté(e) mardi à 21:11 en fait, j'ai implémenté (et compris ?) tes conseils. et évidemment, cela fonctionne au quart de poil. => MERCI 1
jojo Posté(e) mercredi à 12:59 Signaler Posté(e) mercredi à 12:59 évidemment que ta proposition pour les mails fonctionne, mais voici la solution encore plus simple et plus tandard que j'ai mise en place GEA.add ({"VariableCache!", "TisunChaudiereSolaireOn", "0"}, 0, "" , {"Email", "admin", "TisunChaudiereSolaireOn = #value[1]#\nle #date# à #time#.", "Variables cache"})
jojo Posté(e) mercredi à 13:19 Signaler Posté(e) mercredi à 13:19 Il y a 17 heures, jojo a dit : moi aussi, c'était pour expliquer ce que souhaitais. en fait, non. Je suis tombé par hasard sur cette config {"Email", "admin", "CHAUDIERE_SOLAIRE ON".. "\nTempérature ballon Tisun = #value[2]# °C.".. "\nLimite TisunChaudiereSolaireOn = "..tostring(TisunChaudiereSolaireOn).."°C".. "\nle #date# à #time#.", "CHAUDIERE_SOLAIRE ON"}) quand je dis que GEA c'est une tuerie ...
Lazer Posté(e) mercredi à 19:08 Signaler Posté(e) mercredi à 19:08 Il y a 6 heures, jojo a dit : GEA.add ({"VariableCache!", "TisunChaudiereSolaireOn", "0"}, 0, "" , {"Email", "admin", "TisunChaudiereSolaireOn = #value[1]#\nle #date# à #time#.", "Variables cache"}) Ah oui ça c'est malin. Il y a 5 heures, jojo a dit : {"Email", "admin", "CHAUDIERE_SOLAIRE ON".. "\nTempérature ballon Tisun = #value[2]# °C.".. "\nLimite TisunChaudiereSolaireOn = "..tostring(TisunChaudiereSolaireOn).."°C".. "\nle #date# à #time#.", "CHAUDIERE_SOLAIRE ON"}) Alors ça non en revanche, ça ne fonctionnera pas comme attendu. Le tostring(TisunChaudiereSolaireOn) ne sera pas interprété par le code de GEA lors de l'exécution de la règle, mais par l'interpréteur LUA lors du démarrage du QuickApp. De plus, TisunChaudiereSolaireOn n'est qu'une variable au sens GEA du terme, pas au sens LUA. En effet, sauf à ce que tu aies préalablement défini la variable avec TisunChaudiereSolaireOn = ... dans le code LUA, lors du démarrage du QA, LUA va considérer que c'est une variable non définie, donc tostring() renverra la valeur "nil", que tu verras apparaitre dans le corps de ton email.
jojo Posté(e) jeudi à 09:51 Signaler Posté(e) jeudi à 09:51 Il y a 14 heures, Lazer a dit : Alors ça non en revanche, ça ne fonctionnera pas comme attendu. Le tostring(TisunChaudiereSolaireOn) ne sera pas interprété par le code de GEA lors de l'exécution de la règle, mais par l'interpréteur LUA lors du démarrage du QuickApp. De plus, TisunChaudiereSolaireOn n'est qu'une variable au sens GEA du terme, pas au sens LUA. En effet, sauf à ce que tu aies préalablement défini la variable avec TisunChaudiereSolaireOn = ... dans le code LUA, lors du démarrage du QA, LUA va considérer que c'est une variable non définie, donc tostring() renverra la valeur "nil", que tu verras apparaitre dans le corps de ton email. mais ça fonctionne chez moi ... et si je me souviens bien, sans le tostring() ça ne fonctionnait pas. au début de ma config GEA, j'ai ceci : -- variables perso local PAC_A_Off = 30 --[A] local PAC_A_On = 25 --[A] local PACBackup_A_Off = 25 --[A] (13/12/2024 : 20) local PACBackup_A_On = 20 --[A] (13/12/2024 : 17) local A_Max = 80 --[A] courant au-delà duquel il ne faut pas tenir compte de la mesure local CaveSeuilMin = 11 --[°C] local CaveSeuilMax = 16 --[°C] local TisunMinPiscine = 75 --[°C] tmp min Tisun pour démarrage chauffage piscine local TisunDelestagePiscine = 85 --[°C] tmp Tisun pour chauffer la piscine afin d'éliminer les calories des panneaux solaires. local TisunChaudiereSolaireOn = 70 --[°C] tmp Tisun pour mettre CHAIDERE_SOLAIRE à On (<SdB=60 - SdB=64 - confort=70) local TisunChaudiereSolaireOff = 78 --[°C] tmp Tisun pour mettre CHAIDERE_SOLAIRE à Off (<SdB=68 - SdB=72 - confort=78) local TisunECS = 55 --[°C] tmp Tisun pour forcer ECS local TisunError = 47 --[°C] tmp Tisun en dessous de laquelle il y a un sérieux problème local FreezeAlarme = -20 -- [°C] tmp alarme freeze local TimerHallEntree = 8*60 -- [s] timer lampes Hell d'entrée local TimerHellNuitSdJ = 5*60 -- [s] timer lampes Hall de nuit SdJ local TimerHallNuitSdB = 5*60 -- [s] timer lampes Hall de nuit SdB
Lazer Posté(e) jeudi à 16:36 Signaler Posté(e) jeudi à 16:36 Ah ben voilà, c'est donc bien ce que je disais, ça fonctionne uniquement parce que cette variable TisunChaudiereSolaireOn n'est pas une VariableCache au sens GEA, mais une variable (locale de surcroit) au sens LUA. Après rien ne t'empêche de stocker cette variable locale LUA dans une VariableCache GEA en plus.
jojo Posté(e) jeudi à 16:47 Signaler Posté(e) jeudi à 16:47 en fait je suis passé (pour cette variable) à une variable cache calculée : -- variables cache : TisunChaudiereSolaireOn = tmp Tisun pour mettre CHAIDERE_SOLAIRE à On GEA.add ({"VariableQA", id["GESTION_CHAUFFAGE"], "ChMaisonMode", "Off"}, 0, "", {"VariableCache", "TisunChaudiereSolaireOn", 10}) GEA.add ({"VariableQA", id["GESTION_CHAUFFAGE"], "ChMaisonMode", "ECS"}, 0, "", {"VariableCache", "TisunChaudiereSolaireOn", 60}) GEA.add ({"VariableQA", id["GESTION_CHAUFFAGE"], "ChMaisonMode", "SdB"}, 0, "", {"VariableCache", "TisunChaudiereSolaireOn", 64}) GEA.add ({"VariableQA", id["GESTION_CHAUFFAGE"], "ChMaisonMode", "Confort"}, 0, "", {"VariableCache", "TisunChaudiereSolaireOn", 70}) GEA.add (true, 0, "", {"VariableCache", "TisunChaudiereSolaireOff", {"VariableCache", "TisunChaudiereSolaireOn"}}) GEA.add (true, 0, "", {"VariableCache", "TisunChaudiereSolaireOff", "inc+8"}) d'où mes précédentes questions
Messages recommandés