sebcbien Posté(e) le 20 septembre 2016 Signaler Posté(e) le 20 septembre 2016 Bonjour, Apparemment le fil showroom GEA est mort car les admin ne veulent/savent pas le débloquer, c'est bien dommage. Bref, on recommence tout, ce n'est pas si compliqué, copy/paste de votre config et hop. Sachant qu'il y a 20 post par page et que deux gros GEA peuvent suffire à planter le serveur, je vous propose donc de rajouter autant de posts "vides" qu'il faut pour qu'il y aie max deux gros scripts GEA par page.. Mettre les balises "spoiler" ne sert malheureusement à rien, j'ai vérifié le code, c'est juste caché, mais le serveur reçoit la même charge lors de l'appel de la page. Avec les deux posts "GEA" que j'ai faits ci-dessous, il faut déjà parfois 25 secondes pour l'affichage... Pour rappel, pour plus de lisibilité, pas de questions ici. Dans l'ancien fil, je demandais aussi pas de remerciements à par des clicks sur le bouton "j'aime"...mais comble de l'ironie s'il y en avais eu, peut-être que le fil serait toujours vivant... Donc vous pouvez poster des petits commentaires, mais pas de demande de support car là ça peut devenir "illisible" et noyer les posts "ShowRoom". Si vous en avez, copiez la ligne et faites-en référence sur le fil du support GEA, ici: http://www.domotique-fibaro.fr/index.php/topic/1211-support-gea/ 2
sebcbien Posté(e) le 20 septembre 2016 Auteur Signaler Posté(e) le 20 septembre 2016 Voici mon GEA principal: edit: mis àjour le 7/10/2016 GEA.regexFullAllow = true GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"] -- DERNIERE MISE A JOUR 27/09/2015 23h59 local id = { --User Phones and Scenes ADMIN = 2, PHONE_SEB = 1347, PHONE_GG = 1366, PHONE_FAKE = 97, SCENE_EMAIL_DNODES = 71, SCENE_REVEIL_DOUCEUR = 66, } -- IDs générés le : 18/09/16 à21:46:31 - Reconfigure FGMS SDD -- (liste raccourcie pour pas flooder le forum) local id2 = { --Salon MARANTZ_SALON = 1282, NETATMO_REZ_PRESSURE = 1800, POE_CAM_SALON__P1_ = 1851, TV___AMPLI = 80, SALON_MVT = 1486, XBMC_SALON_FIBARO = 1826, NETATMO_REZ_THERMOST = 1823, POUSSOIRS_HAUT = 1894, SALON_FLOD = 72, NETATMO_REZ_NOISE = 1801, LAMPADAIRE_BOIS = 1974, LAMPADAIRES_SALON = 23, NETATMO_REZ_CO2 = 1798, LAMPADAIRE_BOULLE = 1975, NETATMO_REZ_HUMIDITY = 1799, SALON = 1948, XBMC_REMOTE = 108, SALON_TEMPERATURE_FL = 74, } -- [FR] Liste des portables devant recevoir une notification {70, 71} -- [EN] Smarphones you want to be notified {XX, XX} for more than one GEA.portables = {id["PHONE_SEB"]} --, id["PHONE_GG"]} -- 53 Nexus 5 GG - 104 Nexus 4 local TTS_Sarah = {"VirtualDevice", id2["S_A_R_A_H__SAY_IT"], 1} local TTS_Sonos = {"VirtualDevice", id2["SONOS_SAY_IT"], 1} local TTS_Karotz = {"VirtualDevice", id2["KAROTZ_SAY_IT__"], 1} local TTS_Default = TTS_Sonos -- == CONDITIONS == -- DERNIERE MISE A JOUR 02/10/2016 23h03 -- Maison local estAt_Home = {"Global", "PresentState", "At_Home"} local estAway = {"Global", "PresentState", "Away"} local estNotAway = {"Global!", "PresentState", "Away"} local estNight_All_Off = {"Global", "PresentState", "Night_All_Off"} local estNotNight_All_Off = {"Global!", "PresentState", "Night_All_Off"} local estAwayOrNigh_All_Off = {"Global", "PresentState", "Night_All_Off|Away"} local estNotAwayOrNigh_All_Off = {"Global!", "PresentState", "Night_All_Off|Away"} local estKids_Sleeping = {"Global", "PresentState", "Kids_Sleeping"} local est_House_Sleeping = {"Global", "PresentState", "Kids_Sleeping|Night_All_Off"} local est_NotHouse_Sleeping = {"Global!", "PresentState", "Kids_Sleeping|Night_All_Off"} local est_AtHome_Or_Kids_Sleeping = {"Global", "PresentState", "Kids_Sleeping|At_Home"} local estNotKids_Sleeping = {"Global!", "PresentState", "Kids_Sleeping"} local estHouse_Manuel = {"Global", "House_Mode", "Manual"} local estNotHouse_Manuel = {"Global", "House_Mode", "Auto|Scheduler"} local estNotSimu_Presence = {"Global", "Simu_presence", "0"} local cond_pres_GG_Alarme_off = {"Global", "PresentState", "Away"},{"Global", "Lock_Away", "Unlocked"},{"Global", "Phone_GG_Present", "1"} local cond_pres_Seb_Alarme_off = {"Global", "PresentState", "Away"},{"Global", "Lock_Away", "Unlocked"}, {"Global", "Phone_Seb_Present", "1"} -- Périodes local estWinter = {"Global", "Season", "Winter"} local estSummer = {"Global", "Season", "Summer"} local estSombre = {"Value-", id2["CH_AMIS_LUMINOSITE"],200} local estLumineux = {"Value+", id2["CH_AMIS_LUMINOSITE"],200} local PeriodeDimCornicheSAM = {"Time", "20:30", "06:00"} local PeriodeLumiCornicheSAM = {"Time", "06:00", "20:30"} local PeriodeLumiSAM = {"Time", "06:00", "20:30"} local DimCouloir = 26 -- was 26 before update. 9 ok before update - %age quand lumière dimmée ------------------------------------------------------------------------- ------------ WHEN AT HOME DO------------------- GEA.add(estAt_Home, -1, "", { --{"turnOff", id2["CORNICHE_COULOIR"]}, {"turnOff", id2["BABYPHONE_EMILIEN"]}, {"turnOff", id2["BABYPHONE_THOMAS"]}, {"turnOn", id2["HALL"]} }) ------------ WHEN AWAY OR NIGHT ALL OFF DO ---- GEA.add(estAwayOrNigh_All_Off, -1, "", { {"VirtualDevice",id2["TOUTES_LUMIERES"],"2"}, -- turn off all lights {"VirtualDevice",id2["MARANTZ_SALON"],"15"}, -- set Marantz Day mode {"VirtualDevice",id2["XBMC_REMOTE"],"2"}, -- pause Nvidia Shield --{"VirtualDevice",id2["SONOS_REMOTE"],"9"},-- Stop SONOS {"VirtualDevice",id2["MARANTZ_SALON"],"6"} -- turn off ampli }) ------------ WHEN AWAY DO---------------------- GEA.add(estAway, -1, "", { {"Global", "Porte_Gar_Action", "Demande_Fermeture"}, {"turnOff", id2["BABYPHONE_EMILIEN"]}, {"turnOff", id2["BABYPHONE_THOMAS"]}, {"turnOff", id2["COULOIR"]} }) ------------ WHEN KIDS SLEEPING DO------------- GEA.add(estKids_Sleeping, -1, "", { {"VirtualDevice",id2["MARANTZ_SALON"],"14"}, -- set ampli night mode {"turnOn", id2["COULOIR"]} }) ------------ WHEN NIGHT ALL OFF DO------------- GEA.add(estNight_All_Off, -1, "", { {"turnOn", id2["ROUTEUR_1ER__P2_"]}, {"turnOn", id2["COULOIR"]}, }) --- Timer SEND all CAMERA SNAPSHOTS if AWAY --- GEA.add(estAway, 30, "", { {"Time", "18:30", "18:35"}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "10", 60}, -- Parking set Freq to 60s {"Slider", id2["SEND_PHOTO__5_CAM_"], "11", 12}, -- Parking set Shots to 12-10=2 {"Slider", id2["SEND_PHOTO__5_CAM_"], "13", 60}, -- Terrasse set Freq to 60s {"Slider", id2["SEND_PHOTO__5_CAM_"], "14", 11}, -- Terrasse set Shots to 11-10=1 {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 60}, -- Garage set Freq to 60s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 12}, -- Garage set Shots to 12-10=2 {"Slider", id2["SEND_PHOTO__5_CAM_"], "19", 60}, -- Salon set Freq to 60s {"Slider", id2["SEND_PHOTO__5_CAM_"], "20", 12}, -- Salon set Shots to 12-10=2 {"Slider", id2["SEND_PHOTO__5_CAM_"], "22", 60}, -- Cuisine set Freq to 60s {"Slider", id2["SEND_PHOTO__5_CAM_"], "23", 11}, -- Cuisine set Shots to 11-10=1 }) ----------NOTIF DEMARRAGE CHAUFFAGE------------ isThermRezOn = false GEA.add({"Global", "Therm_Rez_Status", "100"}, 30, "", {{"function",function() isThermRezOn = true end}}) -- après 30s met status thermostat àtrue GEA.add({"Global", "Therm_Rez_Status", "0"}, 5*60, "", {{"function",function() isThermRezOn = false end}}) -- après 5 minutes met status thermostat àtrue GEA.add({{"Global", "Phone_GG_Present", "1"},{"function",function() return isThermRezOn end}}, 5*60, "Thermostat Rez enclenché à#time#",{ {"Label", id2["SONOS_SAY_IT"], "Message", "Bonjour, enclenchement du chauffage du ré de chaussée"},TTS_Default, {"Portable", id["PHONE_FAKE"]}, {"Email", id["ADMIN"],"Notification GEA V5 Instance 1"}, {"function",function() isThermRezOn=false end} }) -------------SURVEILLANCE MEMOIRE-------------- GEA.add({{"Global-", "RamFree", 50}}, 30, "RAM inférieure à#value# - Reboot prévu cette nuit à2h45", {{"Time", "21:00", "21:01"}}) -- Push si Ram faible GEA.add({{"Global-", "RamFree", 50}}, 30, "Reboot HC2 car RAM inférieure à35% (#value#)", {{"Time", "02:45", "02:46"},{"VirtualDevice", id2["HC2_DIAGNOSTICS"], 15}}) -- Reboot HC2 si RAM faible ----------------MUSIQUE SALON------------------ isLongAwayOrNightAllOff_AMPLI = false GEA.add(estAwayOrNigh_All_Off, 30*60, "", {{"function",function() isLongAwayOrNightAllOff_AMPLI = true end}}) -- après 30 minutes met long away àtrue -- Ampli déjàallumé, désactive Auto on after long away GEA.add({{"Sensor+", id2["TV___AMPLI"], 40},{"function",function() return isLongAwayOrNightAllOff_AMPLI end}}, 60, "", {{"function",function() isLongAwayOrNightAllOff_AMPLI = false end}}) -- désactive si l'ampli est allumé (manuellement ou pas) et que isLongAwayOrNightAllOff_AMPLI = true -- At Home entre 6h et 11h - Marantz Scénario Matin GEA.add({estAt_Home,{"function",function() return isLongAwayOrNightAllOff_AMPLI end}}, 2*60, "",{ {"Time", "06:00", "11:00"}, {"Slider", id2["SONOS_REMOTE"], "15", 33},-- Set Volume to 33 {"Function", function() fibaro:sleep(500) end}, {"VirtualDevice",id2["SONOS_REMOTE"],"24"},-- R3 Pure FM --{"VirtualDevice", id2["MARANTZ_SALON"], 23}, {"function",function() isLongAwayOrNightAllOff_AMPLI=false end} }) -- At Home entre 17h et 19h30 - Marantz Scénario Soir GEA.add({estAt_Home,{"function",function() return isLongAwayOrNightAllOff_AMPLI end}}, 2*60, "",{ {"Time", "17:00", "19:30"}, {"Slider", id2["SONOS_REMOTE"], "15", 20},-- Set Volume to 20 {"Function", function() fibaro:sleep(500) end}, {"VirtualDevice",id2["SONOS_REMOTE"],"25"},-- R4 SOLO Piano --{"VirtualDevice", id2["MARANTZ_SALON"], 24}, {"function",function() isLongAwayOrNightAllOff_AMPLI=false end} }) ---------- GESTION DES CAMERAS----------------- -- Away ou Night_All_Off, Allumage des cameras GEA.add(estAwayOrNigh_All_Off, -1, "", {{"turnOn", id2["POE_CAM_SALON__P1_"]},{"Function", function() fibaro:sleep(500) end},{"turnOn", id2["POE_CAM_CUISINE__P6_"]}}) -- Away ou Night_All_Off, Enable All Cameras Syno (délai 60s pour allumage POE GEA.add(estAwayOrNigh_All_Off, 60, "", {{"VirtualDevice", id2["CAMERAS"], 6}}) -- Pas Away ou Night_All_Off, extinction cameras Cuisine et entrée après 10 min GEA.add(estNotAwayOrNigh_All_Off, 10*60, "", {{"turnOff", id2["POE_CAM_SALON__P1_"]},{"Function", function() fibaro:sleep(500) end},{"turnOff", id2["POE_CAM_CUISINE__P6_"]}}) -- Pas Away ou Night_All_Off, Enable Out Only Cameras Syno après 2 min GEA.add(estNotAwayOrNigh_All_Off, 2*60, "", {{"VirtualDevice", id2["CAMERAS"], 7}}) -- Garage a 99% plus de 10 min (mode manuel forcé) -> disable camera Garage GEA.add({estNotAwayOrNigh_All_Off,{"Value", id2["GARAGE"],99}}, 10, "Garage à99% depuis #duration# -> Camera Garage Disabled à#time#", {{"VirtualDevice", id2["CAMERAS"], 15}}) -- Garage moins de 99% depuis #duration# -> Camera Garage Enabled à#time# GEA.add({estNotAwayOrNigh_All_Off,{"Value-", id2["GARAGE"],99}}, 2*60, "", {{"VirtualDevice", id2["CAMERAS"], 14}}) -------------------SONNETTE-------------------- -- On a sonné àla porte, notify 2 portables et send pics pour 1 minute -- VD bouton 3 = all 30s - bouton 9 = out 1 min - bouton 10 = out 3 min GEA.add({{"Value+", id2["CARILLON"], 0},estAwayOrNigh_All_Off}, -1, "Sonnette actionnée à#time# le #date#", { {"Portable", id["PHONE_SEB"]}, {"Portable", id["PHONE_GG"]}, {"VirtualDevice", id2["SONNETTE"], "2"}, -- start videophone {"Slider", id2["SEND_PHOTO__5_CAM_"], "10", 15}, -- Parking set Freq to 15s {"Slider", id2["SEND_PHOTO__5_CAM_"], "11", 32}, -- Parking set Shots to 32-10=22 {"Slider", id2["SEND_PHOTO__5_CAM_"], "13", 60}, -- Terrasse set Freq to 60s {"Slider", id2["SEND_PHOTO__5_CAM_"], "14", 14}, -- Terrasse set Shots to 14-10=4 {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 120}, -- Garage set Freq to 120s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 12}, -- Garage set Shots to 12-10=2 {"Slider", id2["SEND_PHOTO__5_CAM_"], "19", 120}, -- Salon set Freq to 120s {"Slider", id2["SEND_PHOTO__5_CAM_"], "20", 12}, -- Salon set Shots to 12-10=2 {"Slider", id2["SEND_PHOTO__5_CAM_"], "22", 120}, -- Cuisine set Freq to 120s {"Slider", id2["SEND_PHOTO__5_CAM_"], "23", 12}, -- Cuisine set Shots to 12-10=2 }) GEA.add({{"Value+", id2["CARILLON"], 0},estNotAwayOrNigh_All_Off}, -1, "Sonnette actionnée à#time# le #date#", { {"Portable", id["PHONE_SEB"]}, {"Portable", id["PHONE_GG"]}, {"VirtualDevice", id2["SONNETTE"], "2"}, -- start videophone {"Label", id2["SONOS_SAY_IT"], "Message", "Bonjour, Quelqun a sonné àla porte"},TTS_Default, {"Slider", id2["SEND_PHOTO__5_CAM_"], "10", 30}, -- Parking set Freq to 30s {"Slider", id2["SEND_PHOTO__5_CAM_"], "11", 14}, -- Parking set Shots to 16-10=4 }) -------------------BABYPHONES------------------ -- Si Prise BaybyPhone Thomas ou Emilien ON, alors VG KIDS SLEEPING et Lapin Blanc sinon AT HOME et Lapin Blanc (Lapin Vert via Gea Alarm) GEA.add(id2["BABYPHONE_EMILIEN"], -1, "", {{"turnOn", id2["BABYPHONE_THOMAS"]},{"VirtualDevice", id2["COLOR_LAPIN_THOMA"], 18},{"VirtualDevice", id2["COLOR_LAPIN_EMILIEN"], 18},estKids_Sleeping}) GEA.add(id2["BABYPHONE_THOMAS"], -1, "", {{"turnOn", id2["BABYPHONE_EMILIEN"]},{"VirtualDevice", id2["COLOR_LAPIN_THOMA"], 18},{"VirtualDevice", id2["COLOR_LAPIN_EMILIEN"], 18},estKids_Sleeping}) -- BabyPhone off when kid sleeping off GEA.add({id2["BABYPHONE_EMILIEN"],est_House_Sleeping}, -1, "", {{"Inverse"},{"turnOff", id2["BABYPHONE_THOMAS"]},estAt_Home,{"VirtualDevice", id2["COLOR_LAPIN_THOMA"], 18},{"VirtualDevice", id2["COLOR_LAPIN_EMILIEN"], 18}}) GEA.add({id2["BABYPHONE_THOMAS"],est_House_Sleeping}, -1, "", {{"Inverse"},{"turnOff", id2["BABYPHONE_EMILIEN"]},estAt_Home,{"VirtualDevice", id2["COLOR_LAPIN_THOMA"], 18},{"VirtualDevice", id2["COLOR_LAPIN_EMILIEN"], 18}}) ---------------------HALL---------------------- -- Allumle la lampe du hall si détection de mouvement. et si moins de 59% (économie zwave si lampe allumée) GEA.add({id2["HALL_MVT"], estNotHouse_Manuel,estSombre,{"Value-", id2["HALL"],59}}, -1, "", {{"Function", function() fibaro:call(id2["HALL"], "setValue", "99") end}}) -- Eteindre la lampe du hall si pas de présence plus de 3 mn. local malampehall = GEA.add({id2["HALL"],estNotSimu_Presence}, 3*60, "", {{"turnOff",id2["HALL"]}}) GEA.add(id2["HALL_MVT"], -1, "", {{"RestartTask", malampehall}}) -------------------- WC ----------------------- -- Allumage à95% dès que détection mouvement. Le if permet de ne pas renvoyer l'ordre d'allumage si la lampe est déjàallumée GEA.add({id2["WC_MVT"],{"Value-", id2["WC"],89}}, -1, "",{{"Function", function() fibaro:call(id2["WC"], "setValue", "95") end}}) -- On dimme la lampe automatiquement après 5 mn et on l'éteint après 2mn si pas de mouvement ou si la lampe àété remontée a plus de 89% local malampewc = GEA.add({"Value+", id2["WC"],89}, 5*60, "",{{"Value", 15}}) local malampewcdim = GEA.add({{"Value-", id2["WC"],55},{"Value+", id2["WC"], 1}}, 2*60,"",{{"Value", id2["WC"], 95},{"Function", function() fibaro:sleep(300) end},{"turnOff"}}) -- Relance des tâches en cas de détection GEA.add(id2["WC_MVT"], -1, "", {{"RestartTask", malampewc}}) GEA.add(id2["WC_MVT"], -1, "", {{"RestartTask", malampewcdim}}) --------------------SALON---------------------- -- Si l'ampli comsomme moins de 40w depuis 30 minutes, on eteint ampli et pause XBMC -- Pause XBMC at #time# car conso à#value# GEA.add({"Sensor-", id2["TV___AMPLI"], 40}, 30*60, "", {{"VirtualDevice",id2["MARANTZ_SALON"],"6"},{"VirtualDevice",id2["XBMC_REMOTE"],"2"}}) -- Marantz set to Day Mode at #time# GEA.add({{"Sensor+", id2["TV___AMPLI"], 40},estAt_Home}, 30, "", {{"VirtualDevice",id2["MARANTZ_SALON"],"15"}}) --------------------- -- Notifie si TV allumée depuis plus de 3 Heures GEA.add({"Sensor+", id2["TV___AMPLI"], 150}, 180*60, "TV Allumée depuis #duration# (#value# Watt)",{ {"Portable", id["PHONE_SEB"]}, --{"Global", "Karotz", ". Bonjour, jattire votre attention que la TV est allumée depuis #duration#. La consomation est de #value# Watt"},{"VirtualDevice", id2["KAROTZ"],"1"}, {"Label", id2["SONOS_SAY_IT"], "Message", "Télévision allumée depuis 3 heures. La consomation est de #value# Watt"},TTS_Default }) ------------------- BUREAU -------------------- -- la nuit allume centrale bureau à30% GEA.add({id2["BUREAU_MVTZ"],{"Value", id2["BUREAU"] ,0},estNotHouse_Manuel,estNotSimu_Presence}, -1, "",{{"Time", "06:00", "23:00"},{"turnOn", id2["LED_BUREAU"]},{"Value", id2["BUREAU"], 98}}) GEA.add({id2["BUREAU_MVTZ"],{"Value", id2["BUREAU"] ,0},estNotHouse_Manuel,estNotSimu_Presence}, -1, "",{{"Time", "23:00", "06:00"},{"turnOn", id2["LED_BUREAU"]},{"Value", id2["BUREAU"], 30}}) -- Si lampe déjàallumée, dimme à30 en heure de nuit sauf si alumage manuel (99) ou double click GEA.add({{"Value", id2["BUREAU"] ,98},estNotHouse_Manuel,estNotSimu_Presence}, 30, "",{{"Time", "23:00", "06:00"},{"turnOn", id2["LED_BUREAU"]},{"Value", id2["BUREAU"], 30}}) -- après 15 min éteint Centrale bureau si pas de MVT et 5 minutes après LED bureau local malampebureau = GEA.add({{"Value+", id2["BUREAU"],1},estNotHouse_Manuel,estNotSimu_Presence}, 5*60, "",{{"Value", id2["BUREAU"], 99},{"Function", function() fibaro:sleep(1000) end},{"turnOff", id2["BUREAU"]}}) local maledbureau = GEA.add({{"Value", id2["LED_BUREAU"],1},estNotHouse_Manuel,estNotSimu_Presence}, 10*60, "",{{"turnOff", id2["LED_BUREAU"]}}) GEA.add(id2["BUREAU_MVTZ"], -1, "", {{"RestartTask", malampebureau},{"RestartTask", maledbureau}}) -- relance en cas de mouvement continu (blindtime) sauf si lampe off (manual off) - la durée doit être inférieur àdurée malampebureau GEA.add({id2["BUREAU_MVTZ"],{"Value+", id2["BUREAU"],1}}, 4*60, "", {{"RestartTask", malampebureau},{"RestartTask", maledbureau},{"Repeat"}}) -----------------CORNICHE_REZ------------------ -- si Periode luminosité (Matin 5h30, journée et début soirée ->20h30) allumer à98% si moins de 98% (99% = alumage Manuel) "Allumage Corniche à#time#" -- Allumage puissance suivant période et luminosité GEA.add({id2["SAM_MVT"],{"Value-", id2["CORNICHE_REZ"],98}, estNotHouse_Manuel,estSombre}, -1, "",{PeriodeLumiCornicheSAM, {"Value", id2["CORNICHE_REZ"], 98}}) GEA.add({id2["SAM_MVT"],{"Value-", id2["CORNICHE_REZ"],23}, estNotHouse_Manuel}, -1, "",{PeriodeDimCornicheSAM, {"Value", id2["CORNICHE_REZ"], 23}}) -- Après 3 min sans mouvement on dimme la lampe à23% (22% stable aussi) si entre 24 et 99% donc pas si éteinte ou 99% "Dim Corniche à#time#" local maCornicheRez = GEA.add({{"Value+", id2["CORNICHE_REZ"],23},{"Value-", id2["CORNICHE_REZ"],99},estNotHouse_Manuel}, 3*60, "",{{"Value", id2["CORNICHE_REZ"], 23}}) -- si pas de mouvement pendant 120 minutes et periode dim, mise à99% et extinction (si allumage suivant (manuel) à99%, -> dim désactivé) "Extinction Corniche à#time#" local maCornicheRezDim = GEA.add({{"Value-", id2["CORNICHE_REZ"],99},{"Value+", id2["CORNICHE_REZ"],1},estNotHouse_Manuel,estSombre}, 120*60, "",{{"Value", id2["CORNICHE_REZ"], 99},{"Function", function() fibaro:sleep(1000) end},{"turnOff",id2["CORNICHE_REZ"]}}) -- en période lumineuse, time out à60 secondes local maCornicheRezDimLumi = GEA.add({{"Value-", id2["CORNICHE_REZ"],99},{"Value+", id2["CORNICHE_REZ"],1},estNotHouse_Manuel,estLumineux}, 60, "",{{"Value", id2["CORNICHE_REZ"], 99},{"Function", function() fibaro:sleep(1000) end},{"turnOff",id2["CORNICHE_REZ"]}}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) GEA.add({{"Value", id2["SAM_MVT"],1},{"Value+", id2["CORNICHE_REZ"], 1}}, -1, "", {{"RestartTask", maCornicheRez},{"RestartTask", maCornicheRezDim},{"RestartTask", maCornicheRezDimLumi}}) -------------------SAM------------------------- -- si Periode luminosité (Matin 5h30, journée et début soirée ->20h30) allumer à95% si moins de 95% (99% = alumage Manuel) "Allumage Corniche à#time#" GEA.add({{"Value", id2["SAM_MVT"],1},{"Value-", id2["SALLE_A_MANGER"],95},estNotHouse_Manuel,estSombre}, -1, "",{PeriodeLumiSAM,{"Value", id2["SALLE_A_MANGER"], 95}}) -- Après 8min on dimme la lampe à4% si pas de mouvement et pas manuel (99%) local maLampeSam = GEA.add({{"Value+", id2["SALLE_A_MANGER"],4},{"Value-", id2["SALLE_A_MANGER"],99}}, 8*60, "",{{"Value", id2["SALLE_A_MANGER"], 4}}) -- Après 2 min on met la lampe à95% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est dimmée local maLampeSamDim = GEA.add({{"Value-", id2["SALLE_A_MANGER"],5},{"Value+", id2["SALLE_A_MANGER"], 1}}, 2*60,"",{{"Value", id2["SALLE_A_MANGER"], 95},{"Function", function() fibaro:sleep(300) end},{"turnOff"}}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) GEA.add({{"Value", id2["SAM_MVT"],1},{"Value+", id2["SALLE_A_MANGER"], 1}}, -1, "", {{"RestartTask", maLampeSam},{"RestartTask", maLampeSamDim}}) -------------------CELLIER--------------------- -- Allume la lampe du cellier si détection de mouvement. et si moins de 1% (économie zwave si lampe allumée) GEA.add({id2["CELLIER_MVT"], estNotHouse_Manuel,{"Value-", id2["CELLIER"],1}}, -1, "", {{"Value", id2["CELLIER"], 99}}) -- Eteindre la lampe du cellier si pas de présence plus de 3 mn. local maLampeCellier = GEA.add({id2["CELLIER"],estNotSimu_Presence}, 3*60, "", {{"turnOff",id2["CELLIER"]}}) GEA.add(id2["CELLIER_MVT"], -1, "", {{"RestartTask", maLampeCellier}}) --------------ROUTEUR COULOIR------------------ -- Si le détecteur Couloir détecte une présence ou lampe parents allumée, on allume le routeur 1er GEA.add({id2["COULOIR_MVT"],{"Value-",id2["ROUTEUR_1ER__P2_"],1}}, -1, "",{{"turnOn", id2["ROUTEUR_1ER__P2_"]}}) -- Turn on ne fonctionne pas sans le rappel de l'id. ------------- CORNICHE COULOIR----------------- -- allumer lampe automatiquement en cas de mouvement (au % correspondant àla période) -- Allumage Corniche Couloir à98% à#time# GEA.add({id2["COULOIR_MVT"],{"Value-", id2["CORNICHE_COULOIR"],98}, estNotHouse_Manuel,estNotSimu_Presence,est_NotHouse_Sleeping}, -1, "",{{"Value", id2["CORNICHE_COULOIR"], 98},{"turnOn",id2["COULOIR"]}}) -- Allumage Corniche Couloir à"..DimCouloir.."% à#time# GEA.add({id2["COULOIR_MVT"],{"Value-", id2["CORNICHE_COULOIR"],99}, estNotHouse_Manuel,estNotSimu_Presence,est_House_Sleeping}, -1, "",{{"Value", id2["CORNICHE_COULOIR"], DimCouloir},{"turnOn",id2["COULOIR"]}}) -- On dimme la lampe àDimCouloir% si entre 1 et 99% donc pas si éteinte ou 99% -- Dim Corniche Couloir à"..DimCouloir.."% à#time# GEA.add({{"Value+", id2["CORNICHE_COULOIR"],DimCouloir},{"Value-", id2["CORNICHE_COULOIR"],99},estNotHouse_Manuel,estNotSimu_Presence,est_House_Sleeping}, 10, "",{{"Value", id2["CORNICHE_COULOIR"], DimCouloir}}) -- si pas de mouvment pendant 5 minutes et periode off, mise à99% et extinction (si allumage suivant (manuel) à99%, -> dim désactivé) -- Extinction Corniche Couloir à#time# local maCornicheCouloir = GEA.add({{"Value-", id2["CORNICHE_COULOIR"],99},{"Value+", id2["CORNICHE_COULOIR"],1},estNotHouse_Manuel,estNotSimu_Presence,}, 5*60, "",{{"turnOff",id2["CORNICHE_COULOIR"]}}) -- Extoinction lampe centrale couloir uniquement si pas kids_sleeping local maLampeCouloir = GEA.add({{"Value", id2["COULOIR"],1},estNotHouse_Manuel,estNotSimu_Presence,est_NotHouse_Sleeping}, 5*60, "",{{"turnOff",id2["COULOIR"]}}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) GEA.add({{"Value", id2["COULOIR_MVT"],1},{"Value", id2["COULOIR"], 1}}, -1, "", {{"RestartTask", maLampeCouloir},{"RestartTask", maCornicheCouloir}}) -------------GESTION POUR SIMU PRESENCE-------- GEA.add({{"Value+", id2["CORNICHE_COULOIR"],DimCouloir},estAway}, 10, "estAway - Dim Corniche Couloir à"..DimCouloir.."% à#time#",{{"Value", id2["CORNICHE_COULOIR"], DimCouloir}}) -- Éteint lumière couloir àl'aube si away (allumé par simulateur de présence) GEA.add({id2["CORNICHE_COULOIR"], estAway}, 10, "Sunrise and Away - Lampe couloir turned off at #time#",{{"Time", "Sunrise+30", "Sunrise+35"}, {"turnOff"}}) -------------------- SDB ---------------------- -- Gestion scene Activation ruban RGB GEA.add({{"SceneActivation", id2["SDB_CORNICHE"], 26},{"Value-", id2["SDB_RUBAN_LED"],6}}, -1, "",{{"Value", id2["SDB_RUBAN_LED"], 99}}) GEA.add({{"SceneActivation", id2["SDB_CORNICHE"], 26},{"Value+", id2["SDB_RUBAN_LED"],4}}, -1, "",{{"turnOff", id2["SDB_RUBAN_LED"]}}) GEA.add({{"SceneActivation", id2["SDB_CORNICHE"], 22},{"Value", id2["SDB_RUBAN_LED"],0}}, -1, "",{{"Value", id2["SDB_RUBAN_LED"], 5}}) -- long press allume dimmé si éteint GEA.add({{"SceneActivation", id2["SDB_CORNICHE"], 22},{"Value", id2["SDB_RUBAN_LED"],5}}, -1, "",{{"Value", id2["SDB_RUBAN_LED"], 99}}) GEA.add({{"SceneActivation", id2["SDB_CORNICHE"], 22},{"Value+", id2["SDB_RUBAN_LED"],6}}, -1, "",{{"Value", id2["SDB_RUBAN_LED"], 5}}) -- Allume led a 99 si lampe sdb allumée. inverse si éteint GEA.add({{"Value+", id2["SDB_CORNICHE"], 1},estNotSimu_Presence}, 10, "", {{"Value", id2["SDB_RUBAN_LED"], 99}}) GEA.add({{"Value-", id2["SDB_CORNICHE"], 1},estNotSimu_Presence}, 10, "", {{"Value", id2["SDB_RUBAN_LED"], 0}}) -- la nuit, si night all off allume à10% RGBW pendant 2m puis éteint, sinon 99% GEA.add({id2["SDB_MVTZ"],{"Value", id2["SDB_RUBAN_LED"], 0},estNotHouse_Manuel,estNotNight_All_Off}, -1, "",{{"Time", "sunset-180", "06:00"},{"Value", id2["SDB_RUBAN_LED"], 99}}) GEA.add({id2["SDB_MVTZ"],{"Value", id2["SDB_RUBAN_LED"], 0},estNotHouse_Manuel,estNight_All_Off}, -1, "",{{"Time", "sunset-180", "06:00"},{"Value", id2["SDB_RUBAN_LED"], 5}}) -- pendant la journée allume si sombre GEA.add({id2["SDB_MVTZ"],{"Value", id2["SDB_RUBAN_LED"], 0},estNotHouse_Manuel,estSombre}, -1, "",{{"Time", "06:00", "sunset-180"},{"Value", id2["SDB_RUBAN_LED"], 99}}) -- après 3 min éteint ruban led si pas de MVT et lampe principale éteinte local malampesdb = GEA.add({estNotHouse_Manuel,estNotSimu_Presence,{"Value-", id2["SDB_CORNICHE"], 1}}, 3*60, "",{{"turnOff", id2["SDB_RUBAN_LED"]}}) -- après 10 min éteint lampe manuelle si pas de MVT local malampesdbFull = GEA.add({estNotHouse_Manuel,estNotSimu_Presence}, 15*60, "",{{"turnOff", id2["SDB_CORNICHE"]},{"turnOff", id2["SDB_ARMOIRES"]},{"turnOff", id2["CHAUFFERETTE_SDB"]}}) GEA.add(id2["SDB_MVTZ"], -1, "", {{"RestartTask", malampesdb},{"RestartTask", malampesdbFull}}) -- relance en cas de mouvement continu (blindtime) sauf si lampe off (manual off) - la durée doit être inférieur àdurée malampesdb GEA.add({id2["SDB_MVTZ"],{"Value+", id2["SDB_RUBAN_LED"],1}}, 2*60, "", {{"RestartTask", malampesdb},{"RestartTask", malampesdbFull},{"Repeat"}}) -- re-active prise chaufferette si off (éteinte après 15 minutes inactivité sdb) GEA.add({{"Value", id2["CHAUFFERETTE_SDB"], 0}}, 10, "", {{"turnOn", id2["CHAUFFERETTE_SDB"]}}) -------------------- SDD ---------------------- -- Gestion scene Activation ruban RGB GEA.add({{"SceneActivation", id2["SALLE_DE_DOUCHE"], 26},{"Value-", id2["SDD_RUBAN_LED"],6}}, -1, "",{{"Value", id2["SDD_RUBAN_LED"], 99}}) GEA.add({{"SceneActivation", id2["SALLE_DE_DOUCHE"], 26},{"Value+", id2["SDD_RUBAN_LED"],4}}, -1, "",{{"turnOff", id2["SDD_RUBAN_LED"]}}) GEA.add({{"SceneActivation", id2["SALLE_DE_DOUCHE"], 22},{"Value", id2["SDD_RUBAN_LED"],0}}, -1, "",{{"Value", id2["SDD_RUBAN_LED"], 5}}) -- long press allume dimmé si éteint GEA.add({{"SceneActivation", id2["SALLE_DE_DOUCHE"], 22},{"Value", id2["SDD_RUBAN_LED"],5}}, -1, "",{{"Value", id2["SDD_RUBAN_LED"], 99}}) GEA.add({{"SceneActivation", id2["SALLE_DE_DOUCHE"], 22},{"Value+", id2["SDD_RUBAN_LED"],6}}, -1, "",{{"Value", id2["SDD_RUBAN_LED"], 5}}) -- Allume led a 99 si lampe sdd allumée. inverse si éteint GEA.add({{"Value+", id2["SALLE_DE_DOUCHE"], 1},estNotSimu_Presence}, 10, "", {{"Value", id2["SDD_RUBAN_LED"], 99}}) GEA.add({{"Value-", id2["SALLE_DE_DOUCHE"], 1},estNotSimu_Presence}, 10, "", {{"Value", id2["SDD_RUBAN_LED"], 0}}) -- la nuit, si night all off allume à10% RGBW pendant 2m puis éteint, sinon 99% GEA.add({id2["SDD_MVTZ"],{"Value", id2["SDD_RUBAN_LED"], 0},estNotHouse_Manuel,est_NotHouse_Sleeping}, -1, "",{{"Time", "sunset-180", "06:00"},{"Value", id2["SDD_RUBAN_LED"], 99}}) GEA.add({id2["SDD_MVTZ"],{"Value", id2["SDD_RUBAN_LED"], 0},estNotHouse_Manuel,est_House_Sleeping}, -1, "",{{"Time", "sunset-180", "06:00"},{"Value", id2["SDD_RUBAN_LED"], 5}}) -- pendant la journée allume si sombre GEA.add({id2["SDD_MVTZ"],{"Value", id2["SDD_RUBAN_LED"], 0},estNotHouse_Manuel,estSombre}, -1, "",{{"Time", "06:00", "sunset-180"},{"Value", id2["SDD_RUBAN_LED"], 99}}) -- après 3 min éteint ruban led si pas de MVT et lampe principale éteinte local malampesdd = GEA.add({estNotHouse_Manuel,estNotSimu_Presence,{"Value-", id2["SALLE_DE_DOUCHE"], 1}}, 3*60, "",{{"turnOff", id2["SDD_RUBAN_LED"]}}) -- après 10 min éteint lampe manuelle si pas de MVT local malampesddFull = GEA.add({estNotHouse_Manuel,estNotSimu_Presence}, 15*60, "",{{"turnOff", id2["SALLE_DE_DOUCHE"]}}) GEA.add(id2["SDD_MVTZ"], -1, "", {{"RestartTask", malampesdd},{"RestartTask", malampesddFull}}) -- relance en cas de mouvement continu (blindtime) sauf si lampe off (manual off) - la durée doit être inférieur àdurée malampesdd GEA.add({id2["SDD_MVTZ"],{"Value+", id2["SDD_RUBAN_LED"],1}}, 2*60, "", {{"RestartTask", malampesdd},{"RestartTask", malampesddFull},{"Repeat"}}) ---------------DETECTION PRESENCE-------------- -- Signale GG ou seb present at Home GEA.add({{"Global", "Phone_GG_Present", "1"},estNotNight_All_Off}, -1, "GG est arrivée à#time#", {{"Portable", id["PHONE_SEB"]}}) GEA.add({{"Global", "Phone_GG_Present", "0"},estNotNight_All_Off}, -1, "GG est partie à#time#", {{"Portable", id["PHONE_SEB"]}}) GEA.add({{"Global", "Phone_Seb_Present", "1"},estNotNight_All_Off}, -1, "Seb est arrivé à#time#", {{"Portable", id["PHONE_SEB"]}}) GEA.add({{"Global", "Phone_Seb_Present", "0"},estNotNight_All_Off}, -1, "Seb est parti à#time#", {{"Portable", id["PHONE_SEB"]}}) ----------------------------------------------- ----------------- THERMOSTAT ------------------ -- set THERMOSTATc to Away or Program when away or not away -- Set Thermostats to Away at #time# - ,{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"} GEA.add({estAway,estWinter}, 60, "", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"2"}}) -- Set Thermostats to Program at #time# - ,{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"} GEA.add({estNotAway,estWinter}, 60, "", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"3"}}) -- Set Thermostats to Frost Gard (Summer) at #time# - ,{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"} GEA.add(estSummer, 60, "", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"4"}}) -- après 10 min re-set pour être sûr GEA.add({estAway,estWinter}, 600, "", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"2"}}) GEA.add({estNotAway,estWinter}, 600, "", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"3"}}) GEA.add(estSummer, 600, "", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"4"}}) ----------------------------------------------- --------------------- VMC --------------------- -- read and set vmc to absent and lock manual when away GEA.add(estAway, 60, "", {{"Label", id2["VITESSE_VMC"], "VgVmcLock", "Locked"},{"Label", id2["VITESSE_VMC"], "VgVmcSpeed", "Absent"},{"Slider", id2["VITESSE_VMC"], "1", 49}}) GEA.add(estNotAway, 60, "", {{"Label", id2["VITESSE_VMC"], "VgVmcLock", "Automatique"},{"Slider", id2["VITESSE_VMC"], "1", 49}}) -- surveillance V3 VMC plus de 30 minutes GEA.add({"Label", id2["VITESSE_VMC"], "VgVmcSpeed", "Rapide"}, 30*60, "VMC en Vitesse #value# depuis #duration# - #time# - #date#", {{"Portable", id["PHONE_SEB"]},{"Repeat"}}) ------------------- REVEIL -------------------- GEA.add({{"Alarm", id2["REVEIL_AURORE_FAMILLE"]}, est_House_Sleeping}, 0, "", {{"Scenario", id["SCENE_REVEIL_DOUCEUR"]}}) GEA.add({{"Alarm", id2["LAPIN_EMILIEN"]}, est_House_Sleeping}, 0, "Lapin Emilien Passé au vert à#time#", {{"VirtualDevice", id2["COLOR_LAPIN_EMILIEN"], 23},{"VirtualDevice", id2["COLOR_LAPIN_EMILIEN"], 13}}) GEA.add({{"Alarm", id2["LAPIN_THOMAS"]}, est_House_Sleeping}, 0, "Lapin Thomas Passé au vert à#time#", {{"VirtualDevice", id2["COLOR_LAPIN_THOMA"], 23},{"VirtualDevice", id2["COLOR_LAPIN_THOMA"], 13}}) --------------------METEO---------------------- GEA.add({estKids_Sleeping,{"Global!", "Meteo_Tomorrow", ""}}, -1, "#value[2]#",{{"Time", "17:00", "21:00"},{"Portable", id["PHONE_SEB"]},{"Portable", id["PHONE_GG"]}}) -- Météo soir poussée, moins de 30s après retour àla maison (si away pendant au moins 30 minutes) isLongAwayOff = true -- NE FONCTIONNE PAS EN INSTANTANNE !!! GEA.add(estAway, 30*60, "", {{"function",function() isLongAwayOff = true end}}) -- NE FONCTIONNE PAS EN INSTANTANNE !!! GEA.add({estAt_Home,{"Global!", "Meteo_Tomorrow", ""},{"function",function() return isLongAwayOff end}}, 10, "#value[2]#",{{"Time", "16:00", "20:30"},{"Portable", id["PHONE_SEB"]},{"Portable", id["PHONE_GG"]},{"function",function() isLongAwayOff=false end}}) ------------------------------ -- Météo matin Instantanée au changement de presentState GEA.add({est_AtHome_Or_Kids_Sleeping}, -1, "",{{"function",function() fibaro:debug(" ------- waiting 1 s for PrevisousState dependent actions ------") end},{"function",function() fibaro:sleep(1100) end}}) GEA.add({est_AtHome_Or_Kids_Sleeping,{"Global!", "Meteo_Day", ""},{"Global", "PreviousState", "Night_All_Off"}}, -1, "#value[2]#",{{"Portable", id["PHONE_SEB"]},{"Portable", id["PHONE_GG"]}}) -- !!!!!!!!!!! LES ACTIONs instantanées placées CI DESSOUS AURONT UN DELAI DE 1,1 A CHAQUE CHANGMENT de PresentState = àAt_Home ou Kids_Sleepin !!!!!!!!!! -------------
sebcbien Posté(e) le 20 septembre 2016 Auteur Signaler Posté(e) le 20 septembre 2016 ma gestion de porte de garage mise à jour :-) ça marche au quart de mililipoil de Cxx info: id2["MODE_GARAGE"] est un simple switch qui me permet de passer le mode de fermeture de la porte de garage de automatique à manuel ... et vice-versa oui, je n'aime pas sortir mon téléphone de ma poche pour changer de mode local estAt_Home = {"Global", "PresentState", "At_Home"} local estAway = {"Global", "PresentState", "Away"} local estNotAway = {"Global!", "PresentState", "Away"} local estNight_All_Off = {"Global", "PresentState", "Night_All_Off"} local estNotNight_All_Off = {"Global!", "PresentState", "Night_All_Off"} local estAwayOrNigh_All_Off = {"Global", "PresentState", "Night_All_Off|Away"} local estNotAwayOrNigh_All_Off = {"Global!", "PresentState", "Night_All_Off|Away"} local estKids_Sleeping = {"Global", "PresentState", "Kids_Sleeping"} local est_House_Sleeping = {"Global", "PresentState", "Kids_Sleeping|Night_All_Off"} local est_AtHome_Or_Kids_Sleeping = {"Global", "PresentState", "Kids_Sleeping|At_Home"} local estNotKids_Sleeping = {"Global!", "PresentState", "Kids_Sleeping"} local estHouse_Manuel = {"Global", "House_Mode", "Manual"} local estNotHouse_Manuel = {"Global", "House_Mode", "Auto|Scheduler"} local cond_pres_GG_Alarme_off = {"Global", "PresentState", "Away"},{"Global", "Lock_Away", "Unlocked"},{"Global", "Phone_GG_Present", "1"} local cond_pres_Seb_Alarme_off = {"Global", "PresentState", "Away"},{"Global", "Lock_Away", "Unlocked"}, {"Global", "Phone_Seb_Present", "1"} -- Périodes local estWinter = {"Global", "Season", "Winter"} local estSummer = {"Global", "Season", "Summer"} local PeriodeSunSetSAM = {"Time", "Sunset-45", "21:30"} local PeriodeSunRiseSAM = {"Time", "06:00", "Sunrise+45"} -- Garage local Porte_Gar_En_Attente = {"Global", "Porte_Gar_Action", "En_Attente"} local Porte_Gar_Demande_Ouverture = {"Global", "Porte_Gar_Action", "Demande_Ouverture"} local Porte_Gar_Demande_Fermeture = {"Global", "Porte_Gar_Action", "Demande_Fermeture"} local Porte_Gar_Demande_Actionner = {"Global", "Porte_Gar_Action", "Actionner"} local estClosed = {"Global", "Porte_Garage", "^Closed$"} local estOpen = {"Global", "Porte_Garage", "^Open$"} local estNot_Closed = {"Global", "Porte_Garage", "Not_Closed"} local estClosed_Or_Not_Closed = {"Global", "Porte_Garage", "^Closed$|Not_Closed"} local estOpen_Or_Not_Closed = {"Global", "Porte_Garage", "Open|Not_Closed"} local estNotOpen_Or_Not_Closed = {"Global!", "Porte_Garage", "Open|Not_Closed"} local SetClosed = {"Global", "Porte_Garage", "Closed"} local SetOpen = {"Global", "Porte_Garage", "Open"} local SetNot_Closed = {"Global", "Porte_Garage", "Not_Closed"} --------------------KEYFOB--------------------- -- maison est pas away et demande ouverture porte garage via keyfob - demander ouverture GEA.add({{"Value", id2["KEY_DISARM_OPEN"],1}, estNotAwayOrNigh_All_Off}, -1, "Demande KEY_DISARM_OPEN -> Actionner Porte Gar. à #time# le #date#", {Porte_Gar_Demande_Actionner} ) --{Porte_Gar_Demande_Ouverture,Porte_Gar_En_Attente} ou {Porte_Gar_Demande_Actionner} -- maison est away et demande ouverture porte garage via keyfob - mettre est at home, demander ouverture PG et armer Part Tag Keypad (for outside notification) GEA.add({{"Value", id2["KEY_DISARM_OPEN"],1}, estAwayOrNigh_All_Off}, -1, "Demande KEY_DISARM_OPEN -> Set At_Home & Open à #time# le #date#", {Porte_Gar_Demande_Ouverture, estAt_Home}) ------------------PORTE GARAGE----------------- ---------NOTIFICATION PORTE OUVERTE---------- -- Le scénario enverra un push toutes les 30mn tant que la porte sera ouverte GEA.add(id2["GARAGE_BAS"], 30*60, "La porte du garage est ouverte depuis plus de #duration# à #time#", {{"Repeat"},{"Global", "Karotz", ". Bonjour, jattire votre attention que la porte du garage est ouverte depuis plus de #duration# minutes"}, {"VirtualDevice", id2["KAROTZ"],"1"}}) -----COMMANDE PORTE VIA S2 LAMPE GARAGE---- GEA.add({{"SceneActivation", id2["GARAGE"], 26}}, -1, "",{Porte_Gar_Demande_Actionner}) -------GESTION AUTO CLOSE PORTE GARAGE----- -- si mode auto et porte ouverte et pas de mouvement pendant 10 minutes, alors push et demande fermeture isLongNoMoveGar = false -- ATTENTION, NE FONCTIONNE PAS EN INSTANTANNE !!! GEA.add({{"Value", id2["GARAGE_MVT"],0},{"Value", id2["MODE_GARAGE"],0},estOpen_Or_Not_Closed}, 10*60, "Mode Porte Garage:AUTO. Porte non fermée et pas de mouvement depuis #duration# #time#",{{"Repeat"},{"function",function() isLongNoMoveGar = true end}}) GEA.add({estOpen_Or_Not_Closed,{"Value", id2["MODE_GARAGE"],0},{"function",function() return isLongNoMoveGar end}}, 31, "Auto close Porte Garage at #time#",{{"function",function() isLongNoMoveGar = false end},Porte_Gar_Demande_Fermeture}) -- notification porte ouverte en mode manuel GEA.add({"Value", id2["MODE_GARAGE"],1}, 2*60*60, "Mode Porte Garage:MANUEL depuis #duration# #time#",{{"Repeat"}}) -------------ECRITURE DES ETATS-------------- -- Msg à la fermeture du garage GEA.add(id2["GARAGE_BAS"], -1, "Porte du garage Fermée à #time# le #date#", { SetClosed, {"Inverse"}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 1}, -- Garage set Shots to 1 }) GEA.add({id2["GARAGE_BAS"],Porte_Gar_Demande_Fermeture }, -1, "", {Porte_Gar_En_Attente,{"Inverse"}}) -- Avertissement push si la porte du garage s'ouvre -- Porte du garage en Ouverture à #time# le #date# GEA.add(id2["GARAGE_BAS"], -1, "", { SetNot_Closed, {"Global", "Karotz", "Bonjour, ouverture de la porte du garage"}, {"VirtualDevice", id2["KAROTZ"],"1"}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 12}, -- Garage set Shots to 12-10=2 }) -- send pic garage après 30 60 et 90secondes après ouverture GEA.add(id2["GARAGE_BAS"], 30, "", { {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 30}, -- Garage set Freq to 30s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 14}, -- Garage set Shots to 14-10=4 }) -- Avertissement push si la porte du garage ouverte GEA.add(id2["GARAGE_HAUT"], -1, "Porte du garage complètement ouverte à #time# le #date#", {SetOpen}) GEA.add({id2["GARAGE_HAUT"],Porte_Gar_Demande_Ouverture}, -1, "", {Porte_Gar_En_Attente}) -- Avertissement push si la porte du garage plus en position ouverte -- Porte du garage en Fermeture à #time# le #date# GEA.add(id2["GARAGE_HAUT"], -1, "Porte du garage complètement ouverte à #time# le #date#", { SetNot_Closed, {"Inverse"}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 1}, -- Garage set Shots to 1 }) -- Si demande Actionner, then push, actionne remote et reset global à en_attente -- Demande Action Porte Garage à #time# le #date# GEA.add({Porte_Gar_Demande_Actionner}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]},Porte_Gar_En_Attente}) --------------DEMANDE OUVERTURE-------------- -- Si demande d'ouverture et porte fermée, then push et ouvre porte -- #value# à #time# le #date# GEA.add({Porte_Gar_Demande_Ouverture, estClosed_Or_Not_Closed}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]}}) -- Si demande d'ouverture et porte Ouverte, then push et reset global à en_attente -- #value# Inutile à #time# le #date# GEA.add({Porte_Gar_Demande_Ouverture, estOpen}, -1, "",{Porte_Gar_En_Attente}) -- Si demande d'ouverture et porte Not Closed, then push, actionne porte --GEA.add({{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estNot_Closed}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]}}) -- si se ferme alors que demande ouverture -> on relance GEA.add({id2["GARAGE_BAS"],Porte_Gar_Demande_Ouverture}, -1, "Mauvais sens pour #value#. Ré-essai à #time# le #date#", {{"Inverse"},{"Function", function() fibaro:sleep(1000) end},{"turnOn",id2["REMOTE_GARAGE"]}}) --------------DEMANDE FERMETURE-------------- -- Si demande de fermeture et porte ouverte, then push et ferme porte -- #value# à #time# le #date# GEA.add({Porte_Gar_Demande_Fermeture, estOpen_Or_Not_Closed}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]}}) -- Si demande de fermeture et porte Fermée, then push et reset global à en_attente -- #value# Inutile à #time# le #date# - ,{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA ALARME ET GARAGE"} GEA.add({Porte_Gar_Demande_Fermeture, estClosed}, -1, "",{Porte_Gar_En_Attente}) -- Si demande de fermeture et porte Not Closed, then push, actionne porte --GEA.add({Porte_Gar_Demande_Fermeture, estNot_Closed}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]}}) -- si s'ouvre alors que demande fermeture -> on relance GEA.add({id2["GARAGE_HAUT"],Porte_Gar_Demande_Fermeture}, -1, "Mauvais sens pour #value#. Ré-essai à #time# le #date#", { {"Function", function() fibaro:sleep(1000) end}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 1}, -- Garage set Shots to 1 {"turnOn",id2["REMOTE_GARAGE"]} }) --{"turnOn",id2["REMOTE_GARAGE"]}, --------------GESTION ERREUR----------------- -- si pas fermé après 90 sec, on relance - normalement déjà pris en charge par les lignes ci=dessus ? (mauvais sens pour...) GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture|Demande_Ouverture"}, estNot_Closed}, 120, "#value# ratée pendant #duration#. Réessai à #time# le #date#", { {"turnOn",id2["REMOTE_GARAGE"]}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 1}, -- Garage set Shots to 1 {"Repeat"} }) c'est tout pour aujourd'hui A vos copy/paste 1
Lazer Posté(e) le 20 septembre 2016 Signaler Posté(e) le 20 septembre 2016 En fait, c'est un topic où on peut faire des commentaires àvide pour atteindre plus vite un statut supérieur 1
Lazer Posté(e) le 20 septembre 2016 Signaler Posté(e) le 20 septembre 2016 Aller, un autre pour la route, après je passe la main
pepite Posté(e) le 22 septembre 2016 Signaler Posté(e) le 22 septembre 2016 Yes, je ne l'avais pas vu celui la ;-) Je poste pour suivre, comme d'hab, merci @sebcbien Suggestion : est-il possible de forcer pour ce sujet l'utilisation de Spoiler ?
sebcbien Posté(e) le 22 septembre 2016 Auteur Signaler Posté(e) le 22 septembre 2016 l'utilisation de spoiler ne change rien malheureusement... j'ai vérifié, tout est quand même pré-chargé puis caché, pas d'AJAX donc... Pour suivre tu pouvais aussi poster ta configuration GEA
i-magin Posté(e) le 22 septembre 2016 Signaler Posté(e) le 22 septembre 2016 Est-ce que çà fonctionne avec Jeedom ? Ceci est un commentaire et non une demande de support 1
sebcbien Posté(e) le 22 septembre 2016 Auteur Signaler Posté(e) le 22 septembre 2016 Malheureusement non... S'il pouvait y avoir GEA en plus du mode bloc et des plugins de Jeedom, je crois que ca en ferait la box "parfaite"... Pour moi en tout cas. Ma vu que @steven ne fait pas de PHP et aime sa box, la box parfaite n'existera jamais. ;-) Sent from my Note4
jojo Posté(e) le 29 septembre 2016 Signaler Posté(e) le 29 septembre 2016 @sebcbien, Je souhaite mettre ici ma config GEA, mais j'ai vraiment peur de tout casser. J'ai 826 lignes ...
sebcbien Posté(e) le 29 septembre 2016 Auteur Signaler Posté(e) le 29 septembre 2016 Woooohooo, génial ! À mon avis, si tu la poste en deux parties, avec ce qu'il faut de posts vides entre les deux pour passer àla page suivante, ça devrait aller. Sent from my Note4
jojo Posté(e) le 29 septembre 2016 Signaler Posté(e) le 29 septembre 2016 Voici donc la première partie de mon GEA. La seconde partie se trouve àla page 3 --[[ %% autostart %% properties 26 value 342 value 7 value 9 value 15 value 68 value 91 value 163 value 164 value 39 value 20 value 40 value 21 value 48 value 54 value 127 value 128 value 256 value 160 value 96 value 182 value 177 value 44 value 302 sceneActivation 304 sceneActivation 201 value 193 value 209 value 213 value 244 value 240 value 197 value 205 value 283 value 248 value 252 value %% globals Auth_TV Auth_PS3 Incendie --]] --[[ -- SECTION : Etage ------------ 26 value MVT_HALLNUIT_SDJ 342 value MVT_HALLNUIT_SDB 7 value LUM_HALLNUIT_SDJ 9 value LUM_HALLNUIT_SDB 15 value PRISE_PS3 -- SECTION : Extérieur ------------ 68 value PISCPMP 91 value CONTACT_GACHE 163 value BARRIERE_CLOSED 164 value BARRIERE_OPENED 39 value MVT_EST_AVANT 20 value MVT_OUEST_AVANT 40 value MVT_EST_JARDIN 21 value MVT_OUEST_JARDIN -- SECTION : Rez de chaussée ------------ 48 value PRISE_TV 54 value LUM_SDBREZ_LAVABO 127 value ALARME_INTRUSION !Fake device 128 value ALARME_ACTIVE !Fake device 256 value PORTE_COULISS 160 value GV_MVT 96 value GA_MVT 182 value MVT_HALLENTRE_S 177 value MVT_HALLENTRE_C 44 value LUM_HALLENTRE 302 sceneActivation TELEC_CUISINE 304 sceneActivation TELEC_CHPARENTS -- Détecteurs incentide ------------------------ 201 value FUME_BIBLIOTHEQUE 193 value FUME_BUREAU 209 value FUME_MAXIMILIEN 213 value FUME_PAULINE 244 value FUME_HALLNUIT_SDB 240 value FUME_HALLNUIT_SDJ 197 value FUME_SDJ 205 value FUME_SDBETAGE 283 value FUME_GARAGE 248 value FUME_HALLENTRE_C 252 value FUME_HALLENTRE_S -- SECTION : Section virtuelle ------------ -- SECTION : Sous-sol ------------ --]] -- v 5.40 -- Optimisation possible, cf : GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"] -- ================================================== -- GEA : Gestionnaire d'Evénements Automatique -- ================================================== -- [FR] Scénario permettant de contrôler si une périphérique est -- activé depuis trop longtemps ou lancer un push d'avertissement -- Ce scénario permet une annotation plus simple que le code LUA -- il nécessite néanmoins quelques connaissances -- -- [EN] This scene allow you to check every X second the status -- of a module and send actions if the module is activated since too long. -- This scene allow you a more simple annotation than LUA -- it requires some knowledge -- -- Auteur : Steven P. with modification of Hansolo and Shyrka973 -- Version : 5.40 -- Special Thanks to : -- jompa68, Fredric, Diuck, Domodial, moicphil, lolomail, byackee, -- JossAlf, Did, sebcbien, chris6783 and all other guy from Domotique-fibaro.fr -- ------------------------------------------------------------ -- Historique / History -- ------------------------------------------------------------ -- L'historique complet est diponible ici : -- http://www.domotique-fibaro.fr/index.php/topic/1082-gea-gestionnaire-dévénements-automatique/?p=12428 function yourcode() -- ================================================== -- [FR] A VOUS DE JOUER -- [EN] YOUR TIME TO PLAY -- ================================================== GEA.isVersionFour = true --- On est en version 4.017 Beta ou suppérieur -- [FR] Votre langue : FR (default) -- [EN] Your language : EN GEA.language = "FR" -- [FR] On vérifie toutes les X secondes (default : 30) -- [EN] Check every X seconds GEA.checkEvery = 30 -- [FR] Liste des portables devant recevoir une notification {70, 71} -- [EN] Smarphones you want to be notified {XX, XX} for more than one GEA.portables = {} -- GEA.portables = {} -- [FR] Affichage des traces dans la console (default : false) -- [EN] Show trace in the debug window GEA.debug = false --GEA.catchError=false -- option : GEA.typeOptimize["NONE"], GEA.typeOptimize["IMEDIATE_ONLY"], GEA.typeOptimize["ALL"] -- permet d'optimiser les soucis liés au getName et getRoom de fibaro mais n'affiche plus le nom des modules concernés. GEA.optimize = GEA.typeOptimize["IMEDIATE_ONLY"] -- [FR] Tableau d'identifiant (facultatif) -- [EN] ID table (optional) -- IDs gÈnÈrÈs le : 25/09/16 ‡ 18:08:17 local DeviceID = { -- SECTION : Etage -- ROOM : Bibliothèque FUME_BIBLIOTHEQUE = 201, LUM_BIBLIOTHEQUE = 58, PRISE_PS3 = 15, THERM_BIBLIOTHEQUE = 60, TMP_BIBLIOTHEQUE = 203, VANNE_BIBLIOTHEQUE = 219, -- ROOM : Bureau FUME_BUREAU = 193, LUM_BUREAU = 382, NETWORK_MONITOR = 165, PRISE_BUREAU = 5, SYNOLOGY_MONITORING = 167, THERM_BUREAU = 384, TMP_BRUEAU = 195, VANNE_BUREAU = 229, -- ROOM : Ch Enfants FUME_MAXIMILIEN = 209, FUME_PAULINE = 213, SONOS_MAXIMILIEN = 307, THERM_CHENFANTS = 112, TMP_MAXIMILIEN = 211, TMP_PAULINE = 215, VANNE_MAXIMILIEN = 223, VANNE_PAULINE = 217, -- ROOM : Hall de nuit FUME_HALLNUIT_SDB = 244, FUME_HALLNUIT_SDJ = 240, LUM_HALLNUIT_SDB = 9, LUM_HALLNUIT_SDJ = 7, MVT_HALLNUIT_SDB = 342, MVT_HALLNUIT_SDJ = 26, TMP_HALLNUIT_SDJ = 242, -- ROOM : Salle de jeux FUME_SDJ = 197, THERM_SDJ = 298, TMP_SDJ = 199, VANNE_SDJ = 231, -- ROOM : SdB Etage FUME_SDBETAGE = 205, LUM_SDBETAGE = 11, THERM_SDBETAGE = 108, TMP_SDBETAGE = 207, VMC_ETAGE = 13, VANNE_RADIATEUR = 227, VANNE_SECHESERVIETTE = 225, -- SECTION : Extérieur -- ROOM : Avant BOUTON_BARRIERE = 189, BOUTON_GACHE = 191, COURRIER = 312, IN2_RGBW = 32, IN3_RGBW = 33, IN4_RGBW = 34, IPCAM_AVANT = 291, LUM_AVANT = 50, MVT_EST_AVANT = 39, MVT_OUEST_AVANT = 20, NIVEAU_EAU_PLUIE = 31, PRISE_AVANT = 64, SONNETTE = 46, STAT_BARRIERE = 290, SURVSTATION_AVANT = 292, -- ROOM : Jardin IPCAM_JARDIN = 288, LUM_JARDIN = 369, LUM_TERREST = 106, LUM_TERROUEST = 296, LUM_TERRPAR = 110, LUM_TERRSUD = 370, MVT_EST_JARDIN = 40, MVT_OUEST_JARDIN = 21, PISCCHAUF = 70, PISCPMP = 68, SURVSTATION_JARDIN = 289, TMP_EXTERIEURE = 129, TMP_PISCINE = 154, -- SECTION : Rez de chaussée -- ROOM : Ch Parents SONOS_PARENTS = 343, -- ROOM : Cuisine LUM_CUISINE = 375, LUM_CUISINETABLE = 376, SONOS_CUISINE = 352, -- ROOM : Garage ALARME_ACTIVE = 128, ALARME_INTRUSION = 127, BOUTON_GA = 104, BOUTON_GV = 102, FUME_GARAGE = 283, PRISE_MODEM = 187, RESTART_MODEM = 371, STAT_GAR_ANNABELLE = 286, STAT_GAR_VINCENT = 287, TMP_FREZE = 353, TMP_GARAGE = 285, -- ROOM : Hall d'entrée FUME_HALLENTRE_C = 248, FUME_HALLENTRE_S = 252, LUM_HALLENTRE = 44, LUX_HALLENTRE_S = 184, MVT_HALLENTRE_C = 177, MVT_HALLENTRE_S = 182, TMP_HALLENTRE_S = 254, -- ROOM : Salon ARROSAGE_PLANTES = 118, IPCAM_LIVING = 120, LUM_PETITSALON = 264, LUM_SALLEMANGER = 262, LUM_SALONTV = 258, LUM_VITRINE = 260, NEST_HUMIDITY = 117, NEST_TEMPERATURE = 116, NEST_THERMOSTAT = 115, PORTE_COULISS = 256, PRISE_PETITSALON = 62, PRISE_TV = 48, SURVSTATION_SALON = 119, VAR_INCENDIE = 310, -- ROOM : SdB Rez HUM_SDBREZ = 238, LUM_SDBREZ_DOUCHE = 56, LUM_SDBREZ_LAVABO = 54, LUX_SDBREZ = 237, MVT_SDBREZ = 235, TMP_SDBREZ = 236, VANNE_SECHESERVIETTE_SDB_REZ = 233, -- SECTION : Section virtuelle -- ROOM : Backup BACKUP_HEATPANEL = 294, BACKUP_VARIABLES = 293, -- ROOM : Tehniques CHECK_INTERNET = 327, CLOCK_SYNC = 332, DEADNODESANALYSIS = 330, EMONCMS = 334, HC2_DIAGNOSTICS = 337, MY_BATTERIES = 329, SONOS_MP3 = 331, SURVSTATION_ALL = 335, SURVSTATION_EXT = 336, TECHNICAL = 333, TOP_10_POWER = 328, -- ROOM : Variables PRESENCE_SIMULATOR = 325, VAR_AUTH_LUMINTERIEUR = 316, VAR_AUTH_PS3 = 314, VAR_AUTH_TV = 313, VAR_AUTH_VMCETAGE = 315, VAR_CHAUFFAGE = 321, VAR_DAYPART = 323, VAR_ECS = 317, VAR_NOEL = 322, VAR_PMC = 320, VAR_REMPL_PISCINE = 319, VAR_SAISON = 324, VAR_VACANCES = 318, VARIABLES_GLOBALES = 326, -- ROOM : Z-Spare Z121_R1 = 122, Z121_R2 = 124, Z149_IN2 = 152, Z344_IN1 = 346, Z344_IN2 = 347, Z377_R2 = 380, Z49_R2 = 52, Z89_IN2 = 92, -- ROOM : Z_Fake IN21_F = 135, IN22_F = 136, IN31_F = 143, IN32_F = 144, R11_F = 271, R12_F = 273, R21_F = 275, R22_F = 277, R31_F = 279, R32_F = 281, R41_F = 355, R42_F = 357, R51_F = 359, R52_F = 361, R61_F = 363, R62_F = 365, TMP12_F = 130, TMP13_F = 131, TMP14_F = 132, TMP21_F = 137, TMP22_F = 138, TMP23_F = 139, TMP24_F = 140, TMP31_F = 145, TMP32_F = 146, TMP33_F = 147, TMP34_F = 148, -- ROOM : Z_Hidden device BARRIERE_CLOSED = 163, BARRIERE_OPENED = 164, BOITELETTRES_FACTEUR = 87, BOITELETTRES_PORTE = 88, CONTACT_GACHE = 91, GA_MVT = 96, GA_OPEN = 95, GV_MVT = 160, GV_OPEN = 159, NEST_CONTROLER = 113, TELEC_CHPARENTS = 304, TELEC_CUISINE = 302, -- SECTION : Sous-sol -- ROOM : Cave àvin PORTE_CAVEAVIN = 349, PRISE_PMPEAUPLUIE = 169, TMP_CAVEAVIN = 351, -- ROOM : Chaufferie AUTH_PAC = 378, CHAUDIERE_CMD = 74, CHAUDIERE_OUTPUT = 72, CIRCULATEUR_ETAGE = 76, CIRCULATEUR_REZ = 78, FLOD_CHAUFFERIE = 171, HP_UPDATE = 311, SOLAIRE_OUTPUT = 151, TMPH_PANNEAUX = 156, TMPL_PANNEAUX = 155, TMP_CHAUFFERIE = 173, TMP_TISUN = 153, } -- ID des users local UserID = { Vincent = 99, Annabelle = 98, } -- ID des mobiles local MobileID = { None = 9999, V_Nexus5 = 166, A_Nexus5 = 999, } -- groupes de devices local groupeLampesInt = { DeviceID["LUM_CUISINE"], DeviceID["LUM_CUISINETABLE"], DeviceID["LUM_VITRINE"], DeviceID["LUM_SALONTV"], DeviceID["LUM_PETITSALON"], DeviceID["LUM_SALLEMANGER"], DeviceID["LUM_HALLENTRE"], DeviceID["LUM_SDBREZ_LAVABO"], DeviceID["LUM_SDBREZ_DOUCHE"], DeviceID["LUM_HALLNUIT_SDJ"], DeviceID["LUM_HALLNUIT_SDB"], DeviceID["LUM_BUREAU"], DeviceID["PRISE_BUREAU"], DeviceID["LUM_SDBETAGE"], DeviceID["LUM_BIBLIOTHEQUE"], } local groupeLampesExt = { DeviceID["LUM_AVANT"], DeviceID["LUM_JARDIN"], DeviceID["LUM_TERREST"], DeviceID["LUM_TERRPAR"], DeviceID["LUM_TERRSUD"], DeviceID["LUM_TERROUEST"], } local groupeOuvrants = { DeviceID["PORTE_COULISS"], DeviceID["GA_OPEN"], DeviceID["GA_MVT"], DeviceID["GV_OPEN"], DeviceID["GV_MVT"], } local groupeIncendie = { DeviceID["FUME_BIBLIOTHEQUE"], DeviceID["FUME_BUREAU"], DeviceID["FUME_MAXIMILIEN"], DeviceID["FUME_PAULINE"], DeviceID["FUME_HALLNUIT_SDB"], DeviceID["FUME_HALLNUIT_SDJ"], DeviceID["FUME_SDJ"], DeviceID["FUME_SDBETAGE"], DeviceID["FUME_GARAGE"], DeviceID["FUME_HALLENTRE_C"], DeviceID["FUME_HALLENTRE_S"], } -- ------------------------------------------------------------ -- [FR] Variable Globale optionnel pour autorisé GEA de s'exécuté -- [FR] Usage : GEA.getGlobalForActivation = {"<globalvar>", "<value pour autoriser l'execution>"} -- [EN] Optional Global Variable to allow GEA to run -- [EN] Usage : GEA.getGlobalForActivation = {"<globalvar>", "<value for activation>"} -- ------------------------------------------------------------ --GEA.getGlobalForActivation = {"SuspendreGEA", "non"} -- conditions IF local estJour = {"Global", "DayPart", "After SunRise"} local estNuit = {"Global", "DayPart", "After SunSet"} local estNoel = {"Global", "Noel", "Oui"} local estECS = {"Global", "ECS", "Oui"} local pasECS = {"Global", "ECS", "Non"} local estVacances = {"Global", "Vacances", "Oui"} local pasVacances = {"Global", "Vacances", "Non"} local estEte = {"Global", "Saison", "Eté"} local estPMC = {"Global", "PMC", "Oui"} local estRemplPiscine = {"Global","Rempl_Piscine", "Oui"} local pasRemplPiscine = {"Global","Rempl_Piscine", "Non"} local pasIncendie = {"Global", "Incendie", "0"} local auth_TV = {"Global", "Auth_TV", "Autorisé"} local inter_TV = {"Global", "Auth_TV", "Interdit"} local auth_PS3 = {"Global", "Auth_PS3", "Autorisé"} local inter_PS3 = {"Global", "Auth_PS3", "Interdit"} local auth_LumInterieur = {"Global", "Auth_LumInterieur", "Autorisé"} local auth_TerrPar = {"Global", "Auth_TerrPar", "Autorisé"} local auth_VMCEtage = {"Global", "Auth_VMCEtage", "Autorisé"} -- Fonctions -- changements de température de la sonde du balon TISUN if (temperature == nil) then temperature = tonumber(fibaro:getValue(DeviceID["TMP_TISUN"],'value')) end -- test si température inchangée function checktempT() local newtemp = tonumber(fibaro:getValue(DeviceID["TMP_TISUN"],'value')) if ( temperature == newtemp ) then return true end end -- test si température modifiée function checktempF() local newtemp = tonumber(fibaro:getValue(DeviceID["TMP_TISUN"],'value')) if ( temperature ~= newtemp ) then temperature = newtemp return true end end -- temps depuis le dernier retart de la HC2 function restart(sec) local json = api.get("/settings/info") local RestartTime = json.serverStatus local runTime = os.time() - RestartTime if runTime <= sec then return true, runTime else return false, runTime end end -- variables internes -- Ouvrants : Oui ou Non si un ouvrant est ouvert après 22:00 if (Ouvrants == nil) then Ouvrants = "Non" end -- LampesTmp : Oui ou Non if (LampesTmp == nil) then LampesTmp = "Non" end -- Lampes : Oui ou Non if (Lampes == nil) then Lampes = "Non" end -- AlarmeNuit : Oui ou Non if (AlarmeNuit == nil) then AlarmeNuit = "Non" end -- AlarmeFreeze : Alarm ou Safe if (AlarmeFreeze == nil) then AlarmeFreeze = "Safe" end -- AlarmeCaveAVins : Alarm ou Safe if (AlarmeCaveAVin == nil) then AlarmeCaveAVin = "Safe" end -- IncendieTmp : Oui ou Non (pour tester si un détecteur incendie est activé) if (IncendieTmp == nil) then IncendieTmp = "Non" end ------------------- -- TESTS ------------------- -- Afficher la valeur d'une variable -- GEA.add({"Global", "DayPart", ""}, 30, "La valeur de DayPart est : #value#", {{"Inverse"}}) -- envoie e-mails : {"Email", UserID["Vincent"], "TEST"} -- test = "test" -- GEA.add ({"Function", function() if test == "test" then return true end end}, 1, "test = test", {{"Email", UserID["Vincent"], "TEST"}}) ------------------- -- RdC ------------------- -- Garage -- Portes Garage ouvertes la nuit GEA.add ({DeviceID["GV_OPEN"], estNuit}, 5*60, "La porte du Garage de Vincent est ouverte depuis #duration#, durant la nuit. (#date# à#time#)", {{"Email", UserID["Vincent"], "ALERTE - porte garage"}, {"Repeat"}}) GEA.add ({DeviceID["GA_OPEN"], estNuit}, 5*60, "La porte du Garage de Annabelle est ouverte depuis #duration#, durant la nuit. (#date# à#time#)", {{"Email", UserID["Vincent"], "ALERTE - porte garage"}, {"Repeat"}}) -- Température Freeze & modification de l'icône GEA.add ({"Value+", DeviceID["TMP_FREZE"], -15}, 60*60, "La température du Freeze du garage est de #value# °C depuis #duration#. (#date# à#time#)", {{"VirtualDevice", DeviceID["TECHNICAL"], 3}, {"Function", function() AlarmeFreeze = "Alarm" end}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALERTE - température freeze"}, {"Repeat"}}) GEA.add ({{"Value-", DeviceID["TMP_FREZE"], -17}, {"Function", function() if AlarmeFreeze == "Alarm" then return true end end}}, 10*60, "La température du Freeze du garage est revenue à#value# °C depuis #duration#. (#date# à#time#)", {{"VirtualDevice", DeviceID["TECHNICAL"], 2}, {"Function", function() AlarmeFreeze = "Safe" end}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALERTE - température freeze"}}) -- Sortir les PMC & papiers GEA.add ({DeviceID["ALARME_ACTIVE"], estPMC}, 1, "Il faudra sortir les PMC et les papiers ce soir. (#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - PMC et cartons"}}) GEA.add ({DeviceID["ALARME_ACTIVE"], estPMC}, 1, "Il faut sortir les PMC et les papiers. (#date# à#time#)", {{"Inverse"}, {"Time", "18:00", "22:30"}, {"VirtualDevice", DeviceID["SONOS_MP3"], 4}}) GEA.add ({DeviceID["ALARME_ACTIVE"], estPMC}, 1, "Il faut sortir les PMC et les papiers. (#date# à#time#)", {{"Inverse"}, {"Time", "20:00", "03:30"}, {"VirtualDevice", DeviceID["SONOS_MP3"], 4}}) GEA.add ({DeviceID["ALARME_ACTIVE"], estPMC}, 30*60, "Il faut sortir les PMC et les papiers. (#date# à#time#)", {{"Inverse"}, {"Time", "18:00", "22:30"}, {"VirtualDevice", DeviceID["SONOS_MP3"], 4}, {"Repeat"}}) GEA.add ({DeviceID["ALARME_ACTIVE"], estPMC}, 15*60, "Il faut sortir les PMC et les papiers. (#date# à#time#)", {{"Inverse"}, {"Time", "06:45", "08:00"}, {"VirtualDevice", DeviceID["SONOS_MP3"], 4}, {"Repeat"}}) GEA.add (estPMC, 15*60*60, "Vous avez oublié de sortir les PMC et les papiers. (#date# à#time#)", {{"VirtualDevice", DeviceID["VAR_PMC"], 4}, {"Email", UserID["Vincent"], "INFO - PMC et cartons"}}) -- Icône status garage Vincent -- garder le code du VD (bouton Refresh #4) pour pouvoir remplacer GEA et mettre àjour au redémarrage de la box GEA.add (DeviceID["GV_MVT"], -1, "GV en mouvement. (#date# à#time#)", {{"VirtualDevice", DeviceID["STAT_GAR_VINCENT"], 2}}) GEA.add ({DeviceID["GV_MVT"], {"value", DeviceID["GV_OPEN"], 0}}, -1, "GV fermé. (#date# à#time#)", {{"Inverse"}, {"VirtualDevice", DeviceID["STAT_GAR_VINCENT"], 3}}) GEA.add ({DeviceID["GV_MVT"], DeviceID["GV_OPEN"]}, -1, "GV ouvert. (#date# à#time#)", {{"Inverse"}, {"VirtualDevice", DeviceID["STAT_GAR_VINCENT"], 1}}) -- Icône status garage Annabelle -- garder le code du VD (bouton Refresh #4) pour pouvoir remplacer GEA et mettre àjour au redémarrage de la box GEA.add (DeviceID["GA_MVT"], -1, "GA en mouvement. (#date# à#time#)", {{"VirtualDevice", DeviceID["STAT_GAR_ANNABELLE"], 2}}) GEA.add ({DeviceID["GA_MVT"], {"value", DeviceID["GA_OPEN"], 0}}, -1, "GA fermé. (#date# à#time#)", {{"Inverse"}, {"VirtualDevice", DeviceID["STAT_GAR_ANNABELLE"], 3}}) GEA.add ({DeviceID["GA_MVT"], DeviceID["GA_OPEN"]}, -1, "GA ouvert. (#date# à#time#)", {{"Inverse"}, {"VirtualDevice", DeviceID["STAT_GAR_ANNABELLE"], 1}}) -- Hall d'Entrée -- Lampe AUTO -- Extinction automatique de la lampe si pas de mvt pendant 30s. local autoOffEntree = GEA.add ({{"Value", DeviceID["MVT_HALLENTRE_C"], 0}, {"Value", DeviceID["MVT_HALLENTRE_S"], 0}, DeviceID["LUM_HALLENTRE"], auth_LumInterieur, pasIncendie}, 31, "", {{"turnOff", DeviceID["LUM_HALLENTRE"]}, {"NotStarted"}}) -- Appuie sur l'interrupteur de la lampe, on stoppe l'extinction automatique. GEA.add ({DeviceID["LUM_HALLENTRE"], {"Value", DeviceID["MVT_HALLENTRE_C"], 0}, {"Value", DeviceID["MVT_HALLENTRE_S"], 0}}, -1, "", {{"StopTask", autoOffEntree}}) -- Allumage de la lampe sur détection mouvement GEA.add ({DeviceID["MVT_HALLENTRE_C"], {"Value-", DeviceID["LUX_HALLENTRE_S"], 5}, auth_LumInterieur, {"Value", DeviceID["LUM_HALLENTRE"], 0}}, -1, "Lumière Hall Entrée car MVT_HALLENTRE_C. (#date# à#time#)", {{"turnOn", DeviceID["LUM_HALLENTRE"]}, {"RestartTask", autoOffEntree}}) GEA.add ({DeviceID["MVT_HALLENTRE_S"], {"Value-", DeviceID["LUX_HALLENTRE_S"], 5}, auth_LumInterieur, {"Value", DeviceID["LUM_HALLENTRE"], 0}}, -1, "Lumière Hall Entrée car MVT_HALLENTRE_S. (#date# à#time#)", {{"turnOn", DeviceID["LUM_HALLENTRE"]}, {"RestartTask", autoOffEntree}}) -- Extinction de la lampe dans tous les cas après 10 min GEA.add ({DeviceID["ALARME_ACTIVE"], DeviceID["LUM_HALLENTRE"], pasIncendie}, 10*60, "Extinction du Hall Entrée, car allumée depuis #duration#. (#date# à#time#)", {{"Inverse"}, {"turnOff", DeviceID["LUM_HALLENTRE"]}, {"Email", UserID["Vincent"], "ALERTE - Lumière Hall Entrée"}}) -- Salon -- TV GEA.add ({DeviceID["PRISE_TV"], inter_TV}, -1, "La TV a été allumée, alors que en mode interdit => extinction. (#date# à#time#)", {{"turnOff"}, {"Email", UserID["Vincent"], "ALERTE - TV"}}) GEA.add ({DeviceID["PRISE_TV"], auth_TV}, -1, "La TV a été allumée. (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - TV"}}) GEA.add ({DeviceID["PRISE_TV"], auth_TV}, -1, "La TV a été éteinte. (#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - TV"}}) GEA.add ({inter_TV, DeviceID["PRISE_TV"]}, -1 , "TV en mode interdit => extinction. (#date# à#time#)", {{"turnOff", DeviceID["PRISE_TV"]}, {"Email", UserID["Vincent"], "ALERTE - TV"}}) -- TV not used GEA.add ({{"Sensor-", DeviceID["PRISE_TV"], 120}, DeviceID["PRISE_TV"]}, 10*60, "Consommation TV = #value#W depuis #duration#. (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - TV"}}) -- SdB Rez -- LUM_SDBREZ_DOUCHE autoOff GEA.add ({DeviceID["LUM_SDBREZ_LAVABO"], DeviceID["LUM_SDBREZ_DOUCHE"]}, -1, "", {{"Inverse"}, {"turnOff", DeviceID["LUM_SDBREZ_DOUCHE"]}}) -- Mettre ECS àoui pendant 20 min -- Tache en sommeil (NotStarted) -- va passer la variable ECS àNon si elle est àOui depuis plus de 20 minutes local autoECSNon = GEA.add (estECS, 20*60, "", {{"VirtualDevice", DeviceID["VAR_ECS"], 4}, {"NotStarted"}}) -- passer la variable RCS àOui si la lumière de la douche est allumée depuis 1 min et que la variable ECS est ànon -- Elle va aussi redémarrer la tache ci-dessus GEA.add ({DeviceID["ALARME_ACTIVE"], DeviceID["LUM_SDBREZ_DOUCHE"], pasECS}, 1*60, "",{{"Inverse"}, {"VirtualDevice", DeviceID["VAR_ECS"], 3}, {"RestartTask", autoECSNon}}) -- ??? GEA.add (estECS, 1, "", {{"StopTask", autoECSNon}}) -- Chambre Parents
Messages recommandés