jojo Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 @ pepite : MERCI ! 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. 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 ! 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 .
Steven Posté(e) le 31 mars 2015 Auteur Signaler Posté(e) le 31 mars 2015 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}}) 2
Steven Posté(e) le 31 mars 2015 Auteur Signaler Posté(e) le 31 mars 2015 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
jojo Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 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 !
Steven Posté(e) le 31 mars 2015 Auteur Signaler Posté(e) le 31 mars 2015 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.
Steven Posté(e) le 31 mars 2015 Auteur Signaler Posté(e) le 31 mars 2015 On devrait faire une GEA Game. On propose un scénario et les autres proposent le code pour résoudre cela .
HANSOLO Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 On l'appelle "the boulette Game"? 1
jojo Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 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 ?
Diuck Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 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 je test demain et je confirme si c'est ok J'en profite pour remercier Jojo et Pepite pour m'avoir apporté leur aide
sebcbien Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 Shyrka973 à été plus vite que moi pour mettre à jour gea sur github. Version 5.34 mise à jour donc
pepite Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 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"]}})
Sakkhho Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 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'
juke94 Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 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}})
pepite Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 pour le num du bouton : toolkit de krikroff, sinon, y compris les etiquettes, on compte de haut en bas et de gauche a droite
juke94 Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 super merci @pepite Pas evident ^^ mais compris !!!
jojo Posté(e) le 31 mars 2015 Signaler Posté(e) le 31 mars 2015 tu peux également utiliser l'API http://ipHC2/api/virtualDevices?id=113
971jmd Posté(e) le 1 avril 2015 Signaler Posté(e) le 1 avril 2015 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 j'ai essayer StopTask, RestartTask, inc une variable, dit moi si je chauffe ou refroidi
pepite Posté(e) le 1 avril 2015 Signaler Posté(e) le 1 avril 2015 @971jmd : lol je ne suis pas sur que ce soit un scenario pour le jeu hihi 1
Sebbrunie1 Posté(e) le 1 avril 2015 Signaler Posté(e) le 1 avril 2015 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"}})
971jmd Posté(e) le 1 avril 2015 Signaler Posté(e) le 1 avril 2015 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
pepite Posté(e) le 1 avril 2015 Signaler Posté(e) le 1 avril 2015 (modifié) @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é le 1 avril 2015 par pepite
Sebbrunie1 Posté(e) le 1 avril 2015 Signaler Posté(e) le 1 avril 2015 oui geostarter car je pensais que ca suffirait pour relancer GEA comme si je l'enregistrais La variable change toutes les minutes
ihexley Posté(e) le 1 avril 2015 Signaler Posté(e) le 1 avril 2015 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.
Sebbrunie1 Posté(e) le 1 avril 2015 Signaler Posté(e) le 1 avril 2015 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}})
ihexley Posté(e) le 1 avril 2015 Signaler Posté(e) le 1 avril 2015 Merci @Sebbrunie1, mais j'ai déjàtesté sans le repeat et pas de changement non plus
Messages recommandés