Steven Posté(e) le 29 novembre 2016 Auteur Signaler Posté(e) le 29 novembre 2016 Il y a 10 heures, sonnyboy a dit : Yes @pepite That is exactly what i want to do, is it possible? I just love GEA lets get all in it Nope, GEA don't have this kind of possibility. You have better to create a separate script for that and call it from GEA. Just for info, here is a more simple "table suffle" function. -- Shuffle a table function shuffleTable( table ) math.randomseed( os.time() ) for i = #table, 2, -1 do j = math.random(i) table[i], table[j] = table[j], table[i] end return table end -- Read the new shuffle table for _, device in ipairs( shuffleTable({10, 20, 30, 40, 50}) ) do print(device) end If you want to turnOn a light, don't check if the light is off before doing it, just turn it on ... because your HC2 will to the job for you so if you do it, this will be done twice. 2
pepite Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 Il y a 8 heures, 971jmd a dit : salut a tous j'ai un autre probleme sauf si j'ai pas compris comment fonctionne RestartTask local A = GEA.add(true, 30, "tru 2" , {{"turnOn", id["PLAFONNIER_CUISINE"]}}) GEA.add({"Value", id["BAR"], 1}, -1, "", {{"RestartTask", A}}) quand j'allume le bar par cette action, je lance la variable A et allumer le plafonnier de la cuisine mai le plafonnier de la cuisine s'allume tout seul après les 30s sans meme que j'ai à allumer la cuisine. @971 J'ai pas tout compris là. Si tu allumes le bar, ca relance la tache "A", donc ca allume 30 secs apres le plafonnier. C'est pas ce que tu veux faire ? Le plus simple c'est comme ceci : quand ton bar est allumée, allume le plafonnier lol GEA.add(id["BAR"], -1, "", {{"turnOn", id["PLAFONNIER_CUISINE"]}})
Steven Posté(e) le 29 novembre 2016 Auteur Signaler Posté(e) le 29 novembre 2016 @pepite, @971jmd Ce que 971jmd n'a pas compris c'est l'usage du "RestartTask" ... ce dernier sert à redémarrer une tache qui a été précédemment stoppée ("StopTask" ou "NotStart") ou terminée
971jmd Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 J'ai la tête trop dans le guidon, je ne voie pas ce qui ai évident Je vient de comprendre la fonction Merci à vous deux Envoyé de mon iPhone en utilisant Tapatalk
971jmd Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 J'ai pas encore tester, juste pour savoir. Est-il possible de stopper plusieurs ligne GEA et les redémarrer Envoyé de mon iPhone en utilisant Tapatalk
Steven Posté(e) le 29 novembre 2016 Auteur Signaler Posté(e) le 29 novembre 2016 local var1 = GEA.add(......) local var2 = GEA.add(......) local var3 = GEA.add(......) -- stopper les taches GEA.add(....., {{"StopTask", var1}, {"StopTask", var2}, {"StopTask", var3}}) -- redémarrer les taches GEA.add(....., {{"RestartTask", var1}, {"RestartTask", var2}, {"RestartTask", var3}}) 1
pepite Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 @971jmd, tu as le lien du wiki ? Au cas où, je te le redonne ca vaut le coup ;-) https://gea.piccand.me/doku.php/start @Steven J'avais compris lol
971jmd Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 Merci pépite Envoyé de mon iPhone en utilisant Tapatalk
971jmd Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 Il y a 5 heures, Steven a dit : local var1 = GEA.add(......) local var2 = GEA.add(......) local var3 = GEA.add(......) -- stopper les taches GEA.add(....., {{"StopTask", var1}, {"StopTask", var2}, {"StopTask", var3}}) -- redémarrer les taches GEA.add(....., {{"RestartTask", var1}, {"RestartTask", var2}, {"RestartTask", var3}}) @Steven Quand ont stop une ligne, elle est définitivement stopper jusqu'au RestartTask ?
banzai861 Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 Salut, je voudrai ajouter sur cette ligne GEA de prendre en compte l'action uniquement si AlarmeG1 est à on depuis 5min. GEA.add({id["POSITION_PORTAIL"],{"Value",id["ECL_ENTREE"],0},{"Global", "AlarmeG1", "On"}}, -1 , "" , {{"Time", "Sunset+60", "Sunrise-120"},{"turnOn",id["ECL_ENTREE"]}}) est ce possible?
pepite Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 Bonsoir, @banzai861, Essaie ceci local AlarmeG1 = false GEA.add({"Global", "AlarmeG1", "On"}, 5*60, "", {{"Function", function() AlarmeG1 = true end}}) GEA.add({id["POSITION_PORTAIL"],{"Value",id["ECL_ENTREE"],0},{"Function", function() return AlarmeG1 end}}, -1 , "" , {{"Time", "Sunset+60", "Sunrise-120"},{"turnOn",id["ECL_ENTREE"]}, {"Function", function() AlarmeG1 = false end}})
banzai861 Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 mon id["ECL_ENTREE" ne s'allume plus avant les 5 min, mais pas après non plus
pepite Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 Essaie avec 30 et pas -1 car on est pas dans la meme instance. Ton declencgement d'où été sur ton portail??
pepite Posté(e) le 29 novembre 2016 Signaler Posté(e) le 29 novembre 2016 Doit etre, desole correction auto
banzai861 Posté(e) le 30 novembre 2016 Signaler Posté(e) le 30 novembre 2016 c'est mieux comme ca. les 2 conditions fonctionnent. cependant, la première bloque la 2ème. lorsque j'ouvre mon portail pour sortir de mon jardin après avoir mis en service mon alarme. ma lampe entrée ne s'allume pas. (bien) puis lorsque je ré ouvre le portail, ma lampe entrée ne s'allume toujours pas. (pas bien) si j'attend 5 min après mise en service de l'alarme, mon entrée s'allume correctement (possible en test mais pas à l'usage) est il possible de corriger ca?
pepite Posté(e) le 1 décembre 2016 Signaler Posté(e) le 1 décembre 2016 Bonjour,@banzai861. Pour ca il faut que tu en dises un peu plus pour bien comprendre ton besoin ...ben oui je comprends twankillement moi ;-) Quand tu sors : 1- Alarme activee -->Ouverture du portail --> Lampe entree eteinte Quand tu rentres : 2- Ouverture du portail --> alarme toujours activée ? ou non ? --> tu veux que la lampe s'allume Oui normal que cela s'allume apres 5 mins, c'est ce que tu as demandé : 5 mins apres que l'alrme soit activee, cad selon ton code 5 mins apres le passage de la variable globale alarmeG1 soit "On".
banzai861 Posté(e) le 1 décembre 2016 Signaler Posté(e) le 1 décembre 2016 Salut @pepite je vais essayer d’être clair mon souhait: Citation pour sortir de chez moi: 1 - j'arme l'alarme 2 - j'ouvre mon portail pour sortir (donc alarme activé depuis moins de 5 min, la lumière entrée ne doit pas s'allumer) 3 - le portail ce referme. je suis parti. ensuite, je reviens: 1 - j'ouvre mon portail (alarme activé depuis plus de 5 min) 2 - la lumière entrée s'allume 3 - je ferme mon portail 4 - je désactive mon alarme ce qui ce passe avec ton code: 1 - j'arme l'alarme 2 - j'ouvre le portail pour sortir (donc alarme activé depuis moins de 5 min, la lumière ne s'allume pas) nickel 3 - le portail ce referme, je suis parti. ensuite, je reviens: 1 - j'ouvre mon portail (alarme activé depuis plus de 5 min) 2 - la lumière entrée ne s'allume pas. 3 - je ferme mon portail 4 - je désactive mon alarme j'ai essayé différemment pour voir: 1 - j'arme l'alarme 2 - je pars sans ouvrir le portail (pas pratique en voiture mais pour simulation. donc pas d'ouverture dans les 5 min de tempo) ensuite, je reviens: 1 - j'ouvre mon portail (alarme activé depuis plus de 5 min) 2 - la lumière entrée s'allume. 3 - je ferme mon portail 4 - je désactive mon alarme est ce possible? merci de l'aide accordé
sonnyboy Posté(e) le 1 décembre 2016 Signaler Posté(e) le 1 décembre 2016 Le 2016-11-29 à 09:44, Steven a dit : Nope, GEA don't have this kind of possibility. You have better to create a separate script for that and call it from GEA. Just for info, here is a more simple "table suffle" function. -- Shuffle a table function shuffleTable( table ) math.randomseed( os.time() ) for i = #table, 2, -1 do j = math.random(i) table[i], table[j] = table[j], table[i] end return table end -- Read the new shuffle table for _, device in ipairs( shuffleTable({10, 20, 30, 40, 50}) ) do print(device) end If you want to turnOn a light, don't check if the light is off before doing it, just turn it on ... because your HC2 will to the job for you so if you do it, this will be done twice. @Steven Thank so Much for this
kioneoranga Posté(e) le 1 décembre 2016 Signaler Posté(e) le 1 décembre 2016 Bonsoir Pourriez vous me dire si avec la fonction Sensor, il est possible de faire un test sur la température? Si oui j'ai essayé la ligne suivante pour protéger la filtration de ma piscine Le détecteur est une sonde branchée sur un module Fibaro générique (DETEC_TEMP_POOL_HOUSE --> ID = 355 déclaré dans l’entête de GEA) Ce que je veux c'est testé toutes les heures sur je suis en dessous de zéro ou pas et donc activé la pompe si nécessaire. GEA.add({"Sensor-", id["DETEC_TEMP_POOL_HOUSE"], 0}, 1*60*60, "Filtrage piscine forcé", {{"NOTDST"},{"VirtualDevice", id["VD_FILTRATION_PISCINE"], 5}}) Je me retrouve avec une erreur, et je ne comprends pas. Si vous pouvez m'aider, merci d'avance [DEBUG] 21:19:59: [ Sensor [355|Temp ext pool house] < 0 ] !!! ERREUR !!! : vérification (ID:287) [NOTDST] [VirtualDevice,270,5]
pepite Posté(e) le 1 décembre 2016 Signaler Posté(e) le 1 décembre 2016 @banzai861, Ok j'ai compris, essaie comme ceci alors, l'eclairage devrait s'allumer apres 5 mins d'alarme activee, donc a ton retour. Lorsque tu desarmes l'alrme, 30 secs après la variable repasse a false local AlarmeG1 = false -- Alarme armée depuis 5 mins GEA.add({"Global", "AlarmeG1", "On"}, 5*60, "", {{"Function", function() AlarmeG1 = true end}}) -- Alarme desarmee depuis 30 secs GEA.add({"Global!", "AlarmeG1", "On"}, 30, "", {{"Function", function() AlarmeG1 = false end}}) GEA.add({id["POSITION_PORTAIL"], {"Function", function() return AlarmeG1 end}}, 30 , "" , {{"Time", "Sunset+60", "Sunrise-120"},{"turnOn",id["ECL_ENTREE"]}}) @kioneoranga, Pour la temperature, pas sur que cela soit sensor, regarde l'api du device, repere la propriete qui te renvoie la temperature pour etre sur (j'aurais dit Value naturellement..) http://IPHC2/api/devices/355 1
kioneoranga Posté(e) le 1 décembre 2016 Signaler Posté(e) le 1 décembre 2016 il y a 49 minutes, pepite a dit : @kioneoranga, Pour la temperature, pas sur que cela soit sensor, regarde l'api du device, repere la propriete qui te renvoie la temperature pour etre sur (j'aurais dit Value naturellement..) http://IPHC2/api/devices/355 Voici ce que j'ai, valeur a recherché -11.44 avec volontairement un offset à -17 pour tester "Value-", mais cela ne fonctionne pas, snif {"id":355,"name":"Temp ext pool house","roomID":506,"type":"com.fibaro.temperatureSensor","baseType":"com.fibaro.multilevelSensor","enabled":true,"visible":true,"isPlugin":false,"parentId":351,"remoteGatewayId":0,"interfaces":["zwave"],"properties":{"parameters":[{"id":1,"lastReportedValue":0,"lastSetValue":0,"size":2,"value":0},{"id":2,"lastReportedValue":0,"lastSetValue":0,"size":2,"value":0},{"id":3,"lastReportedValue":0,"lastSetValue":0,"size":1,"value":0},{"id":4,"lastReportedValue":1,"lastSetValue":1,"size":1,"value":1},{"id":5,"lastReportedValue":255,"lastSetValue":255,"size":1,"value":255},{"id":6,"lastReportedValue":255,"lastSetValue":255,"size":1,"value":255},{"id":7,"lastReportedValue":255,"lastSetValue":255,"size":1,"value":255},{"id":8,"lastReportedValue":255,"lastSetValue":255,"size":1,"value":255},{"id":9,"lastReportedValue":0,"lastSetValue":0,"size":1,"value":0},{"id":10,"lastReportedValue":20,"lastSetValue":20,"size":1,"value":20},{"id":11,"lastReportedValue":200,"lastSetValue":200,"size":1,"value":200},{"id":12,"lastReportedValue":8,"lastSetValue":8,"size":1,"value":8},{"id":13,"lastReportedValue":0,"lastSetValue":0,"size":1,"value":0},{"id":14,"lastReportedValue":0,"lastSetValue":0,"size":1,"value":0}],"zwaveCompany":"Fibargroup","zwaveInfo":"3,3,52","zwaveVersion":"2.1","pollingTimeSec":0,"configured":"true","dead":"false","deviceControlType":"0","deviceIcon":"30","emailNotificationID":"0","emailNotificationType":"0","endPointId":"3","liliOffCommand":"","liliOnCommand":"","log":"","logTemp":"","manufacturer":"","markAsDead":"true","model":"","nodeId":"54","offset":"-17.00","parametersTemplate":"85","productInfo":"1,15,5,1,16,2,2,1","pushNotificationID":"0","pushNotificationType":"0","remoteGatewayId":"0","saveLogs":"true","serialNumber":"","showFireAlarm":"true","showFreezeAlarm":"false","smsNotificationID":"0","smsNotificationType":"0","unit":"C","useTemplate":"true","userDescription":"","value":"-11.44"},"actions":{"reconfigure":0},"created":1480548701,"modified":1480548701,"sortOrder":361}
pepite Posté(e) le 2 décembre 2016 Signaler Posté(e) le 2 décembre 2016 @kioneoranga, Ca confirme, d'après ton json, c'est bien Value. Essaie ceci pour tester si tu recois la notification ? sinon, s'il n'y a pas de declenchement instantané de prévu avec ton detecteur de temperature, tu peux l'enlever de l'entete. GEA.add({"Value-", id["DETEC_TEMP_POOL_HOUSE"], 0}, 30, "Filtrage piscine forcé : #value#") 1
kioneoranga Posté(e) le 2 décembre 2016 Signaler Posté(e) le 2 décembre 2016 Il y a 4 heures, pepite a dit : @kioneoranga, GEA.add({"Value-", id["DETEC_TEMP_POOL_HOUSE"], 0}, 30, "Filtrage piscine forcé : #value#") L'alerte fonctionne bien, merci
pepite Posté(e) le 2 décembre 2016 Signaler Posté(e) le 2 décembre 2016 Parfait, la condition etant correcte, cela devrait etre bon pour la suite de ton code avec ton VD ;-) 1
banzai861 Posté(e) le 2 décembre 2016 Signaler Posté(e) le 2 décembre 2016 @pepite top, ca fonctionne. merci. 1
Messages recommandés