Aller au contenu

Recommended Posts

Que tu sois présent ou absent c'est la meme temperature pour toi ? tu ne changes pas la valeur de value ?

 

@sebbrunie : tu as modifie aussi dans ta conf GEA ? GEA_TASKS

Partager ce message


Lien à poster
Partager sur d’autres sites

si mais je pense que tu dois faire une seule commande. Tu n'as pas besoin de le faire sur une aussi longue période. Ta variable Presence est mise à  jour en continu?

 

sinon tu peux faire ca:

 

  1. GEA.add( {"Global", "Presence", "present"}, -1, "", {{"Time", "01:00", "06:00"}, { "Value", 33, 20}})
    GEA.add( {"Global", "Presence", "present"}, -1, "", {{"Time", "07:00", "01:00"}, { "Value", 33, 22}})

Le -1 à  la place de 30 va commander la température dès que ta variable presence changera. ET puis tu peux mettre toutes tes têtes sur la même tache si elles ont la même température

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite non effectivement pour la nuit il n'y a pas de changement. C'est uniquement en journée. Mais si les Danfoss répondent j'adapterai en fonction...

Partager ce message


Lien à poster
Partager sur d’autres sites

n'oublie pas de mettre ta varibale presence dans l'entete avec le code de sebbrunie

Partager ce message


Lien à poster
Partager sur d’autres sites

@sebbrunie,

Comment changes-tu ta variable ? si elle est changée via le panel variable, cela ne génère pas de trigger

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite le nouveau code donne ca si je ne fait pas d'erreur :

   -- Thermostats at 20° from 01h00 to 06h00 if Present
   GEA.add( {"Global", "Presence", "present"}, -1, "", {{"Time", "01:00", "06:00"}, { "Value", 33, 20}, { "Value", 27, 20}, { "Value", 392, 20}})
    -- Thermostats at 20° from 01h00 to 06h00 if Absent
   GEA.add( {"Global", "Presence", "absent"}, -1, "", {{"Time", "01:00", "06:00"}, { "Value", 33, 20}, { "Value", 27, 20}, { "Value", 392, 20}})
    -- Thermostats at 22° from 07h00 to 01h00 if Present
   GEA.add( {"Global", "Presence", "present"}, -1, "", {{"Time", "07:00", "01:00"}, { "Value", 33, 22}, { "Value", 27, 22}, { "Value", 392, 22}})
    -- Thermostats at 20° from 07h00 to 01h00 if Absent
   GEA.add( {"Global", "Presence", "absent"}, -1, "", {{"Time", "07:00", "01:00"}, { "Value", 33, 20}, { "Value", 27, 20}, { "Value", 392, 20}})

@jojo je change ma variable avec un module virtuel a deux bouton.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

ça devrait donc le faire, mais ton scipt tourne de toute façon automatiquement toutes les 30s. Ce délais est-il trop long ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon pas de changement :(

@jojo non c'est juste que les têtes Danfoss ne changent pas. Pourtant Scheduler fonctionnait...

Partager ce message


Lien à poster
Partager sur d’autres sites

@ihexly, je répondais à  @sebbrunie ...

Partager ce message


Lien à poster
Partager sur d’autres sites

@ihexley : ta variable presence est bien dans l'entete ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@ihexley et dans ces têtes Danfoss, la température est en value? C'est la bonne commande? Je ne sais pas n'en n'ayant pas....

@Jojo, via GEA. Ma variable change toutes les 30 sec

 

GEA.add({"Global", "geostarter", "0"}, 30, "", {{"Global", "geostarter", "1"}})
GEA.add({"Global", "geostarter", "1"}, 30, "", {{"Global", "geostarter", "0"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite dans l'entête de GEA ? si oui sous quelle forme ? Merci.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui dans l'entete de GEA pour l'instantané (-1)

%% globals
Presence

@sebbrunie : tu as mis geostarter dans l'entete pour le declenchement instantané mais dans ton code ta durée est à30 et non à-1 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@Sebbrunie1 Avec Scheduler les Danfoss répondaient àla commande setTargetLevel.

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite @Sebbrunie1 Non je n'ai pas mis ma variable globale dans l'entête (ce que je vais faire de ce pas) mais pour d'autres variables globales non plus (Ecodevices par exemple) et les autres lignes de code fonctionnent elles.

Partager ce message


Lien à poster
Partager sur d’autres sites

l'entete est necessaire uniquement pour les declenchements instantanés

 

@seb : donc dans ce cas as tu change cela ? :

GEA.globalTasks = "GEA_Tasks"

Partager ce message


Lien à poster
Partager sur d’autres sites

@sebbruniel,

Je ne suis pas sà»r de bien comprendre ton code.

tu commences par 

local geostater1 = {"Global", "geostarter", "1"} 
local geostater1 = {"Global", "geostarter", "0"} 

donc à  quoi sert la première ligne, vu que le résultat sera écrasé par la seconde ?

de plus je ne vois pas où tu utilises geostater1 ensuite

Partager ce message


Lien à poster
Partager sur d’autres sites

Mon vrai code est:

 


local EmplacementMaison1 = "48.84745534593;2.4532449245453"
local EmplacementBureau1 = "48.81907202982484;2.3286187648773193"
local EmplacementCarantec1 = "48.667815;-3.914054999999962"
local EmplacementEternoz1 = "47.00751;6.029551999999967"
local EmplacementSeb1 = {"Function", function() return fibaro:getValue(238, "Location") end}


-- Localisation EmplacementSeb
  GEA.add({"Property!", 238, "Location", "0"}, 30, "", {{"Global", "EmplacementSeb", "#value#"}})


local DistanceMaison1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(fibaro:getValue(238, "Location"), EmplacementMaison1))/1000 end}
local DistanceBureau1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(fibaro:getValue(238, "Location"), EmplacementBureau1))/1000 end}
local DistanceCarantec1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(fibaro:getValue(238, "Location"), EmplacementCarantec1))/1000 end}
local DistanceEternoz1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(fibaro:getValue(238, "Location"), EmplacementEternoz1))/1000 end}


GEA.add(DistanceBureau1, 30, "", {{"Global", "DistanceBureau", "#value#"}, {"Label", id["DISTANCE"], "Label2", "#value# km"}})
GEA.add(DistanceMaison1, -1, "", {{"Global", "DistanceMaison", "#value#"}, {"Label", id["DISTANCE"], "Label1", "#value# km"}})
GEA.add(DistanceCarantec1, 30, "", {{"Global", "DistanceCarantec", "#value#"}, {"Label", id["DISTANCE"], "Label3", "#value# km"}})
GEA.add(DistanceEternoz1, 30, "", {{"Global", "DistanceEternoz", "#value#"}, {"Label", id["DISTANCE"], "Label4", "#value# km"}})


-- message maison
GEA.add({"Global-", "DistanceMaison", "0.1"}, 30, "Je suis à  moins de #value# m à  #time# de la maison", {{"MaxTime", "1"}})

Qui marche très bien mais qui se lance que lorsque je sauvegarde la scène GEA. J'aimerai qu'il calcul les distance toutes les 30 sec ou mieux que lorsque mes coordonnées geo changent.

 

Oui j'ai changé 

  1. GEA.globalTasks = "GEA_Tasks"

J'ai essayé de me dépatouyer en créant une variable qui change toutes les 30 sec mais sans succès

Partager ce message


Lien à poster
Partager sur d’autres sites

je suis loin d'être un expert GEA, mais 3 bêtes questions :

  1. as-tu bien mis le paramètre d'exécution du script à30s ?
  2. (encore plus bête, mais on ne sait jamais, c'est tellement gros) la scène est-elle bien active ?
  3. ligne 21, je vois -1, ne devrait-ce pas également être 30 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

alors oui c'est à  30 sec, la scène est active (le calcul se fait à  l'enregistrement mais plus après)

et ligne 21 oui c'est à  30 mais un petit oublie après changement de code

 

Et puis il n'y a rien de bête :)

 

Je pense que ce sont ces lignes qui ne s'éxecutent pas toutes les 30 sec

 

  1. local DistanceMaison1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(fibaro:getValue(238, "Location"), EmplacementMaison1))/1000 end}
    local DistanceBureau1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(fibaro:getValue(238, "Location"), EmplacementBureau1))/1000 end}
    local DistanceCarantec1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(fibaro:getValue(238, "Location"), EmplacementCarantec1))/1000 end}
    local DistanceEternoz1 = {"Function", function() return true, math.floor(fibaro:calculateDistance(fibaro:getValue(238, "Location"), EmplacementEternoz1))/1000 end}

Partager ce message


Lien à poster
Partager sur d’autres sites

×