Aller au contenu

Recommended Posts

@ pepite : MERCI !

  1. j'adore ta première solution, mais je suis vexé, car si j'avais utilisé un peu plus mes neurones, j'aurais dà» y arriver.
  2. je préfère la 2° solution, car elle est plus claire selon moi. Mais soit, je ne savais même pas qu'on pouvait inclure du "code" dans les instructions GEA. Celui qui a programmé cela (tu sais qui ?), c'est un mec pas normal !  :13:  Ceci dit, où as-tu trouvé cette info ? car moi j'utilise ceci (c'est mon nouveau livre de chevet), et il n'y est pas fait mention .

Partager ce message


Lien à poster
Partager sur d’autres sites

STOP :)

 

Utilisé un sleep de 20mn dans GEA va planté GEA .. on a le droit d'y mettre des petit sleep (sans jeu de mot) pour autant que le total des "sleep" ne dépasse pas les 30 secondes. Sinon GEA ne sera pas capable de ce lancer toutes les 30 secondes.

 

Il y a des solutions à  cela :


local varecsoui = {"Global", "varecs", "oui"}
local varecsnon = {"Global", "varecs", "non"}

-- Tache en sommeil (NotStarted)
-- Cette tache va passer la variable à  Non si elle est à  Oui depuis plus de 20 minutes
local autoOff = GEA.add(varecsoui, 20*60, "Variable ECS à  OUI depuis #durationfull#", {varecsnon, {"NotStarted"}}) -- Tache en sommeil cas non démarrée

-- Cette tache va passer la variable à  Oui si la lumière de la douche est allumée et que la variable est à  non
-- Elle va aussi redémarrer la tache si dessus
GEA.add({id["lumrdc_douche"], varecsnon}, 30, "",{varecsoui, {"RestartTask", autoOff}})
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

La possibilité de mettre {"Function", ...} n'est pas documentée car c'est quand même un peu délicat de mettre du code LUA dans GEA sans risque de planté GEA. C'est pourquoi je n'ai pas communiqué dessus.

 

Par contre, j'en ai déjà  fait mention dans ce forum pour résoudre de petits "manque" à  GEA.

 

D'ailleurs, je crois que le {"NotStarted"} n'est pas documenté non plus :)

Partager ce message


Lien à poster
Partager sur d’autres sites

merci chef, oui {"NotStated"} est documenté. Maintenant je comprends mieux son utilité et celle de {"RestartTask"}.

Tant qu'on est dans la littérature, y aurait-il en exemple de la fonction{"StopTask"} ? Je ne vois pas dans quel cas je pourrais l'utiliser ?

Encore MERCI ! 

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans mon cas, j'ai une lampe qui s'éteint automatiquement toute les 10mn car on oublie toujours de l'éteindre. Cette lampe s'allume et s'éteint selon l'ouverture / fermeture de la porte. Donc si on laisse la porte ouverte plus de 10mn, la lumière va s'éteindre toute seule.

Sauf, que si je travaille dans ce local, porte ouverte, je ne veux plus qu'elle s'éteigne. Donc sur déclenchement instantané de l'interrupteur, je Stop la tâche d'exctinction. Je suis donc tranquille jusqu'àce que je reclique sur l'interrupteur.

Partager ce message


Lien à poster
Partager sur d’autres sites

On devrait faire une GEA Game. On propose un scénario et les autres proposent le code pour résoudre cela .

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans mon cas, j'ai une lampe qui s'éteint automatiquement toute les 10mn car on oublie toujours de l'éteindre. Cette lampe s'allume et s'éteint selon l'ouverture / fermeture de la porte. Donc si on laisse la porte ouverte plus de 10mn, la lumière va s'éteindre toute seule.

Sauf, que si je travaille dans ce local, porte ouverte, je ne veux plus qu'elle s'éteigne. Donc sur déclenchement instantané de l'interrupteur, je Stop la tâche d'exctinction. Je suis donc tranquille jusqu'àce que je reclique sur l'interrupteur.

Ca, c'est un truc de ouf. Mais comment il peut savoir si la lumière est allumées par l'interrupteur ou par la porte, SANS utiliser de VG ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Hummmm, je ne sais pas ce qui c'est passé mais NOTDST s'est transformé en NODST ... j'ai du faire une boulet dans une version. J'en suis navré.

 

En attendant, il faut donc remplacer les NOTDST par NODST

 

Merci Steven pour la correction :60:  je test demain et je confirme si c'est ok

 

J'en profite pour remercier Jojo et Pepite pour m'avoir apporté leur aide  :60:

Partager ce message


Lien à poster
Partager sur d’autres sites

Shyrka973 à  été plus vite que moi pour mettre à  jour gea sur github.

Version 5.34 mise à  jour donc ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

désolé @jojo je me suis bien trompé.... pas eu le reflexe de passer par une tache alors que je le fais pour des lampes ;-)..j'avoue que le NotStarted ne m'est pas venu du tout a l'esprit..

 

Ce qui confirme tout de même : pas de function pour GEA hihihi

 

Je vais le gagner le BOULETTE GAME ;-) ..vu le nombre que je fais ...

 

@jojo : j'utilise ca parfois pour le stoptask ou restarttask pour faire des tests, et j'ai essaye avec restarttask mais ca eteint l halogene 5 mins apres normal ;-)

 

-- Exctinction Halogène SAM après 5 mins, envoi sms 
local halogene = GEA.add(id["WP_HALOGENE"], 5*60,"Extinction #name# de #room# après 5 mins à  #time# le #date#",{{"VirtualDevice", id["VD_SMSFREE"], 4},{"turnOff", id["WP_HALOGENE"]}, {"Repeat"}})


-- Allumage manuel HALOGENE, arret tache extinction
GEA.add(id["WP_HALOGENE"], -1, "",{{"StopTask", halogene}})
  
--Allumage Halogène SAM, tous les jours 07:30 et 19:30, envoi sms
GEA.add({presence},30,"Allumage Halogène SAM le #date# à  #time#", {{"Time", "7:42", "7:43"},{"Time", "22:05", "22:06"}, {"RestartTask", halogene},{"VirtualDevice", id["VD_SMSFREE"], 3},{"Email", 2, "Allumage Halo"}, {"Email", 32, "Allumage Halo Salon"}, {"turnOn", id["WP_HALOGENE"]}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Il faut y aller progressivement :

 

1. Test

--local Ecl_Parents_off = {"Value", id["ECL_CHAMBRE_PARENTS"], 0} 
GEA.add(id["ECL_CHAMBRE_PARENTS"], -1, "Mode Panic OFF", {{"Inverse"},{"StopScenario", 185}, {"Global", "Etat_Alarme", "OFF"}})

2. Test

local intrusion = {"Global", "Etat_Alarme", "ON"}
--local Ecl_Parents_off = {"Value", id["ECL_CHAMBRE_PARENTS"], 0}
GEA.add({id["ECL_CHAMBRE_PARENTS"], intrusion }, -1, "Mode Panic OFF", {{"Inverse"}, {"StopScenario", 185}, {"Global", "Etat_Alarme", "OFF"}})
 

Si aucun des deux ne fonctionne, remplace le StopScenario, 185 par l'allumage d'une ampoule (si tu peux). Cela permet de voir très rapidement, si c'est le code qui ne fonctionne pour ou si c'est ton scénario qui n'arrive pas se stopper.

 

 

merci pour votre aide

 

le test 1 ne fonctionne pas

[DEBUG] 21:57:15: GEA Version 5.33 : en exécution...
[DEBUG] 21:57:15: [ 181 | Ecl_Chambre_Parents ] sendActions : traitement des actions (ID:22) [Inverse] [StopScenario,185] [Global,Etat_Alarme,OFF]
[DEBUG] 21:57:15: [ 181 | Ecl_Chambre_Parents ] !!! ERREUR !!! : vérification (ID:22) [Inverse] [StopScenario,185] [Global,Etat_Alarme,OFF]
[DEBUG] 21:57:18: [ 181 | Ecl_Chambre_Parents ] Add Property : ajout de la tache pour lancement instantané (ID:22) [Inverse] [StopScenario,185] [Global,Etat_Alarme,OFF]
[DEBUG] 21:57:18: [ 181 | Ecl_Chambre_Parents ] Add Property : ajout de la tache pour lancement instantané (ID:22) [Inverse] [StopScenario,185] [Global,Etat_Alarme,OFF]
[DEBUG] 21:57:18: GEA Version 5.33 : en exécution..

et le test 2 non plus mais en meme temps c'est pas etonnant

[DEBUG] 22:01:18: GEA Version 5.33 : en exécution...
[DEBUG] 22:01:21: [ 181 | Ecl_Chambre_Parents ] Add Property : ajout de la tache pour lancement instantané (ID:22) [Inverse] [StopScenario,185] [Global,Etat_Alarme,OFF] [If..]
[DEBUG] 22:01:21: [ 181 | Ecl_Chambre_Parents ] Add Property : ajout de la tache pour lancement instantané (ID:22) [Inverse] [StopScenario,185] [Global,Etat_Alarme,OFF] [If..]

j'ai tenté dans le test1 de mettre un turnoff sur un wallplug

    GEA.add(id["ECL_CHAMBRE_PARENTS"], -1, "Mode Panic OFF", {{"Inverse"},{"turnOff", id["WP_LAVE_LINGE"]}, {"Global", "Etat_Alarme", "OFF"}})

et ca fonctionne, des que je lance la scene (passe variable à  INTRUSION),  ECL_CHAMBRES change d'état (s'allume), ca coupe le WP, ca push le mode panic off et ca change la variable. donc la scene ce coupe. (au lieu de faire un globlal je vais faire un appuie sur le VD pour changer l'icône en meme temps).

 

si je fais le test 2 avec le WALLPLUG par contre ca marche pas, 

 

le hic, c'est que ca solutionne pas mon problème d'appuie sur l'inter coupe la scene. (en fait je peux changer la variable au lieu de faire un stopscenario ; ca change rien et peut être meme plus simple;

 

faut juste que je trouve comme interpreter l'appuie sur l'interrupteur du dimmer quand je suis dans ce 'mode panic'

Partager ce message


Lien à poster
Partager sur d’autres sites

hello petit soucis avec un virtual device

je fais des tests pour lancer la radio sur le VD sonos de Krikroff lorsque j'allume une lumière...le soucis c'est que je ne sais pas quel est le paramètre <no_button> pour le code GEA j'ai essayé l'id avec ou sans les "", le numéro en haut a gauche d'un bouton (mais c'est une ligne avec 5 boutons) et rien y fait la radio ne se lance pas..

voici ma ligne GEA :

GEA.add(id["LUMIERE_ENTREE"], -1, "",{{"VirtualDevice", id["SONOS_PLAYER"], 14}}) 

Partager ce message


Lien à poster
Partager sur d’autres sites

pour le num du bouton : toolkit de krikroff, sinon, y compris les etiquettes, on compte de haut en bas et de gauche a droite

Partager ce message


Lien à poster
Partager sur d’autres sites

super merci @pepite 

Pas evident ^^ mais compris !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans mon cas, j'ai une lampe qui s'éteint automatiquement toute les 10mn car on oublie toujours de l'éteindre. Cette lampe s'allume et s'éteint selon l'ouverture / fermeture de la porte. Donc si on laisse la porte ouverte plus de 10mn, la lumière va s'éteindre toute seule.

Sauf, que si je travaille dans ce local, porte ouverte, je ne veux plus qu'elle s'éteigne. Donc sur déclenchement instantané de l'interrupteur, je Stop la tâche d'exctinction. Je suis donc tranquille jusqu'à  ce que je reclique sur l'interrupteur.

 

un truc de ouff 

j'ai tenter plusieur truc j'ai du prend un efferalgan  :P

 

j'ai essayer 

StopTask, RestartTask, inc une variable,

 

dit moi si je chauffe ou refroidi 

Partager ce message


Lien à poster
Partager sur d’autres sites

@971jmd :

lol je ne suis pas sur que ce soit un scenario pour le jeu hihi

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

 

Mon GEA géolocalisation, oui j'en ai un specialement pour cette tache ne tourne pas spontanément tout seul. 

 

J'ai la distance qui se calcule que lorsque je sauvegarde la scene. Sinon, il ne se passe rien.

 

Comment  puis je faire?

 

Merci

 

Sebastien

 

--[[
%% autostart
%% properties
%% globals
geostarter
--]]
local geostater1 = {"Global", "geostarter", "1"} 
local geostater1 = {"Global", "geostarter", "0"} 
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, 30, "", {{"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"}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Je c'est bien, mai j'essaye de le réaliser réaliser

Allumer la lampe 10 MM a l'ouverture pas de soucie Mai bloquer le processus avec l'interrupteur la c'est autre chose

Partager ce message


Lien à poster
Partager sur d’autres sites

@sebbrunie : tu as crée une variable supplementaire dans ta HC2 ?

 

@971jmd, on essaie alors ;-) pas sur d'y arriver non plus mais j'ai une petite idee je te la soumets incessemment sous peu ;-), et voila le peu

 

Avec un peu de triche ;-) peut-etre que cela fonctionnerait ;-)

--extinction lum apres 10 mins
local extinctionauto = GEA.add(id["lum"], 10*60, "extinction lum après 10 mins", {{"turnOff"}, {"Repeat"}})

--allumage auto à  l'ouverture de porte,
GEA.add(id["porte"], -1, "", {{"turnOn", id["lum"]}})

--extinction lum à  la fermeture de porte, remise à  0 de "inter"
GEA.add(id["porte"], -1, "", {{"Inverse"}, {"turnOff", id["lum"]}, {"Global", "inter", 0}})

-- 1er appui court inter zwave : met valeur 1 à  variable "inter", et si inter = 1 arret tache "extinction"
GEA.add({"Global", "inter", 1}, -1, "", {{"StopTask", extinctionauto}})

--2eme appui long inter zwave : remet valeur 0 a variable "inter" : relance tache extinction
-- ouverture de la porte : relance de la tache extinction car inter = 0
GEA.add({"Global", "inter", 0}, -1, "", {{"RestartTask", extinctionauto}})
Modifié par pepite

Partager ce message


Lien à poster
Partager sur d’autres sites

oui geostarter car je pensais que ca suffirait pour relancer GEA comme si je l'enregistrais

 

La variable change toutes les minutes

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, je termine le passage vers GEA depuis Scheduler et j'ai un petit soucis sur les têtes Danfoss LC13, aucune ne repond au code suivant :

   -- Thermostats at 20° from 01h00 to 06h00 if Present   
   GEA.add( {"Global", "Presence", "present"}, 30*60, "", {{"Time", "01:00", "06:00"}, { "Value", 33, 20}, {"Repeat"}})
   GEA.add( {"Global", "Presence", "present"}, 30*60, "", {{"Time", "01:00", "06:00"}, { "Value", 27, 20}, {"Repeat"}})
   GEA.add( {"Global", "Presence", "present"}, 30*60, "", {{"Time", "01:00", "06:00"}, { "Value", 392, 20}, {"Repeat"}})
   -- Thermostats at 20° from 01h00 to 06h00 if Absent
   GEA.add( {"Global", "Presence", "absent"}, 30*60, "", {{"Time", "01:00", "06:00"}, { "Value", 33, 20}, {"Repeat"}})
   GEA.add( {"Global", "Presence", "absent"}, 30*60, "", {{"Time", "01:00", "06:00"}, { "Value", 27, 20}, {"Repeat"}})
   GEA.add( {"Global", "Presence", "absent"}, 30*60, "", {{"Time", "01:00", "06:00"}, { "Value", 392, 20}, {"Repeat"}})
   -- Thermostats at 22° from 07h00 to 01h00 if Present
   GEA.add( {"Global", "Presence", "present"}, 30*60, "", {{"Time", "07:00", "01:00"}, { "Value", 33, 22}, {"Repeat"}})
   GEA.add( {"Global", "Presence", "present"}, 30*60, "", {{"Time", "07:00", "01:00"}, { "Value", 27, 22}, {"Repeat"}})
   GEA.add( {"Global", "Presence", "present"}, 30*60, "", {{"Time", "07:00", "01:00"}, { "Value", 392, 22}, {"Repeat"}})
   -- Thermostats at 20° from 07h00 to 01h00 if Absent
   GEA.add( {"Global", "Presence", "absent"}, 30*60, "", {{"Time", "07:00", "01:00"}, { "Value", 33, 20}, {"Repeat"}})
   GEA.add( {"Global", "Presence", "absent"}, 30*60, "", {{"Time", "07:00", "01:00"}, { "Value", 27, 20}, {"Repeat"}})
   GEA.add( {"Global", "Presence", "absent"}, 30*60, "", {{"Time", "07:00", "01:00"}, { "Value", 392, 20}, {"Repeat"}})
Merci d'avance si quelqu'un a une solution ou une idée.

Partager ce message


Lien à poster
Partager sur d’autres sites

a mon sens le repeat n'est pas utile. Tu demande à  ta tête Danfoss de regler sur une T°C que tu as déjà  mise juste avant ....

 

moi je mettrais cela

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @Sebbrunie1, mais j'ai déjàtesté sans le repeat et pas de changement non plus :(

Partager ce message


Lien à poster
Partager sur d’autres sites

×