Aller au contenu

Messages recommandés

Posté(e)

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)

 

  1. 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 ?
  2. comment utiliser sa valeur. ok comme ça :  {"VariableCache", "TisunChaudiereSolaireOn"}
  3. et peut-on faire des calculs ? Exple : {"VariableCache", "TisunChaudiereSolaireOff", {"VariableCache", "TisunChaudiereSolaireOn"}+8}
  4. si 2. ok, comment faire ceci

    {"Email", "admin", "TisunChaudiereSolaireOn = "..{"VariableCache", "TisunChaudiereSolaireOn"}.."\nle #date# à #time#.",

    --                                "Variables cacche"})

Merci votre aide / idées

Posté(e)

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...

 

  • Like 1
Posté(e)
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 ...)

Posté(e)

en fait, j'ai implémenté (et compris ?) tes conseils. et évidemment, cela fonctionne au quart de poil. => MERCI

  • Like 1
Posté(e)

é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"})

 

Posté(e)
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 ...

Posté(e)
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.

 

Posté(e)
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

 

Posté(e)

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.

Posté(e)

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

×
×
  • Créer...