Message populaire sebcbien Posté(e) le 28 septembre 2014 Message populaire Signaler Posté(e) le 28 septembre 2014 Bonjour, Comme discuté dans le fil du support GEA, je trouve que apprendre par l'exemple est la meilleure solution. Malheureusement, dans le fil du support, la majorité du code qui s'y trouve ne fonctionne pas ... C'est un peu normal... Je vous propose donc de poster ici votre configuration GEA, POSTEZ UNIQUEMENT LES FONCTIONS TESTÉE ET VÉRIFIÉE. POUR PLUS DE LISIBILITÉ, NE POSEZ PAS DE QUESTIONS DANS CE FIL !!! SI VOUS VOULEZ REMERCIER UN POST, CLIQUEZ SUR LE BOUTON J'AIME Si vous avez une question, allez dans le fil GEA support et faites référence à un post ou copiez la config pour laquelle vous voulez poser une question. Merci et en espérant que ce fil soit utile 1 17
sebcbien Posté(e) le 28 septembre 2014 Auteur Signaler Posté(e) le 28 septembre 2014 Re- voici ma config, beaucoup d'améliorations depuis mon premier post... J'y ai maintenant inclus le début avec les actioneurs --[[%% autostart%% properties18 value45 sceneActivation 49 sceneActivation50 sceneActivation83 value84 value77 value114 value986 value988 value989 value990 value%% globalsPhone_GG_PresentPhone_Seb_PresentAlarme--]]local id = { DETECTEUR_AEON = 18, DETECTEUR_AEON_TEMP = 19, DETECTEUR_AEON_HUMID = 20, DETECTEUR_AEON_LUMINO = 21, DETECTEUR_COULOIR = 986, DETECTEUR_SAM = 988, DETECTEUR_HALL = 989, DETECTEUR_PORTE_GARAGE = 990, LAMPE_HALL = 52, LAMPE_GARAGE = 51, ALIM_POE = 77, LAMPE_CELLIER = 56, LAMPE_SALON = 45, LAMPE_BUREAU = 49, LAMPE_WC = 50, LAMPE_SAM = 54, LAMPE_DRESSING = 42, LAMPE_CH_AMIS = 24, TEMP_SALON = 74, TEMP_SDB = 88, PRISE_BUREAU = 76, PRISE_BP_EMILIEN = 83, PRISE_BP_THOMAS = 84, PRISE_ROUTEUR_1ER = 22, TV = 80, SONNETTE = 114, VMC = 25, VD_THINGSPEAK = 35, VD_ECODEVICE_E_G = 60, VD_EMONCMS = 75, VD_VMC = 78, VD_XBMC_REMOTE = 108, VD_PRESENCE_SEB = 109, VD_PRESENCE_GG = 110, VD_CHECK_CONSO = 103, VD_WOL = 40, VD_PHOTO_SENDER = 1275 } -------------------CELLIER--------------------- -- on eteint la lampe du cellier après 10 min GEA.add(id["LAMPE_CELLIER"], 2*60, "", {{"turnOff"}})------------------------------------------------------------------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+", id["SONNETTE"], 1}, -1, "Sonnette actionnée à#time# le #date#", {{"Portable", 53}, {"Portable", 104}, {"VirtualDevice", id["VD_PHOTO_SENDER"], "9"},})----------------------------------------------- -------------------- 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( id["DETECTEUR_AEON"], -1, "",{{"If",{{"Value-", id["LAMPE_WC"],89}}},{"Function", function() fibaro:call(id["LAMPE_WC"], "setValue", "95") end}}) -- On dimme la lampe automatiquement après 2 mn et on l'éteint après 3mn si pas de mouvement ou si la lampe àété remontée a plus de 76%local malampewc = GEA.add({"Value+", id["LAMPE_WC"],89}, 2*60, "",{{"Value", 15},{"Repeat"}})local malampewcdim = GEA.add({"Value-", id["LAMPE_WC"],55}, 3*60,"",{{"turnOff"},{"If", {{"Value+", id["LAMPE_WC"], 1}}}},{"Repeat"}) -- Relance des tâches en cas de détection GEA.add(id["DETECTEUR_AEON"], -1, "", {{"RestartTask", malampewc},{"RestartTask", malampewcdim}}) -- S2 lance VMC en V3 pour 3 minutes GEA.add({"SceneActivation", id["LAMPE_WC"], 26}, -1, "",{{"VirtualDevice",id["VD_VMC"],"6"},{"Global","VENT_V3_TEMP", "1"},{"If",{{"Global", "VENT_V3_TEMP", "0"}}}})-----------------------------------------------------------------SAM------------------------ -- période NUIT entre sunset et sunriselocal nuitsam = {"Time", "Sunset-30", "Sunrise"} -- Allumage à60% 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( id["DETECTEUR_SAM"], -1, "",{{"If",{{"Value-", id["LAMPE_SAM"],59}}},nuitsam ,{"Function", function() fibaro:call(id["LAMPE_SAM"], "setValue", "65") end}}) -- On dimme la lampe automatiquement après 2mn et on l'éteint après 3mn si pas de mouvement ou si la lampe àété remontée a plus de 59%local malampesam = GEA.add({"Value+", id["LAMPE_SAM"],59}, 5*60, "",{ nuitsam ,{"Value", 34},{"Repeat"}})local malampesamdim = GEA.add({"Value-", id["LAMPE_SAM"],35}, 1*60,"",{nuitsam ,{"Value", id["LAMPE_SAM"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"},{"If", {{"Value+", id["LAMPE_SAM"], 1}}}},{"Repeat"}) -- Relance des tâches en cas de détection GEA.add(id["DETECTEUR_SAM"], -1, "", {nuitsam,{"RestartTask", malampesam},{"RestartTask", malampesamdim}}) --------------------- -- Période JOUR entre sunrise et sunsetlocal joursam = {"Time", "Sunrise", "Sunset-30"} -- On dimme la lampe automatiquement après 60mn et on l'éteint après 70mn si pas d'action manuellelocal malampesam2 = GEA.add({"Value+", id["LAMPE_SAM"],59}, 45*60, "",{joursam ,{"Value", 40},{"Repeat"}})local malampesam2dim = GEA.add({"Value-", id["LAMPE_SAM"],35}, 7*60, "",{joursam ,{"Value", id["LAMPE_SAM"], 60},{"Function", function() fibaro:sleep(300) end},{"turnOff"},{"If", {{"Value+", id["LAMPE_SAM"], 1}}}},{"Repeat"}) -- Une action manuelle relance tout GEA.add( id["LAMPE_SAM"], -1, "", {{"Inverse"}, {"RestartTask", malampesam2}, {"RestartTask", malampesam2dim}})----------------------------------------------- --------------------GARAGE----------------------- Le scénario enverra un push toutes les 10mn tant que la porte sera ouverte GEA.add( id["DETECTEUR_PORTE_GARAGE"], 10*60, "La porte du garage est ouverte depuis plus de #duration#", {"Repeat"})-- Msg àla fermeture du garage GEA.add( id["DETECTEUR_PORTE_GARAGE"], -1, "La porte du garage a été fermée", {{"Inverse"}})-- Avertissement push si la porte du garage s'ouvre àdes heures non inappropriée GEA.add( id["DETECTEUR_PORTE_GARAGE"], -1, "Ouverture de la porte du garage à#time#", {{"Time", "08:30", "17:30"}, {"Days", "Monday, Tuesday, , Wednesday, Thursday, Friday, Saturday"}})--------------------- -- On dimme la lampe automatiquement après 90mn et on l'éteint après 20mn si pas d'action manuellelocal malampegar = GEA.add({"Value+", id["LAMPE_GARAGE"],21}, 90*60, "",{{"Value", 20},{"Repeat"}})local malampegardim = GEA.add({"Value-", id["LAMPE_GARAGE"],21}, 5*60, "",{{"Value", id["LAMPE_GARAGE"], 99},{"Function", function() fibaro:sleep(300) end},{"turnOff"},{"If", {{"Value+", id["LAMPE_GARAGE"], 1}}}},{"Repeat"}) -- Une action manuelle relance tout GEA.add( id["LAMPE_GARAGE"], -1, "", {{"Inverse"}, {"RestartTask", malampegar}, {"RestartTask", malampegardim}})----------------------------------------------- --------------------SALON------------------------ S2 long press alume ampli et lance XBMC GEA.add({"SceneActivation", id["LAMPE_SALON"] , 22}, -1, "",{{"turnOn", id["TV"]},{"VirtualDevice",id["VD_XBMC_REMOTE"],"1"},{"If", {{"Value-", id["TV"], 1}}}})-- Si l'ampli comsomme moins de 80w depuis 20 minutes, on averti et on coupe prise et pause XBMC après 30 minutes GEA.add({"Sensor-", id["TV"], 80}, 20*60, "", {{"Time", "07:26", "22:59"}}) GEA.add({"Sensor-", id["TV"], 80}, 30*60, "", {{"turnOff"}, {"VirtualDevice",id["VD_XBMC_REMOTE"],"2"}}) ----------------------- Notifie si TV allumée depuis plus d'une Heure GEA.add({"Sensor+", id["TV"], 200}, 180*60, "TV Allumée depuis 3H - #value# Watt") ----------------------------------------------- --------------------BUREAU----------------------- Si PRISE_BUREAU comsomme moins de 45w depuis 20 minutes, on averti et on coupe après 30 minutes GEA.add({"Sensor-", id["PRISE_BUREAU"], 45}, 20*60, "PRISE_BUREAU Conso en veille depuis 20 min ! PC Seb OFF in 10 Min !", {{"Portable", 53}, {"Time", "07:26", "22:59"}}) GEA.add({"Sensor-", id["PRISE_BUREAU"], 45}, 30*60, "", {{"turnOff"}}) ----------------------- S2 long press alume PC GEA.add({"SceneActivation", id["LAMPE_BUREAU"] , 22}, -1, "", {{"turnOn", id["PRISE_BUREAU"]}, {"Function", function() fibaro:sleep(5000) end},{"Function", function() fibaro:call(id["VD_WOL"], "pressButton", "1") end},{"If", {{"Value-", id["PRISE_BUREAU"], 1}}}})----------------------------------------------- ---------------------HALL------------------------ Allumle la lampe du hall si détection de mouvement. Le if permet de ne pas renvoyer l'ordre d'allumage si la lampe est déjàallumée GEA.add( id["DETECTEUR_HALL"], -1, "", {{"If",{{"Value-", id["LAMPE_HALL"],59}}},{"Time", "Sunset-30", "Sunrise"}, {"Function", function() fibaro:call(id["LAMPE_HALL"], "setValue", "99") end}})-- Eteindre la porte d'entrée si pas de présence plus de 5 mn. GEA.add(id["LAMPE_HALL"], 5*60, "", {{"turnOff",id["LAMPE_HALL"]}, {"If",{{"Value-",id["DETECTEUR_HALL"],1}}}})------------------------------------------------------------------COULOIR----------------------- Si la détecteur Couloir est activé on allume le routeur 1er GEA.add( id["DETECTEUR_COULOIR"], -1, "", {{"turnOn", id["PRISE_ROUTEUR_1ER"]}, {"If",{{"Value-",id["PRISE_ROUTEUR_1ER"],1}}}})-- Eteindre le routeur si pas de présence plus de 30 mn. GEA.add(id["PRISE_ROUTEUR_1ER"], 30*60, "", {{"turnOff",id["PRISE_ROUTEUR_1ER"]}})------------------------------------------------------------------BABYPHONES-------------------- Si Prise BaybyPhone Thomas ou Emilien ON, alors VG KIDS SLEEPING sinon AT HOME GEA.add( id["PRISE_BP_EMILIEN"], -1, "", {{"turnOn", id["PRISE_BP_THOMAS"]},{"Global","PresentState", "Kids_Sleeping"}}) GEA.add( id["PRISE_BP_EMILIEN"], -1, "", {{"Inverse"},{"turnOff", id["PRISE_BP_THOMAS"]},{"Global","PresentState", "At_Home"}}) GEA.add( id["PRISE_BP_THOMAS"], -1, "", {{"turnOn", id["PRISE_BP_EMILIEN"]},{"Global","PresentState", "Kids_Sleeping"}}) GEA.add( id["PRISE_BP_THOMAS"], -1, "", {{"Inverse"},{"turnOff", id["PRISE_BP_EMILIEN"]},{"Global","PresentState", "At_Home"}})--------------------------------------------------------------DETECTION PRESENCE---------------- Signale GG at Home GEA peux se déclencher sur un changement de valeur d'une variable global GEA.add({"Global", "Phone_GG_Present", "1"}, -1, "Presence GG est maintenant à#value#", {{"Portable", 53}, {"Time", "00:01", "23:59"}}) GEA.add({"Global", "Phone_GG_Present", "0"}, -1, "Presence GG est maintenant à#value#", {{"Portable", 53}, {"Time", "00:01", "23:59"}}) GEA.add({"Global", "Phone_Seb_Present", "1"}, -1, "Presence Seb est maintenant à#value#", {{"Portable", 53}, {"Time", "00:01", "23:59"}}) GEA.add({"Global", "Phone_Seb_Present", "0"}, -1, "Presence Seb est maintenant à#value#", {{"Portable", 53}, {"Time", "00:01", "23:59"}})----------------------------------------------------------NOTIFICATIO CONSO SI AWAY------------- Vérifie la consomation de la maison toutes les 60 secondes quand AWAY - Maximum ne notificatio-- La notification redémarre si la consomation est descendue en dessous de 150W GEA.add({"Global+", "HOUSE_CONSO", 150}, 60, "La maison Consomme #value# W !",{{"MaxTime", 2},{"VirtualDevice", id["VD_CHECK_CONSO"], "1"},{"If",{{"Global", "PresentState", "Away"}}},{"Repeat"}})-----------------------------------------------J'ai une deuxième instance pour les événements schedulés: ------------------------ SCHEDULER -------------------------------------- Mise àjour des Présences par détection d'adresses MAC toutes les minutes GEA.add(true , 1*60, "",{{"VirtualDevice", id["VD_PRESENCE_SEB"], "1"},{"VirtualDevice", id["VD_PRESENCE_GG"], "1"},{"Repeat"}}) -- Schedule le check consomation toutes les 28 secondes si Away GEA.add(true, 28,"",{{"VirtualDevice", id["VD_CHECK_CONSO"], "1"},{"If", {{"Global", "PresentState", "Away"}}},{"Repeat"}}) -- Maj de l'EcoDevice Eau et Gaz toutes les 2 minutes GEA.add(true, 2*60, "",{{"VirtualDevice", id["VD_ECODEVICE_E_G"], "3"},{"Repeat"}})-- Maj des graphiques ThingSpeak toutes les 6 minutes GEA.add(true, 6*60, "",{{"VirtualDevice", id["VD_THINGSPEAK"], "1"},{"Repeat"}})-- Maj des graphiques EmonCMS toutes les 5 minutes GEA.add(true, 5*60, "",{{"VirtualDevice", id["VD_EMONCMS"], "1"},{"Repeat"}})----------------REVEIL DEAD NODES-------------- --GEA.add({"Dead", id["LAMPE_SAM"]}, 10*60, "Le périphérique #name# a été ressucité", {{"Time", "06:30", "01:30"}, {"WakeUp", id["LAMPE_SAM"]}}) local tempswakeup = 3 GEA.add({"Dead", id["LAMPE_SAM"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["LAMPE_SAM"]},{"Email","2"}}) GEA.add({"Dead", id["LAMPE_HALL"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["LAMPE_HALL"]},{"Email","2"}}) GEA.add({"Dead", id["LAMPE_CELLIER"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["LAMPE_CELLIER"]},{"Email","2"}}) GEA.add({"Dead", id["LAMPE_SALON"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["LAMPE_SALON"]},{"Email","2"}}) GEA.add({"Dead", id["LAMPE_BUREAU"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["LAMPE_BUREAU"]},{"Email","2"}}) GEA.add({"Dead", id["LAMPE_CH_AMIS"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["LAMPE_CH_AMIS"]},{"Email","2"}}) GEA.add({"Dead", id["LAMPE_GARAGE"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["LAMPE_GARAGE"]},{"Email","2"}}) GEA.add({"Dead", id["LAMPE_WC"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["LAMPE_WC"]},{"Email","2"}}) GEA.add({"Dead", id["LAMPE_DRESSING"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["LAMPE_DRESSING"]},{"Email","2"}}) GEA.add({"Dead", id["PRISE_BUREAU"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["PRISE_BUREAU"]},{"Email","2"}}) GEA.add({"Dead", id["PRISE_BP_EMILIEN"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["PRISE_BP_EMILIEN"]},{"Email","2"}}) GEA.add({"Dead", id["PRISE_BP_THOMAS"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["PRISE_BP_THOMAS"]},{"Email","2"}}) GEA.add({"Dead", id["PRISE_ROUTEUR_1ER"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["PRISE_ROUTEUR_1ER"]},{"Email","2"}}) GEA.add({"Dead", id["TV"]}, tempswakeup*60, "Le périphérique #name# a été ressucité", {{"WakeUp", id["TV"]},{"Email","2"}}) ----------------------------------------------- ---------VERIFICATION DES PILES 1X/J----------- GEA.add({"Batteries", 60}, 24*60*60, "", {{"Repeat"}})----------------------------------------------- Script gestion de lumière WAF +++ prévient que la lampe va s'éteindre en dimmant pendant qques minutes avant d'éteindre Soit une détection de mouvement soit une action sur le dimer relance le décompte -------------------SAM------------------------ -- période NUIT entre sunset et sunriselocal nuitsam = {"Time", "Sunset", "Sunrise"} -- Allumage à65% dès que détection mouvement GEA.add( id["DETECTEUR_SAM"], -1, "",{ nuitsam ,{"Function", function() fibaro:call(id["LAMPE_SAM"], "setValue", "65") end}}) -- On dimme la lampe automatiquement après 2mn et on l'éteint après 3mn si pas de mouvement ou si la lampe àété remontée a plus de 60%local malampesam = GEA.add({"Value+", id["LAMPE_SAM"],60}, 2*60, "SAM Dim à34% Car 2 min àplus de 60%",{ nuitsam ,{"Value", 34},{"Repeat"}})local malampesamdim = GEA.add({"Value-", id["LAMPE_SAM"],35}, 1*60, "SAM apres 1 min àmoins de 35% set à65% then TurnOff ", {nuitsam , {"Value", id["LAMPE_SAM"], 65}, {"Function", function() fibaro:sleep(300) end}, {"turnOff"}, {"If", {{"Value+", id["LAMPE_SAM"], 1}}}}, {"Repeat"} ) -- Relance des tâches en cas de détection GEA.add(id["DETECTEUR_SAM"], -1, "", {nuitsam,{"RestartTask", malampesam},{"RestartTask", malampesamdim}}) --------------------- -- Période JOUR entre sunrise et sunsetlocal joursam = {"Time", "Sunrise", "Sunset"} -- On dimme la lampe automatiquement après 60mn et on l'éteint après 70mn si pas d'action manuellelocal malampesam2 = GEA.add({"Value+", id["LAMPE_SAM"],59}, 45*60, "Dim à40% CAR 45min àplus de 59%",{ joursam ,{"Value", 40},{"Repeat"}})local malampesam2dim = GEA.add({"Value-", id["LAMPE_SAM"],35}, 7*60, "TurnOff apres 7 min àmoins de 35%", { joursam , {"Value", id["LAMPE_SAM"], 65}, {"Function", function() fibaro:sleep(300) end}, {"turnOff"}, {"If", {{"Value+", id["LAMPE_SAM"], 1}}} }, {"Repeat"} ) -- Une action manuelle relance tout GEA.add( id["LAMPE_SAM"], -1, "SAM Restart", {{"Inverse"}, {"RestartTask", malampesam2}, {"RestartTask", malampesam2dim}})-----------------------------------------------edit: sript amélioré: ne relance pas les commandes si la lampe est allumée (économie de traffic zwave et donc de dead nodes)Voir mon post plus haut pour le script complet, le principe est ci-dessous -------------------SAM------------------------ -- période NUIT entre sunset et sunriselocal nuitsam = {"Time", "Sunset-30", "Sunrise"} -- Allumage à60% 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( id["DETECTEUR_SAM"], -1, "",{{"If",{{"Value-", id["LAMPE_SAM"],59}}},nuitsam ,{"Function", function() fibaro:call(id["LAMPE_SAM"], "setValue", "65") end}}) -- On dimme la lampe automatiquement après 2mn et on l'éteint après 3mn si pas de mouvement ou si la lampe àété remontée a plus de 59%local malampesam = GEA.add({"Value+", id["LAMPE_SAM"],59}, 5*60, "",{ nuitsam ,{"Value", 34},{"Repeat"}})local malampesamdim = GEA.add({"Value-", id["LAMPE_SAM"],35}, 1*60,"",{nuitsam ,{"Value", id["LAMPE_SAM"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"},{"If", {{"Value+", id["LAMPE_SAM"], 1}}}},{"Repeat"}) -- Relance des tâches en cas de détection GEA.add(id["DETECTEUR_SAM"], -1, "", {nuitsam,{"RestartTask", malampesam},{"RestartTask", malampesamdim}}) ------------------ WC ----------------------- -- Allumage à95% dès que détection mouvement GEA.add( id["DETECTEUR_AEON"], -1, "",{{"Function", function() fibaro:call(id["LAMPE_WC"], "setValue", "95") end}}) -- On dimme la lampe automatiquement après 2 mn et on l'éteint après 3mn si pas de mouvement ou si la lampe àété remontée a plus de 89%local malampewc = GEA.add({"Value+", id["LAMPE_WC"],89}, 2*60, "wc Dim 15 CAR 120sec àplus de 89%",{{"Value", 15},{"Repeat"}})local malampewcdim = GEA.add({"Value-", id["LAMPE_WC"],55}, 3*60, "wc TurnOff apres 180s àmoins de 55%", {{"turnOff"},{"If", {{"Value+", id["LAMPE_WC"], 1}}}}, {"Repeat"} ) -- Relance des tâches en cas de détection GEA.add(id["DETECTEUR_AEON"], -1, "Task WC restarted", {{"RestartTask", malampewc},{"RestartTask", malampewcdim}})-------------------------------------------- 5
HANSOLO Posté(e) le 2 octobre 2014 Signaler Posté(e) le 2 octobre 2014 (modifié) Ma config actualisée le 14/05/2015. Deux instances de GEA pour séparer les déclenchements instantanés et différés (pour améliorer le délai de réponse des déclenchements instantanés depuis la V4.XXXX de la HC2) GEA instantané: --[[ %% autostart %% properties 14 value 19 value 20 value 366 value 371 value 126 value 123 sceneActivation 54 sceneActivation 46 value 54 value %% globals --]] local id = { PorteCellier = 14, PlacardChb1 = 19, PlacardChb2 = 20, MvtEscalier = 366, MvtEscalier2 = 126, MvtChb = 371, LampeCellier = 15, LampeEsca1 = 35, LampeEsca2 = 38, LampePlacardChb = 18, RGBChb = 359, Cmd_chevet = 123, Chevet1 = 317, Chevet2 = 319, CHEVET_LUCAS = 321, Hue1 = 303, LUM_SALON = 54, LAMPE_PIANO = 264, LAMPE_LECTURE = 262, Lum_chb_lucas = 46, PRISE_TV_DROITE = 114, CMD_SUB = 112 } -- Ajouter ici les événements à exécuter / Add here events to schedule -- Une liste d'exemples est disponible dans un fichier annexe samples.lua / A samples list is available in another file called samples.lua function setEvents() --Mes commandes --Commandes lampes de chevet GEA.add({{"SceneActivation", id["Cmd_chevet"] , 16},{"Value", id["Chevet1"], 0},{"Value", id["Chevet2"], 0}}, -1, "",{{"turnOn", id["Chevet1"]},{"turnOn", id["Chevet2"]}}) GEA.add({{"SceneActivation", id["Cmd_chevet"] , 16},{"Value", id["Chevet1"], 0},{"Value", id["Chevet2"], 1}}, -1, "",{{"turnOn", id["Chevet1"]}}) GEA.add({{"SceneActivation", id["Cmd_chevet"] , 16},{"Value", id["Chevet1"], 1},{"Value", id["Chevet2"], 0}}, -1, "",{{"turnOn", id["Chevet2"]}}) GEA.add({{"SceneActivation", id["Cmd_chevet"] , 16},{"Value", id["Chevet1"], 1},{"Value", id["Chevet2"], 1}}, -1, "",{{"turnOff", id["Chevet1"]},{"turnOff", id["Chevet2"]}}) --Chevet chb lucas GEA.add({id["Lum_chb_lucas"]},-1,"",{{"turnOn", id["CHEVET_LUCAS"]}}) GEA.add({id["Lum_chb_lucas"]},-1,"",{{"Inverse"},{"turnOff", id["CHEVET_LUCAS"]}}) --Gestion lumière placard chb bas --Si un des capteurs d'ouverture est on j'allume 18 GEA.add(id["PlacardChb1"], -1, "" ,{{"turnOn", id["LampePlacardChb"]}}) GEA.add(id["PlacardChb2"], -1, "" ,{{"turnOn", id["LampePlacardChb"]}}) --Condition pour éteindre la lumière du placard, les deux détecteurs à Off GEA.add({id["PlacardChb1"],{"Value",id["PlacardChb2"],0}}, -1, "", {{"Inverse"},{"turnOff",id["LampePlacardChb"]}}) GEA.add({id["PlacardChb2"],{"Value",id["PlacardChb1"],0}}, -1, "", {{"Inverse"},{"turnOff",id["LampePlacardChb"]}}) --Gestion lumière escalier --Lumière escalier, ON si détecteur ON, éteindre après 2mn GEA.add(id["MvtEscalier2"], -1, "", {{"turnOn",id["LampeEsca1"]},{"turnOn",id["LampeEsca2"]}}) GEA.add(id["MvtEscalier"], -1, "", {{"turnOn",id["LampeEsca1"]},{"turnOn",id["LampeEsca2"]}}) --Extinction 3 mn aprés GEA.add({id["LampeEsca1"], {"Value", id["MvtEscalier"], 0}, {"Value", id["MvtEscalier2"], 0}}, 3*60, "", {{"turnOff",id["LampeEsca1"]},{"turnOff",id["LampeEsca2"]}}) --Gestion ruban led sous le lit --Ruban LED sous le lit GEA.add(id["MvtChb"], -1, "", {{"Time", "06:00", "09:00"}, {"RGB", id["RGBChb"], 175, 0, 134, 68}}) GEA.add(id["MvtChb"], -1, "", {{"Time", "Sunset", "06:00"}, {"RGB", id["RGBChb"], 0, 46, 147, 57}}) GEA.add(id["MvtChb"], 3*60, "", {{"Inverse"},{"turnOff",id["RGBChb"]}}) --Commande SubWoofer GEA.add({"Power+", id["PRISE_TV_DROITE"], 125}, 30, "conso pdroite #value#", {{"turnOn", id["CMD_SUB"]}}) GEA.add({"Power-", id["PRISE_TV_DROITE"], 95}, 5*60, "", {{"turnOff", id["CMD_SUB"]}}) --Commande Swiinter depuis FGD211 lump salon S2 GEA.add({{"SceneActivation", id["LUM_SALON"] , 26},{"Value", id["LAMPE_PIANO"], 0},{"Value", id["LAMPE_LECTURE"], 0}}, -1, "",{{"turnOn", id["LAMPE_PIANO"]},{"turnOn", id["LAMPE_LECTURE"]}}) GEA.add({{"SceneActivation", id["LUM_SALON"] , 26},{"Value", id["LAMPE_PIANO"], 0},{"Value", id["LAMPE_LECTURE"], 1}}, -1, "",{{"turnOn", id["LAMPE_PIANO"]}}) GEA.add({{"SceneActivation", id["LUM_SALON"] , 26},{"Value", id["LAMPE_PIANO"], 1},{"Value", id["LAMPE_LECTURE"], 0}}, -1, "",{{"turnOn", id["LAMPE_LECTURE"]}}) GEA.add({{"SceneActivation", id["LUM_SALON"] , 26},{"Value", id["LAMPE_PIANO"], 1},{"Value", id["LAMPE_LECTURE"], 1}}, -1, "",{{"turnOff", id["LAMPE_PIANO"]},{"turnOff", id["LAMPE_LECTURE"]}}) --Fin de mes commandes end GEA Différé --[[ %% autostart %% properties %% globals --]] local id = { --inconnu NETATMO_THERMOSTAT = 295, VACANCES_SCOLAIRES = 116, NETATMO_THERMOSTAT_INCONNU = 296, --Cuisine CMD_BOUCHE = 26, DANFOSS_CUISINE = 254, WALLPLUG_HOTTE = 29, --Salon DANFOSS_SALON_NORD = 248, SAPIN_SALON = 113, DANFOSS_SALON_SUD = 252, SALON_SALLE_A_MANGER = 11, LAMPE_LECTURE = 262, BAIE_VITRE = 58, LAMPE_PIANO = 264, LUM_SALON = 54, DANFOSS_SALON_MILIEU = 120, VOLET_PF_SUD = 23, VOLET_PF_NORD = 25, VOLET_BAIE_VITREE = 13, VOLET_FENETRE_SUD = 24, --Couloir TEMP_SMOKE_CHAUDIERE = 201, DETECT_FUMEE = 94, NETATMO2 = 22, DANFOSS_COULOIR = 124, NETATMO_INDOR_TEMPE = 285, NETATMO_INDOR_CO2 = 286, NETATMO = 283, NETATMO_INDOR_PRESS = 288, NETATMO_INDOR_HUMID = 287, NETATMO_INDOR_NOISE = 289, EDF_ECO_DEVICES = 77, --Cellier PORTE_CELLIER = 14, LUMIERE_CELLIER = 15, --Chambre Parent PLACARD_PORTE_2 = 20, PLACARD_PORTE_1 = 19, WALL_PLUG_PLACARD = 18, DANFOSS_CHB_BAS = 298, LUMINO_CHB_PARENT = 243, TEMP_CHB_PARENT = 242, CHEVET_2 = 319, MOTION_CHB_PARENT = 241, CMD_CHEVETS = 123, CHEVET_1 = 317, LUM_AMB_CHB_BAS = 359, VOLET_CHB_BAS = 51, --Escalier LUM_ESCALIER_2 = 37, LUM_ESCALIER = 35, MOTION_ESCALIER = 126, LUMINO_ESCALIER = 128, TEMP_ESCALIER = 127, --Palier DSB005_LUM = 313, LUM_PALIER = 38, LUM_PALIER_2 = 40, DANFOSS_PALIER = 258, DSB05 = 311, DSB05_TEMP = 312, DSB05_HUM = 314, --Salle de jeux DANFOSS_SDJ = 260, VOLET_SDJ = 52, --Chambre Lucas VOLET_CHB_LUCAS = 53, NETATMO__TEMP_CHB_LU = 351, LUM_CHB_LUCAS = 46, SAPIN_CHB_LUCAS = 112, DANFOSS_CHB_LUCAS = 256, AQUARIUM = 379, --Salle douche CHAUFFAGE_SDD = 108, --Terrasse CAPTEUR_LUMINOSITE = 350, NETATMO_RAIN_GAUGE = 292, DECO_TERRASSE = 114, NETATMO_OUTDOR_TEMP = 290, NETATMO_OUTDOR_HUMI = 291, --Système SONOS_TTS = 102, MY_BATTERIES_4_2 = 315, SONOS_PLAYER = 100, PONT_HUE = 301, EVENEMENTS = 99, JOUR_CHOME = 90, NETATMO_THERMOSTAT_SYSTEME = 79, GRAPH_ECCODEVICE = 91, CLOCK_SYNC = 97, GRAPHIQUES = 78, ScnVMC = 17, ScnVoletsSalon = 15, VD_GRAPHEccoDevice = 91, VD_JourChome = 90, } -- Ajouter ici les événements à exécuter / Add here events to schedule -- Une liste d'exemples est disponible dans un fichier annexe samples.lua / A samples list is available in another file called samples.lua function setEvents() --Mes commandes --Ouverture bouche aération si aspiration hotte allumée OU C02> 800 --MAJ de de la VG HOTTE selon les conditions de déclenchement GEA.add( {"Power+", id["WALLPLUG_HOTTE"], 80}, 30, "Hotte allumée", {{"Global", "HOTTE", "OUI"}} ) GEA.add( {"Value+", id["NETATMO_INDOR_CO2"], 800}, 30, "Niveau CO2 #value#", {{"Global", "HOTTE", "OUI"}} ) GEA.add( {{"Power-", id["WALLPLUG_HOTTE"], 70},{"Value-", id["NETATMO_INDOR_CO2"], 750}}, 30, "La hote est éteinte", {{"Global", "HOTTE", "NON"}} ) --La bouche d'aération s'ouvre durant 30mn au retour du courant suite à coupure. --Objectif déclencher le scénario qui pilote un FGDXXX pour créer une coupure de courant de 3s toutes les 25mn(environ) si conditions OK GEA.add( {{"Global", "HOTTE", "OUI"}, {"Global", "DureeHOTTE", 0}}, 30, "Lance la scène pour ouvrir Bouche", {{"Scenario",id["ScnVMC"]},{"Repeat"}} ) --Gestion de la VG DureeHOTTE pour le délai d'environ 25mn entre les déclenchements du scrénario GEA.add( {{"Global", "HOTTE", "OUI"}, {"Global-", "DureeHOTTE", 52}}, 30, "Incrément globale DureeHOTTE", {{"Global", "DureeHOTTE", "inc%+1"},{"Repeat"}} ) GEA.add( {{"Global", "HOTTE", "OUI"}, {"Global+", "DureeHOTTE", 50}}, 30, "RAZ globale DureeHOTTE suite 30mn", {{"Global", "DureeHOTTE", "0"},{"Repeat"}} ) GEA.add( {{"Global", "HOTTE", "NON"}, {"Global!", "DureeHOTTE", 0}}, 30, "RAZ globale DureeHOTTE suite fin déclencheur", {{"Global", "DureeHOTTE", "0"},{"Repeat"}} ) --Ouverture des volets du salon local estChome = {"Global", "JourChome", "OUI"} local estTravail = {"Global", "JourChome", "NON"} GEA.add( true, 1*30, "Ouverture volets salon", {{"Open",id["VOLET_PF_SUD"],100},{"Open",id["VOLET_PF_NORD"],100},{"Open",id["VOLET_FENETRE_SUD"],100},{"Open",id["VOLET_BAIE_VITREE"],100},{"Time","Sunrise-20","Sunrise-15"}} ) --Ouverture des volets des chambres semaine GEA.add( estTravail, 1*30, "", {{"Time", "07:24", "07:29"}, {"Open",id["VOLET_SDJ"],50},{"Open",id["VOLET_CHB_LUCAS"],50},{"Open",id["VOLET_CHB_BAS"],50}} ) GEA.add( estTravail, 1*30, "", {{"Time", "07:29", "07:35"}, {"Open",id["VOLET_SDJ"],100},{"Open",id["VOLET_CHB_LUCAS"],100},{"Open",id["VOLET_CHB_BAS"],100}} ) --Ouverture des volets des chambres WE et jours fériés GEA.add( estChome, 1*30, "", {{"Time", "08:54", "08:59"}, {"Open",id["VOLET_SDJ"],50},{"Open",id["VOLET_CHB_LUCAS"],50},{"Open",id["VOLET_CHB_BAS"],50}} ) GEA.add( estChome, 1*30, "", {{"Time", "08:59", "09:05"}, {"Open",id["VOLET_SDJ"],100},{"Open",id["VOLET_CHB_LUCAS"],100},{"Open",id["VOLET_CHB_BAS"],100}} ) --Fermeture des volets des chambres GEA.add( true, 1*30, "", {{"Time", "Sunset+30<21:30", "21:35"}, {"Close",id["VOLET_SDJ"],100},{"Close",id["VOLET_CHB_LUCAS"],100},{"Close",id["VOLET_CHB_BAS"],100}} ) --Fermeture des volets du salon GEA.add( true, 1*30, "Fermeture volets salon", {{"Time", "Sunset+120", "Sunset+125"}, {"Scenario",id["ScnVoletsSalon"]}} ) --Gestion des volets pour limiter l'apport de chaleur (avec VD Position Du Soleil Et Ensoleillement de @CaptainIgloo) --Volets SDJ, chb bas baisser GEA.add( {{"Value+",id["CAPTEUR_LUMINOSITE"], 1800},{"Value+",id["NETATMO__TEMP_CHB_LU"], 22},{"Global", "Parasol","NON"},{"Global+","VDSoleilAzimut",124},{"Global-","VDSoleilAzimut",300}}, 5*60, "", {{"Close",id["VOLET_SDJ"],70},{"Close",id["VOLET_CHB_BAS"],70}} ) GEA.add( {{"Value+",id["NETATMO__TEMP_CHB_LU"], 22},{"Global", "Parasol","OUI"},{"Global+","VDSoleilAzimut",124},{"Global-","VDSoleilAzimut",300}}, 5*60, "", {{"Close",id["VOLET_SDJ"],70},{"Close",id["VOLET_CHB_BAS"],70}} ) GEA.add( {{"Value-",id["CAPTEUR_LUMINOSITE"], 1550},{"Value+",id["VOLET_SDJ"],28},{"Value-",id["VOLET_SDJ"],32},{"Global", "Parasol","NON"},{"Global+","VDSoleilAzimut",124},{"Global-","VDSoleilAzimut",300}}, 5*60, "", {{"Open",id["VOLET_SDJ"],100},{"Open",id["VOLET_CHB_BAS"],100}} ) --Volet chb Lucas baisser GEA.add( {{"Value+",id["CAPTEUR_LUMINOSITE"], 1800},{"Value+",id["NETATMO__TEMP_CHB_LU"], 22},{"Global", "Parasol","NON"},{"Global+","VDSoleilAzimut",135},{"Global-","VDSoleilAzimut",300}}, 5*60, "", {{"Close",id["VOLET_CHB_LUCAS"],70}} ) GEA.add( {{"Value+",id["NETATMO__TEMP_CHB_LU"], 22},{"Global", "Parasol","OUI"},{"Global+","VDSoleilAzimut",135},{"Global-","VDSoleilAzimut",300}}, 5*60, "", {{"Close",id["VOLET_CHB_LUCAS"],70}} ) GEA.add( {{"Value-",id["CAPTEUR_LUMINOSITE"], 1550},{"Value+",id["VOLET_CHB_LUCAS"],28},{"Value-",id["VOLET_CHB_LUCAS"],32},{"Global", "Parasol","NON"},{"Global+","VDSoleilAzimut",135},{"Global-","VDSoleilAzimut",300}}, 5*60, "", {{"Open",id["VOLET_CHB_LUCAS"],100}} ) --Volet PF sud salon GEA.add( {{"Value+",id["CAPTEUR_LUMINOSITE"], 1800},{"Value+",id["NETATMO__TEMP_CHB_LU"], 22},{"Global", "Parasol","NON"},{"Global+","VDSoleilAzimut",124},{"Global-","VDSoleilAzimut",245}}, 5*60, "", {{"Close",id["VOLET_PF_SUD"],70}} ) GEA.add( {{"Value+",id["NETATMO__TEMP_CHB_LU"], 22},{"Global", "Parasol","OUI"},{"Global+","VDSoleilAzimut",124},{"Global-","VDSoleilAzimut",245}}, 5*60, "", {{"Close",id["VOLET_PF_SUD"],70}} ) GEA.add( {{"Value-",id["CAPTEUR_LUMINOSITE"], 1550},{"Value+",id["VOLET_PF_SUD"],28},{"Value-",id["VOLET_PF_SUD"],32},{"Global", "Parasol","NON"},{"Global+","VDSoleilAzimut",124},{"Global-","VDSoleilAzimut",245}}, 5*60, "", {{"Open",id["VOLET_PF_SUD"],100}} ) --Ouverture des volets en fin d'exposition au soleil GEA.add( {{"Value+",id["VOLET_CHB_LUCAS"],28},{"Value-",id["VOLET_CHB_LUCAS"],32},{"Global+","VDSoleilAzimut",260},{"Global-","VDSoleilAzimut",265}}, 30, "", {{"Open",id["VOLET_CHB_LUCAS"],100}} ) GEA.add( {{"Value+",id["VOLET_PF_SUD"],28},{"Value-",id["VOLET_PF_SUD"],32},{"Global+","VDSoleilAzimut",245},{"Global-","VDSoleilAzimut",250}}, 30, "", {{"Open",id["VOLET_PF_SUD"],100}} ) GEA.add( {{"Value+",id["VOLET_SDJ"],28},{"Value-",id["VOLET_SDJ"],32},{"Global+","VDSoleilAzimut",260},{"Global-","VDSoleilAzimut",265}}, 30, "", {{"Open",id["VOLET_SDJ"],100}} ) GEA.add( {{"Value+",id["VOLET_CHB_BAS"],28},{"Value-",id["VOLET_CHB_BAS"],32},{"Global+","VDSoleilAzimut",260},{"Global-","VDSoleilAzimut",265}}, 30, "", {{"Open",id["VOLET_CHB_BAS"],100}} ) --Arrêt chauffage d'appoint salle de douche GEA.add( id["CHAUFFAGE_SDD"], 30*60, "", {{"turnOff",id["CHAUFFAGE_SDD"]},{"Repeat"}} ) --Maj des datas EccoDevice GEA.add( true, 2*60, "", {{"VirtualDevice", id["VD_GRAPHEccoDevice"], "2"},{"Repeat"}} ) --MAJ JourChome GEA.add( true, 1*60, "", {{"VirtualDevice", id["VD_JourChome"], "3"},{"Time", "00:05", "00:10"}} ) --Lumière aquarium GEA.add( true, 1*60, "", {{"turnOn", id["AQUARIUM"]},{"Time", "07:59", "08:00"}} ) GEA.add( true, 1*60, "", {{"turnOff", id["AQUARIUM"]},{"Time", "19:59", "20:00"}} ) --Gestion des sapins et décorations extèrieure --GEA.add(true, 1*60, "", {{"turnOn", id["SAPIN_CHB_LUCAS"]},{"turnOn", id["SAPIN_SALON"]},{"turnOn", id["DECO_TERRASSE"]},{"Time", "Sunset-60", "Sunset-55"},{"Time", "07:15", "07:20"}}) --GEA.add(true, 1*60, "", {{"turnOff", id["SAPIN_CHB_LUCAS"]},{"turnOff", id["SAPIN_SALON"]},{"turnOff", id["DECO_TERRASSE"]},{"Time", "22:55", "23:00"},{"Time", "Sunrise+60", "Sunrise+65"}}) --GEA.add(true, 1*60, "", {{"turnOn", id["SAPIN_CHB_LUCAS"]},{"turnOn", id["SAPIN_SALON"]},{"turnOn", id["DECO_TERRASSE"]},{"Time", "23:00", "23:05"},{"Dates","24/12/2014","24/12/2014"}}) --GEA.add(true, 1*60, "", {{"turnOff", id["SAPIN_CHB_LUCAS"]},{"turnOff", id["SAPIN_SALON"]},{"turnOff", id["DECO_TERRASSE"]},{"Time", "00:30", "00:35"},{"Dates","25/12/2014","25/12/2014"}}) --Fin de mes commandes end Modifié le 10 octobre 2015 par HANSOLO 4
Nico Posté(e) le 4 octobre 2014 Signaler Posté(e) le 4 octobre 2014 --Gestion circulateur chauffage au sol --Allumage GEA.add(98, 1*60, "Allumage circulateur chauffage au sol", {{"turnOn",id["CIRCULATEUR_CF_SOL"]}}) GEA.add(100, 1*60, "Allumage circulateur chauffage au sol", {{"turnOn",id["CIRCULATEUR_CF_SOL"]}}) GEA.add(101, 1*60, "Allumage circulateur chauffage au sol", {{"turnOn",id["CIRCULATEUR_CF_SOL"]}}) GEA.add(103, 1*60, "Allumage circulateur chauffage au sol", {{"turnOn",id["CIRCULATEUR_CF_SOL"]}}) GEA.add(104, 1*60, "Allumage circulateur chauffage au sol", {{"turnOn",id["CIRCULATEUR_CF_SOL"]}}) GEA.add(106, 1*60, "Allumage circulateur chauffage au sol", {{"turnOn",id["CIRCULATEUR_CF_SOL"]}}) GEA.add(107, 1*60, "Allumage circulateur chauffage au sol", {{"turnOn",id["CIRCULATEUR_CF_SOL"]}}) --Coupure local couper_circuit= {"If",{{"Value-", 98, 1},{"Value-", 100, 1},{"Value-", 101, 1},{"Value-", 103, 1},{"Value-", 104, 1},{"Value-", 106, 1},{"Value-", 107, 1}}} GEA.add(id["CIRCULATEUR_CF_SOL"], 1*5, "Coupure circulateur chauffage au sol", {{"turnOff",id["CIRCULATEUR_CF_SOL"]},couper_circuit}) Un petit bout vous permettant de lancer un circulateur de chauffage et de l'éteindre si un des circuits de chauffage branché dessus est en demande : 2
Moicphil Posté(e) le 5 octobre 2014 Signaler Posté(e) le 5 octobre 2014 (modifié) A moi : . --[[ %% autostart %% properties 252 value 501 value 567 value %% globals ETATALARME PA_Mode --]] function yourcode() local id = { Porte_Garage = 229, Porte_Portail = 501, Rgbw_Automatisme = 122, Mv_Pushover = 198, Tts_Karotz = 282, Hc_Lite = 272, Hc2_Pret = 273, Hub = 274, Rgbw_Salon = 13, Rgbw_Cuisine = 186, Lampe_Sdb = 225, Vmc = 128, Sirene_Garage = 325, Sirene_Salon = 291, Portail = 209, Pac = 68, Garage = 207, Interphone = 235, Chauf_Sdb_Haut = 83, Machine_a_Laver = 182, Chauf_Sdb_Bas = 77, Halogenes_Ext = 552, Lampes_bar = 261, Fumee_Cuisine = 144, NetAtmo_temp_int = 585, NetAtmo_temp_ext = 590, NetAtmo_pression = 588, NetAtmo_co2 = 586, NetAtmo_humidite = 587, NetAtmo_pluviometre = 592, Mv_Ecodevice = 596, Tablette = 201, Sauron_escalier = 252, Mv_ambiance = 192, Gea_alarm_sms = 567, Mv_sms = 556, Green_jour = 275, Green_nuit = 276, Green_silence = 277, Green_arret = 274, } -- GEA ALARM GEA.add({"Alarm", id["Gea_alarm_sms"]}, 0, "Test de sms en cours !", {{"Global", "SMS", "Fibaro message de test, on est le #date#, il est : #time# ."},{"VirtualDevice", id["Mv_sms"], 1},{"VirtualDevice", id["Mv_sms"], 2}}) -- SCENES -- Allumage d'ambiance dès détection mouvement escalier entre le couché du soleil et 5h00- pas de réalumage si lampes bar à on GEA.add(id["Sauron_escalier"], -1, "",{{"If",{{"Value-", id["Lampes_bar"],10}}},{"Time", "Sunset", "05:00"} ,{"VirtualDevice", id["Mv_ambiance"], 1}}) -- CONTROLE DES PORTES local Alarme_on = {"If",{{"Global", "ETATALARME", "Active"}}} GEA.add(id["Porte_Portail"], -1, "Ouverture du portail à #time#", { Alarme_on, {"Global", "pushover", "Ouverture du portail. Attention l'alarme est toujours activée !"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add(id["Porte_Garage"], 10*60, "La porte du garage est ouverte depuis plus de 10 minutes", {{"Repeat"}, {"Time", "21:00", "05:00"}, {"Program", id["Rgbw_Automatisme"], 5}, {"Global", "pushover", "La porte du garage est ouverte depuis plus de 10 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 1}, {"Function", function() fibaro:sleep(4000) end}, {"Global", "Karotz", "La porte du garage est ouverte depuis plus de 10 minutes"}, {"VirtualDevice", id["Tts_Karotz"], 1}}) -- CONTROLE DES PRISES GEA.add(id["Hc_Lite"], 30*60, "HC Lite deconnectée depuis 30 minutes", {{"Repeat"}, {"Inverse"}, {"Global", "pushover", "La Hc Lite est deconnectée du secteur depuis 30 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add(id["Hc2_Pret"], 30*60, "HC2 de pret deconnectée depuis 30 minutes", {{"Repeat"}, {"Inverse"}, {"Global", "pushover", "La HC2 de pret est deconnectée du secteur depuis 30 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add(id["Hub"], 30*60, "Hub deconnectée depuis 30 minutes", {{"Repeat"}, {"Inverse"}, {"Global", "pushover", "Le Hub est deconnectée du secteur depuis 30 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) -- REVEIL DES NOEUX MORTS MODULES SUR SECTEUR GEA.add({"Dead", id["Rgbw_Salon"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Rgbw_Salon"]}}) GEA.add({"Dead", id["Tablette"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Tablette"]}}) GEA.add({"Dead", id["Rgbw_Automatisme"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Rgbw_Automatisme"]}}) GEA.add({"Dead", id["Rgbw_Cuisine"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Rgbw_Cuisine"]}}) GEA.add({"Dead", id["Lampe_Sdb"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Lampe_Sdb"]}}) GEA.add({"Dead", id["Vmc"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Vmc"]}}) GEA.add({"Dead", id["Sirene_Garage"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Sirene_Garage"]}}) GEA.add({"Dead", id["Sirene_Salon"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Sirene_Salon"]}}) GEA.add({"Dead", id["Portail"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Portail"]}}) GEA.add({"Dead", id["Pac"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Pac"]}}) GEA.add({"Dead", id["Garage"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Garage"]}}) GEA.add({"Dead", id["Interphone"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Interphone"]}}) GEA.add({"Dead", id["Chauf_Sdb_Haut"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Chauf_Sdb_Haut"]}}) GEA.add({"Dead", id["Machine_a_Laver"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Machine_a_Laver"]}}) GEA.add({"Dead", id["Chauf_Sdb_Bas"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Chauf_Sdb_Bas"]}}) GEA.add({"Dead", id["Halogenes_Ext"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Halogenes_Ext"]}}) GEA.add({"Dead", id["Lampes_bar"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Lampes_bar"]}}) GEA.add({"Dead", id["Fumee_Cuisine"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["Fumee_Cuisine"]}}) -- PUSH METEO GEA.add({"Value+", id["NetAtmo_temp_int"],26.10}, 1*60, "Température intérieure à #value#°C...Il faut aérer!", {{"Global", "pushover", "Température intérieure à #value#°C, Il faut aérer!"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add({"Value-", id["NetAtmo_temp_int"],18.10}, 1*60, "Température intérieure à #value#°C", {{"Global", "pushover", "Température intérieure à #value#°C"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add({"Value-", id["NetAtmo_temp_ext"],0.10}, 1*60, "Température extérieure à #value#°C, risque de gel", {{"Global", "pushover", "Température extérieure à #value#°C, risque de gel"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add({"Value-", id["NetAtmo_temp_ext"],(-4.90)}, 1*60, "Température extérieure à #value#°C, grand froid", {{"Global", "pushover", "Température extérieure à #value#°C, grand froid"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add({"Value-", id["NetAtmo_pression"],1000}, 1*60, "Pression athmosphérique à #value# Hpa... depression en approche !", {{"Global", "pushover", "Pression athmosphérique à #value# Hpa, depression en approche !"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add({"Value+", id["NetAtmo_co2"],1100}, 1*60, "Niveau de CO2 élevé ! : #value# ...Il faut aérer!", {{"Global", "pushover", "Niveau de CO2 élevé ! : #value# ...Il faut aérer!"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add({"Value-", id["NetAtmo_humidite"],30}, 1*60, "Niveau d'humidité trop faible ! : #value# ...Il faut humidifier la piece!", {{"Global", "pushover", "Niveau d'humidité trop faible ! : #value# ...Il faut humidifier la piece!"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add({"Value+", id["NetAtmo_humidite"],50}, 1*60, "Niveau d'humidité trop haut ! : #value# ...Il faut aerer la piece!", {{"Global", "pushover", "Niveau d'humidité trop haut ! : #value# ...Il faut aerer la piece!"}, {"VirtualDevice", id["Mv_Pushover"], 2}}) GEA.add({"Value+", id["NetAtmo_pluviometre"],0.10}, 1*60, "Pluie en cours : #value# mm .", {{"Global", "pushover", "Pluie en cours : #value# mm ."}, {"VirtualDevice", id["Mv_Pushover"], 2}}) -- CONTROLE DES PILES GEA.add({"Batteries", 40}, 12*60*60, "", {{"Repeat"}}) -- PUSH ETAT ALARME-- GEA.add({"Global", "PA_Mode", "Jour"}, -1, "Alarme Jour activée à #time# le #date#", {{"Global", "pushover", "Alarme Jour activée à #time# le #date#"}, {"VirtualDevice", id["Mv_Pushover"], 2}, {"turnOn", id["Green_jour"]}, {"turnOff", id["Green_arret"]}}) GEA.add({"Global", "PA_Mode", "Nuit"}, -1, "Alarme nuit activée à #time# le #date#", {{"Global", "pushover", "Alarme Nuit activée à #time# le #date#"}, {"VirtualDevice", id["Mv_Pushover"], 2}, {"turnOn", id["Green_nuit"]}, {"turnOff", id["Green_arret"]}}) GEA.add({"Global", "PA_Mode", "Silence"}, -1, "Alarme Silence activée à #time# le #date#", {{"Global", "pushover", "Alarme Silence activée à #time# le #date#"}, {"VirtualDevice", id["Mv_Pushover"], 2}, {"turnOn", id["Green_silence"]}, {"turnOff", id["Green_arret"]}}) GEA.add({"Global", "PA_Mode", "Arret"}, -1, "Alarme en Arret à #time# le #date#", {{"Global", "pushover", "Alarme en Arret à #time# le #date#"}, {"VirtualDevice", id["Mv_Pushover"], 2}, {"turnOn", id["Green_arret"]}, {"turnOff", id["Green_jour"]}, {"turnOff", id["Green_nuit"]}, {"turnOff", id["Green_silence"]}}) -- ALERTE LAMPES ALLUMEES local condition = {"If",{{"Global", "ETATALARME", "Active"}}} GEA.add(id["Lampes_bar"], 5*60, "La lumière de la cuisine est allumée depuis plus de 5 minutes", {{"Days", "All"}, condition, {"Repeat"}, {"Global", "pushover", "La cuisine est allumée depuis 5 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 4}}) GEA.add(id["Halogenes_Ext"], 5*60, "Les halogènes extérieurs sont allumés depuis plus de 5 minutes",{{"Days", "All"}, condition, {"Repeat"}, {"Global", "pushover", "Les halogènes extérieurs sont allumés depuis 5 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 4}}) GEA.add(id["Lampe_Sdb"], 5*60, "La salle de bain est allumée depuis plus de 5 minutes", {{"Days", "All"}, condition, {"Repeat"}, {"Global", "pushover", "La salle de bain est allumée depuis 5 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 4}, {"turnOff",id["Lampe_Sdb"]}})-- GEA.add(id["Rgbw_Automatisme"], 5*60, "RGBW automatisme est allumée depuis plus de 5 minutes", {{"Days", "All"}, condition, {"Repeat"}, {"Global", "pushover", "RGBW automatisme est allumé depuis 5 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 4}}) GEA.add(id["Rgbw_Salon"], 5*60, "Le bandeau Led salon est allumée depuis plus de 5 minutes", {{"Days", "All"}, condition, {"Repeat"}, {"Global", "pushover", "Le bandeau Led salon est allumé depuis 5 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 4}}) GEA.add(id["Rgbw_Cuisine"], 5*60, "Le bandeau Led cuisine est allumée depuis plus de 5 minutes", {{"Days", "All"}, condition, {"Repeat"}, {"Global", "pushover", "Le bandeau Led cuisine est allumé depuis 5 minutes"}, {"VirtualDevice", id["Mv_Pushover"], 4}}) --Push calcul conso et prod. EccoDevice GEA.add(true, 1*60, "",{{"Time", "22:00", "22:01"},{"VirtualDevice", id["Mv_Ecodevice"], "17"}}) Modifié le 17 mai 2015 par Moicphil 3
jompa68 Posté(e) le 3 décembre 2014 Signaler Posté(e) le 3 décembre 2014 Function to compare lastseen with abscencetime. Create an variable, in my case "LastSeenJonny" then in your smartphone check device/scene add this code to set lastseen in unixtime. then function in GEA can compare if lastseens is more then for example 30minutes fibaro:setGlobal("LastSeenJonny",os.date(os.time())) Then put this in GEA local LastSeenJonny = 0+fibaro:getGlobal("LastSeenJonny"); -- == FUNCTIONS == -- -- AbsenceTime function isAbsence() local AbsenceTime = 30 --30 minutes local AbsenceTime = os.time() - (AbsenceTime * 60) fibaro:debug(AbsenceTime) if tonumber(LastSeenJonny) < AbsenceTime then fibaro:setGlobal("PresentState", "Away") local state = fibaro:getGlobalValue("PresentState") return true, state end return false end ------------------------ ABSENCE ------------------------------------ GEA.add({"Function", function() return isAbsence() end}, 30, "",{{"Days","Weekday"},{"Time", "06:00", "22:00"},{"Repeat"}}) GEA.add({"Global", "PresentState", "Away"}, -1, "#value#",{{"Days","Weekday"},{"Time", "06:00", "22:00"},{"Function", function() return isAbsence() end},{"Portable", 201},{"MaxTime", 1}}) 2
zozotte Posté(e) le 8 décembre 2014 Signaler Posté(e) le 8 décembre 2014 (modifié) Hello, ce qui tourne et fonctionne chez moi (pas tout car y'a du bazard ): --[[ %% autostart %% properties 5 value 13 value 82 value 8 value 19 value 63 value 50 value 52 value 12 value %% globals Mode_Maison Enfants Hifi Alarme Lum_Entree_Force Zib_Ouverture_R17 Notification --]] variables utilisées dans mon système: Mode_Maison = Eveil ou Sommeil ou Absence ou Vacances Alarme = 0 (éteint) ou 1 (armé) ou intrusion Conges = 0 ou 1 Lum_Entree_Auto = 0 ou 1 (déclenchement automatique) Lum_Entree_Force = 0 ou 1 (double click sur l'inter pour garder la lumiere tout le temps allumée) Lum_Salon_Auto = 0 ou 1 : le matin elle est à 0, puis elle passe à 0 quand les lumieres s'eteignent automatiquement ou si on se reveille et qu'il fait déjà jour et l'inverse le soir. c'est pour que le systeme n'eteigne le matin qu'une seule fois et donc si je rallume manuellement elle reste allumée !! VR_Salon_Auto = 0 ou 1: meme utilisation que les lumieres (pour différencier l'action manuelle de l'action automatique et pouvoir agir manuellement sur les VR, surtout en été avec l'ensoleillement) Notification = 0 ou Notification ou Danger Hifi = Off ou Audio ou Video ou TV ou Cinema ou Dashboard Mode_Saison = Hiver ou Ete ou PrintempsAutomne -- == CONDITIONS == -- Maison local estNotVacances = {"Global!", "Mode_Maison", "Vacances"} local estEveil = {"Global", "Mode_Maison", "Eveil"} local estSommeil = {"Global", "Mode_Maison", "Sommeil"} local estNotSommeil = {"Global!", "Mode_Maison", "Sommeil"} local estSommeilEnfants = {"Global", "Enfants", "Sommeil"} local estNotSommeilEnfants = {"Global!", "Enfants", "Sommeil"} -- Chauffage/climatisation local estHiver = {"Global", "Mode_Saison", "Hiver"} local estNotHiver = {"Global!", "Mode_Saison", "Hiver"} local estEte = {"Global", "Mode_Saison", "Ete"} -- Alerte local notification = {"Global", "Notification", "Notification"} local intrusion = {"Global", "Alarme", "Intrusion"} -- == DISSUASION INTRUSION == la maison s'affole local alarmeOn = {"Global", "Alarme", "1"} -- Mise en route de l'alarme apres 10mins absence ou vacances et arret - on eteint la lumiere et on ferme les volets avant action du mode eveil -- nb: arret de l'alarme avec double click mode maison cf scene Inter Entree GEA.add({"Global", "Mode_Maison", "Absence|Vacances"}, 10*60, "Information - Alarme enclenchée", {{"Global", "Alarme", "1"}}) GEA.add({{"Global", "Mode_Maison", "Eveil"}, intrusion}, -1, "Alarme - fin de l'intrusion !",{{"Global", "Alarme", "0"}, {"Global", "Notification", "0"}, {"Close",id["SALON_VR"],100},{"VirtualDevice", id["VD_LUM"], 1}}) -- detection d'intrusion: si quelqu'un ouvre une fenetre ou allume la lumiere hors entree ou garage GEA.add({id["CH2_OUV"], alarmeOn}, -1, "Alerte intrusion !!! Fenetre A ouverte - #date# #time#", {intrusion}) GEA.add({id["CH3_OUV"], alarmeOn}, -1, "Alerte intrusion !!! Fenetre O&J ouverte - #date# #time#", {intrusion}) GEA.add({{"Global", "Zib_Ouverture_R17", "1"}, alarmeOn}, -1, "Alerte intrusion !!! Fenetre Salle de Jeux ouverte - #date# #time#", {intrusion}) GEA.add({{"Value+", id["SALON_LUM_CANAPE"], 0}, alarmeOn}, -1, "Alerte intrusion !!! Lumiere salon allumée - #date# #time#", {intrusion}) GEA.add({{"Value+", id["SALON_LUM_REPAS"], 0}, alarmeOn}, -1, "Alerte intrusion !!! Lumiere salon allumée - #date# #time#", {intrusion}) GEA.add({{"Value+", id["SALON_LUM_CUISINE"], 0}, alarmeOn}, -1, "Alerte intrusion !!! Lumiere salon allumée - #date# #time#", {intrusion}) GEA.add({{"Value+", id["COULOIR_LUM"], 0}, alarmeOn}, -1, "Alerte intrusion !!! Lumiere couloir allumée - #date# #time#", {intrusion}) -- action en cas d'intrusion GEA.add(intrusion, -1, "", {{"Email",2},{"Global", "Notification", "Danger"}, {"Scenario", id["SCENE_INTRUS_LUM"]}, {"Scenario", id["SCENE_INTRUS_VR"]}}) SCENE_INTRUS_LUM: les lumieres de la maison clignotent tant que intrusion SCENE_INTRUS_VR: les VR de la maison s'ouvrent puis se ferment puis... tant que intrusion -- == MODE MAISON == -- Arret de l'alarme GEA.add( {{"Global", "Mode_Maison", "Eveil"}, alarmeOn}, -1, "", {{"Global", "Alarme", "0"}}) -- Déclenchement Eveil: lumieres repas on - VR salon on - LED meteo GEA.add( {"Global", "Mode_Maison", "Eveil"}, -1, "", {{"Time", "Sunset-30", "Sunrise+30"}, {"turnOn", id["SALON_LUM_REPAS"]}}) -- quand nuit - 20 mins GEA.add( {{"Global", "Mode_Maison", "Eveil"}, estNotHiver}, -1, "", {{"Open",id["SALON_VR"],100}}) GEA.add( {{"Global", "Mode_Maison", "Eveil"}, estHiver} , -1, "", {{"Time", "Sunrise-20", "Sunset+20"}, {"Open",id["SALON_VR"],100}, {"Global", "VR_Salon_Auto", "1"}}) -- quand jour - 20mins GEA.add( {"Global", "Mode_Maison", "Eveil"}, -1, "", {{"Global", "LED", "Meteo"}}) -- chauffage remis au mode précédent si modifié par GEA GEA.add( {{"Global", "Mode_Maison", "Eveil"}, {"Global!", "Chauf_Z1_History", "Nil"}, estHiver}, 30, "", {{"CopyGlobal", "Chauf_Z1_History", "Chauf_Z1_Mode"},{"Global", "Chauf_Z1_History", "Nil"}, {"VirtualDevice", id["VD_CHAUF_Z1"], 17}}) -- scheduler remis en mode normal apres vacances GEA.add( {{"Global", "Mode_Maison", "Eveil"}, {"Global", "scheduleGroup", "Vacances"}}, 30, "", {{"Global", "scheduleGroup", "Normal"}}) -- Déclenchement Sommeil: lumieres zone jour off - vr maison fermés - LED et hifi off GEA.add( {"Global", "Mode_Maison", "Sommeil"}, 30, "", {{"VirtualDevice", id["VD_LUM"], 2}}) GEA.add( {{"Global", "Mode_Maison", "Sommeil"}, estNotHiver}, 30, "", {{"Close",id["SALON_VR"],85}}) GEA.add( {{"Global", "Mode_Maison", "Sommeil"}, estHiver}, 30, "", {{"Close",id["SALON_VR"],100}}) GEA.add( {"Global", "Mode_Maison", "Sommeil"}, 30, "", {{"Global", "LED", "Off"}, {"VirtualDevice", id["VD_HIFI"], 3}}) -- Déclenchement Absence: lum all off + 1min - VR fermés 85%/100% - Led/hifi off GEA.add( {"Global", "Mode_Maison", "Absence"}, 60, "", {{"VirtualDevice", id["VD_LUM"], 1}}) GEA.add( {{"Global", "Mode_Maison", "Absence"}, estHiver} , 30, "", {{"Time", "Sunset+20", "Sunrise-20"}, {"Time", "21:50", "07:10"},{"Close",id["SALON_VR"],100}}) -- quand nuit -20mins GEA.add( {{"Global", "Mode_Maison", "Absence"}, estNotHiver} , 30, "", {{"Time", "Sunset+20", "Sunrise-20"}, {"Time", "21:50", "07:10"},{"Close",id["SALON_VR"],85}}) -- quand nuit -20mins ou entre 22h et 7h GEA.add( {"Global", "Mode_Maison", "Absence"}, 30, "", {{"Global", "LED", "Off"}, {"VirtualDevice", id["VD_HIFI"], 3}}) -- Déclenchement Vacances: lum all off + 1min - VR fermés 100% - Led/hifi off - chauffage vacances GEA.add({"Global", "Mode_Maison", "Vacances"}, 60, "", {{"VirtualDevice", id["VD_LUM"], 1}}) GEA.add( {"Global", "Mode_Maison", "Vacances"}, 30, "", {{"Close",id["SALON_VR"],100}}) GEA.add( {"Global", "Mode_Maison", "Vacances"}, 30, "", {{"Global", "LED", "Off"}, {"VirtualDevice", id["VD_HIFI"], 3}}) -- mode actuel du chauffage historisé et mode vacances (hors gel) déclenché GEA.add( {{"Global", "Mode_Maison", "Vacances"}, {"Global!", "Chauf_Z1_Mode", "Vacances"}, estHiver}, 30, "", {{"CopyGlobal", "Chauf_Z1_Mode", "Chauf_Z1_History"}, {"VirtualDevice", id["VD_CHAUF_Z1"], 4}}) -- scheduler: mode vacances activé GEA.add( {"Global", "Mode_Maison", "Vacances"}, 30, "", {{"Global", "scheduleGroup", "Vacances"}}) -- avertissement fenetre ouverte absence ou vacances GEA.add( {{"Global", "Mode_Maison", "Absence|Vacances"}, id["CH2_OUV"]}, -1, "Attention - La fenetre de Aà¯la est ouverte !", {{"Scenario", id["SCENE_OUV"]}}) GEA.add( {{"Global", "Mode_Maison", "Absence|Vacances"}, id["CH3_OUV"]}, -1, "Attention - La fenetre de Oscar & Jasmine est ouverte !", {{"Scenario", id["SCENE_OUV"]}}) GEA.add( {{"Global", "Mode_Maison", "Absence|Vacances"}, {"Global", "Zib_Ouverture_R17", "1"}}, -1, "Attention - La fenetre de la Salle de Jeux est ouverte !", {{"Scenario", id["SCENE_OUV"]}}) -- Congés:scheduler en mode congés ou normal GEA.add( {{"Global", "Conges", "1"}, {"Global", "scheduleGroup", "Normal"}}, 30, "", {{"Global", "scheduleGroup", "Conges"}}) GEA.add( {{"Global", "Conges", "0"}, {"Global", "scheduleGroup", "Conges"}}, 30, "", {{"Global", "scheduleGroup", "Normal"}}) Le chauffage est géré par un module virtuel par zone (1 seule pour le moment) et j'ai configuré le scheduler pour avoir comme groupes: normal, congés, vacances ou autre la variable Mode_Maison est gérée par un interrupteur et le SceneActivation + un VD -- Cinema: extinction des lumieres + fermeture 90% VR si pas fermés (pour eviter mauvaises manipulations) puis allumage de la lumiere salon apres la seance de cinema et ouverture VR GEA.add( {"Global", "Hifi", "Cinema"}, 2*60, "", {{"VirtualDevice", id["VD_LUM"], 5}, {"Close",id["SALON_VR"],85}}) local onCanape = GEA.add( {"Global!", "Hifi", "Cinema"}, -1, "", {{"Time", "Sunset-30", "Sunrise+30"}, {"turnOn", id["SALON_LUM_CANAPE"]}, {"MaxTime", 1}}) GEA.add({"Global", "Hifi", "Cinema"}, 30, "", {{"RestartTask", onCanape}}) local openVRNotHiver = GEA.add( {{"Global!", "Hifi", "Cinema"}, estNotHiver}, -1, "", {{"VirtualDevice", id["VD_VR"], 6}, {"MaxTime", 1}}) local openVRHiver = GEA.add( {{"Global!", "Hifi", "Cinema"}, estHiver}, -1, "", {{"Time", "Sunrise-20", "Sunset+20"}, {"VirtualDevice", id["VD_VR"], 6}, {"MaxTime", 1}}) GEA.add({"Global", "Hifi", "Cinema", estHiver}, 30, "", {{"RestartTask", openVRHiver}}) GEA.add({"Global", "Hifi", "Cinema", estNotHiver}, 30, "", {{"RestartTask", openVRNotHiver}}) -- == MODE ENFANTS == -- Passer les enfants en mode sommeil si oublié et reset sieste et sommeil GEA.add( {{"Global", "Mode_Maison", "Sommeil"}, {"Global!", "Enfants", "Sommeil"}}, 60, "Information - Oublié de déclencher le Sommeil Enfant", {{"Global", "Enfants", "Sommeil"}}) GEA.add( {"Global", "Enfants", "Sommeil"}, 60, "Oublié d'enlever le Sommeil Enfant", {{"Time", "10:00", "10:05"}, {"Global", "Enfants", "Eveil"}}) GEA.add( {"Global", "Enfants", "Sieste"}, 60, "Oublié d'enlever la Sieste Enfant", {{"Time", "19:00", "19:05"}, {"Global", "Enfants", "Eveil"}}) -- Declenchement Sommeil: veilleuse à 10% - ZZZ fermeture des VR partiel ou full + extinction lumieres GEA.add( {"Global", "Enfants", "Sommeil"}, -1, "", {{"Value", id["COULOIR_LUM"], 10}}) -- Declenchement Eveil: ouverture des VR et lumiere couloir passe à 100%, puis extinction apres 5 minutes GEA.add( {"Global", "Enfants", "Eveil"}, -1, "", {{"Value", id["COULOIR_LUM"], 100}}) il faut que je rajoute des modules pour les VR des enfants et complete les actions -- == LUMIERES == -- allumage jour/nuit manuel et forcé GEA.add( {id["ENTREE_LUM"], estSommeil}, -1, "", {{"Value", id["ENTREE_LUM"], 10}}) -- sommeil => allumer à 10% GEA.add( {id["ENTREE_LUM"], estNotSommeil}, -1, "", {{"Value", id["ENTREE_LUM"], 100}}) -- eveil/absence/vacances => allumer à 100% GEA.add( {{"Global", "Lum_Entree_Force", "1"}, estSommeil}, -1, "", {{"Value", id["ENTREE_LUM"], 10}}) -- sommeil => allumer à 10% GEA.add( {{"Global", "Lum_Entree_Force", "1"}, estNotSommeil}, -1, "", {{"Value", id["ENTREE_LUM"], 100}}) -- eveil/absence/vacances => allumer à 100% -- éteindre au bout de 10 minutes si pas forcé manuel GEA.add( {id["ENTREE_LUM"], {"Global", "Lum_Entree_Force", "0"}}, 10*60, "", {{"turnOff"}}) -- reset marche forcée: lumiere eteinte GEA.add({id["ENTREE_LUM"],{"Global", "Lum_Entree_Force", "1"}} , 30, "", {{"Inverse"}, {"Global", "Lum_Entree_Force", "0"}}) -- salon/cuisine : -- extinction des lumieres zone jour: au lever du soleil + 30 mins si eveil et pas encore éteint auto GEA.add( {"Global", "Lum_Salon_Auto", "0"}, 60, "", {{"Time", "Sunrise+30", "Sunrise+40"}, {"VirtualDevice", id["VD_LUM"], 2},{"Global", "Lum_Salon_Auto", "1"}}) -- allumage des lumières: au coucher du soleil - 20 mins si eveil, et pas encore allumé auto et pas cinema - sinon juste reset var GEA.add( {{"Global", "Lum_Salon_Auto", "1"}, {"Global!", "Hifi", "Cinema"}, estEveil}, 60, "", {{"Time", "Sunset-30", "Sunset-20"}, {"turnOn", id["SALON_LUM_REPAS"]},{"Global", "Lum_Salon_Auto", "0"}}) GEA.add( {{"Global", "Lum_Salon_Auto", "1"}, {"Global", "Hifi", "Cinema"}}, 60, "Information - Séance Cinema, pas d'allumage automatique des lumieres - #date# #time#", {{"Time", "Sunset-30", "Sunset-20"}, {"Global", "Lum_Salon_Auto", "0"}}) -- reset var GEA.add( {{"Global", "Lum_Salon_Auto", "1"}, {"Global!", "Mode_Maison", "Eveil"}}, 60, "Information - Pas en mode éveil, pas d'allumage automatique des lumieres - #date# #time#", {{"Time", "Sunset-30", "Sunset-20"}, {"Global", "Lum_Salon_Auto", "0"}}) -- reset var -- reset Lum_Salon_Auto: si pas la bonne valeur alors la nuit repasse a 0 et le midi a 1 + notif GEA.add( {"Global!", "Lum_Salon_Auto", "0"}, 60, "Erreur - Lum_Salon_Auto valeur #value# au lieu de 0 - date# #time#", {{"Time", "00:30", "00:40"}, {"Global", "Lum_Salon_Auto", "0"}}) GEA.add( {"Global!", "Lum_Salon_Auto", "1"}, 60, "Erreur - Lum_Salon_Auto valeur #value# au lieu de 1 - #date# #time#", {{"Time", "12:30", "12:40"}, {"Global", "Lum_Salon_Auto", "1"}}) -- LED: si extinction manuelle -> var LED = Off GEA.add( {id["SALON_RGB"], {"Global!", "LED", "Off"}}, -1, "", {{"Inverse"},{"Global", "LED", "Off"}}) -- veilleuse: 100% le jour et 10% quand sommeil_enfants - extinction le jour quand allumé depuis 10 minutes GEA.add( {id["COULOIR_LUM"], estSommeilEnfants}, -1, "", {{"Value", 10}}) GEA.add( {id["COULOIR_LUM"], estNotSommeilEnfants}, -1, "", {{"Value", 100}}) GEA.add( {id["COULOIR_LUM"], estNotSommeilEnfants}, 10*60, "", {{"turnOff", id["COULOIR_LUM"]}}) -- notifications: lumiere allumée dans le salon depuis 15 mins GEA.add( {id["SALON_LUM_CANAPE"]}, 15*60, "Notification - Il fait jour mais la lumière du salon est allumée - #date# #time#", {{"Time", "Sunrise+40", "Sunset-30"}, notification} ) GEA.add( {id["SALON_LUM_REPAS"]}, 15*60, "Notification - Il fait jour mais la lumière du repas est allumée - #date# #time#", {{"Time", "Sunrise+40", "Sunset-30"}, notification} ) -- sapin noel: GEA.add({"Global", "Mode_Maison", "Eveil"}, 30, "", {{"Time", "06:00", "08:30"}, {"Time", "16:00", "20:00"}, {"Days", "Weekday"}, {"VirtualDevice", id["VD_R10"], 1}}) GEA.add({"Global", "Mode_Maison", "Eveil"}, 30, "", {{"Time", "08:31", "08:35"}, {"Time", "20:01", "20:05"}, {"Days", "Weekday"}, {"VirtualDevice", id["VD_R10"], 2}}) GEA.add({"Global", "Mode_Maison", "Eveil"}, 30, "", {{"Time", "06:00", "20:00"}, {"Days", "Weekend"}, {"VirtualDevice", id["VD_R10"], 1}}) GEA.add({"Global", "Mode_Maison", "Eveil"}, 30, "", {{"Time", "20:01", "20:05"}, {"Days", "Weekend"}, {"VirtualDevice", id["VD_R10"], 2}}) GEA.add({"Global", "Mode_Maison", "Absence|Sommeil|Vacances"}, 30, "", {{"VirtualDevice", id["VD_R10"], 2}}) -- == CONFORT THERMIQUE == -- si absent depuis plus d'1h, passer le chauffage en mode Eco en hiver si mode actuel = auto ou confort GEA.add( {{"Global", "Mode_Maison", "Absence"},estHiver,{"Global", "Chauf_Z1_Mode", "Auto|Confort"}}, 60*60, "", {{"CopyGlobal", "Chauf_Z1_Mode", "Chauf_Z1_History"}, {"VirtualDevice", id["VD_CHAUF_Z1"], 6}}) -- si fenetre ouverte on passe le chauffage en off puis on revient au mode précédent local fenetreAUTO = GEA.add( {"Global", "Zib_Ouverture_R17", "0"}, 30, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 4}, {"MaxTime", 1}}) GEA.add( {{"Global", "Zib_Ouverture_R17", "1"}, {"Global", "Chauffage", "AUTO"}}, 30, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 6}, {"RestartTask", fenetreAUTO}}) local fenetreCONF = GEA.add( {"Global", "Zib_Ouverture_R17", "0"}, 30, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 7}, {"MaxTime", 1}}) GEA.add( {{"Global", "Zib_Ouverture_R17", "1"}, {"Global", "Chauffage", "CONF"}}, 30, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 6}, {"RestartTask", fenetreCONF}}) local fenetreECO = GEA.add( {"Global", "Zib_Ouverture_R17", "0"}, 30, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 8}, {"MaxTime", 1}}) GEA.add( {{"Global", "Zib_Ouverture_R17", "1"}, {"Global", "Chauffage", "ECO"}}, 30, "", {{"VirtualDevice", id["VD_CHAUF_SDJ"], 6}, {"RestartTask", fenetreECO}}) -- == VOLETS ROULANTS == -- ETE : fermer partiel les VR a la plage horaire définie si température extérieure > 24 degré et temps clair depuis 15 mins sauf si vacances -- mais les reouvrir si temp < 22 ou temps plus clair pendant 15 mins et enfin à 16h les réouvrir et mettre la variable a 0 -- la condition VR_xxx_Auto + la position des VR permet de vérifier si manuel ou automatique -- salon: de 12h à 16h local hourAutoOn = {"Time","12:00","16:00"} local hourAutoFin = {"Time","16:01","16:10"} GEA.add({{"Value+", id["TERRASSE_TEMP"], 24}, {"Global", "VR_Salon_Auto", "0"}, {"Value+", id["SALON_VR"], 50} , estNotVacances, estEte}, 15*60, "", {hourAutoOn, {"Group", 2}}) -- si temp > 24 GEA.add({{"Property", 3, "weatherConditionConverted", "clear"}, {"Global", "VR_Salon_Auto", "0"}, {"Value+", id["SALON_VR"], 50} , estNotVacances, estEte}, 15*60, "", {hourAutoOn, {"Group", 2}}) -- si temps clair GEA.add({"Group", 2}, 30, "", {{"Close",id["SALON_VR"],40}, {"Global", "VR_Salon_Auto", "1"}}) -- alors on baisse les volets palier 1 et on change la variable GEA.add({"Group", 2}, 210, "", {{"Close",id["SALON_VR"],85}, {"Global", "VR_Salon_Auto", "1"}}) -- 3 minutes après, palier 2 GEA.add({{"Value-", id["TERRASSE_TEMP"], 22},{"Global", "VR_Salon_Auto", "1"}, {"Value-", id["SALON_VR"], 50}, estEte}, 15*60, "", {hourAutoOn, {"Open",id["SALON_VR"],100}, {"Global", "VR_Salon_Auto", "0"}}) GEA.add({{"Property!", 3, "weatherConditionConverted", "clear"},{"Global", "VR_Salon_Auto", "1"}, {"Value-", id["SALON_VR"], 50}, estEte}, 15*60, "", {hourAutoOn, {"Open",id["SALON_VR"],100}, {"Global", "VR_Salon_Auto", "0"}}) GEA.add({{"Global", "VR_Salon_Auto", "1"}, estEte}, 60, "", {hourAutoFin, {"Open",id["SALON_VR"],100}, {"Global", "VR_Salon_Auto", "0"}}) -- HIVER: lever du soleil -20mins : on ouvre les volets si eveil / coucher du soleil +20mins, fermer les volets 100% -- salon: ouverture seulement si eveil parents variable GEA.add({{"Global", "VR_Salon_Auto", "0"}, estHiver, estEveil}, 60, "", {{"Time", "Sunrise-20", "Sunrise-10"},{"Open",id["SALON_VR"],100}, {"Global", "VR_Salon_Auto", "1"}}) GEA.add({{"Global", "VR_Salon_Auto", "1"}, estHiver, estNotVacances}, 60, "", {{"Time", "Sunset+20", "Sunset+30"}, {"Close",id["SALON_VR"],40}}) GEA.add({{"Global", "VR_Salon_Auto", "1"}, estHiver, estNotVacances}, 240, "", {{"Time", "Sunset+20", "Sunset+35"}, {"Close",id["SALON_VR"],100}, {"Global", "VR_Salon_Auto", "0"}}) -- reset des variables VR_xxx_Auto: en Ete => 0 la nuit - en hiver => 2 la nuit et 1 le midi avec notif si pas bon GEA.add( {{"Global!", "VR_Salon_Auto", "0"}, estHiver}, 60, "Erreur - VR_Salon_Auto valeur #value# au lieu de 0 - #date# #time#", {{"Time", "00:30", "00:40"}, {"Global", "VR_Salon_Auto", "0"}}) GEA.add( {{"Global!", "VR_Salon_Auto", "1"}, estHiver}, 60, "Erreur - VR_Salon_Auto valeur #value# au lieu de 1 - #date# #time#", {{"Time", "12:30", "12:40"}, {"Global", "VR_Salon_Auto", "1"}}) GEA.add( {{"Global!", "VR_Salon_Auto", "0"}, estEte}, 60, "Erreur - VR_Salon_Auto valeur #value# au lieu de 0 #date# #time#", {{"Time", "00:30", "00:40"}, {"Global", "VR_Salon_Auto", "0"}}) -- si absence, tout fermer entre 22h et 7h 100% GEA.add({"Global", "Mode_Maison", "Absence"}, 60, "", {{"Time", "21:50", "23:59"}, {"Time", "00:00", "07:10"},{"Close",id["SALON_VR"],100}}) -- == NOTIFICATIONS == -- Information lumineuse notification/danger + arret de l'indication notification apres 10 minutes + off on reprend le mode LED normal GEA.add( notification, -1, "", {{"RGB", id["SALON_RGB"], 255, 0, 255, 0}}) GEA.add( notification, 10*60, "", {{"Global", "Notification", "0"}}) GEA.add( {"Global", "Notification", "Danger"}, -1, "", {{"Program", id["SALON_RGB"], 5}}) -- avertissement danger GEA.add( {"Global", "Notification", "0"}, -1, "", {{"Scenario", id["SCENE_LED"]}}) -- Off: si triple click lumiere entrée cf Scene Inter Entree -- Informations pour vérification envoyées toutes les heures: Luminosité entrée et terrasse GEA.add({{"Value+", id["ENTREE_LUX"], 0}, {"Value+", id["TERRASSE_LUX"], 0},{"Value+", id["TERRASSE_TEMP"], 0}}, 60*60, "Information - Entrée: #value[1]# Lux - Terrasse: #value[2]# Lux et #value[3]# °C", {{"Email",2},{"Portable",0}, {"Repeat"}}) -- Danger: si fenetre piscine ouverte plus de 30 secondes local closeSdJ = GEA.add({{"Global", "Zib_Ouverture_R17", "0"}, {"Global", "Notification", "Danger"}}, 30, "", {{"Global", "Notification", "0"}, {"MaxTime",1}}) GEA.add({{"Global", "Zib_Ouverture_R17", "1"}}, 60, "Danger - Fenètre de la Salle de Jeux ouverte", {{"Global", "Notification", "Danger"}, {"RestartTask", closeSdJ}}) -- Notification fenetres ouvertes + de 10 minutes en hiver GEA.add({id["CH2_OUV"], estHiver, estEveil}, 10*60, "Hiver/Ouverture - Fenètre de A ouverte depuis 10 minutes", {notification}) GEA.add({id["CH3_OUV"], estHiver, estEveil}, 10*60, "Hiver/Ouverture - Fenètre de O&J ouverte depuis 10 minutes", {notification}) GEA.add({{"Global", "Zib_Ouverture_R17", "1"}, estHiver, estEveil}, 10*60, "Hiver/Ouverture - Fenètre de la Salle de Jeux ouverte depuis 10 minutes", {notification}) -- Notification si température chambres < 16 la nuit pendant plus de 60 minutes - repeat --GEA.add({{"Value-", id["CH2_TEMP"], 16}, estSommeilEnfants}, 60*60, "Information - Il fait froid dans la chambre de A: #value# °C - #date# #time#", {{"Repeat"}}) --GEA.add({{"Value-", id["CH3_TEMP"], 16}, estSommeilEnfants }, 60*60, "Information - Il fait froid dans la chambre de O&J: #value# °C - #date# #time#", {{"Repeat"}}) GEA.add({{"Global-", "Zib_Th_R13", 22}, {"Value-", id["CH2_TEMP"], 22},{"Value-", id["CH3_TEMP"], 22}, {"Value-", id["ENTREE_TEMP"], 22}} , 60*60, "Information - Oregon: #value[1]# °C - Chambre A: #value[2]# °C - Chambre O&J: #value[3]# °C - Chambre P&Z: #value[4]# °C- #date# #time#", {{"Email",2},{"Portable",0},{"Repeat"}}) -- Notification si température extérieure inférieure à 0 pendant 60 minutes GEA.add({{"Global-", "Zib_Th_R15", 0}}, 60*60, "Information - Il a gelé dehors #value# °C - #date# #time#", {{"Repeat"}}) PS: j'ai des modules oregon et chacon gérés via ma Zibase avec des variables globales -- == ELECTRICITE / EAU == -- notifications panne d'electricité electricité envoyées par email et notification / information si retour local panneOff = GEA.add({"Global+", "Zib_NRJ_R1v2", 0.01}, 60, "Fin d'alerte - Fin de panne electrique ! - #date# #time#", {{"Email",2}, {"MaxTime", 1}}) GEA.add({"Global-", "Zib_NRJ_R1v2", 0.01}, 5*60, "Alerte - Panne électrique depuis #duration# - #date# #time#", {{"Email",2},{"Repeat"}}) GEA.add({"Global-", "Zib_NRJ_R1v2", 0.01}, 5*60, "", {{"RestartTask", panneOff}}) -- Congélateur -- si module dead depuis 1 minute -> wakeup puis au bout de 5 minutes envoyer notification / message si retour GEA.add({"Dead", id["BUANDERIE_CONGELO"]}, 60, "", {{"WakeUp", id["BUANDERIE_CONGELO"]}, {"Repeat"}}) GEA.add({"Dead", id["BUANDERIE_CONGELO"]}, 5*60, "Alerte - Congélateur ne répond pas depuis #duration# - #date# #time#" , {{"Email",2}, notification, {"Repeat"}}) -- si a 0 envoyer ordre d'allumage au bout de 20 minutes et envoyer notification apres 1h / message si retour GEA.add({"Sensor", id["BUANDERIE_CONGELO"], 0}, 60*60, "Congelateur turnOn", {{"turnOn", id["BUANDERIE_CONGELO"]}, {"Repeat"}}) GEA.add({"Sensor", id["BUANDERIE_CONGELO"], 0}, 90*60, "Alerte - Congélateur ne consomme plus d electricité depuis #duration# - #date# #time# ", {{"Email",2},notification, {"Repeat"}}) local consoCongelo = GEA.add({"Sensor+", id["BUANDERIE_CONGELO"], 0}, 60, "Fin d'aleter - Congélateur consomme à nouveau ! - #date# #time#", {{"Email",2}, {"MaxTime", 1}}) GEA.add({"Sensor", id["BUANDERIE_CONGELO"], 0}, 90*60, "", {{"RestartTask", consoCongelo}}) -- == REINITIALISATION DES TASKS A CHAQUE NOUVEL ENREGISTREMENT == GEA.add(true, 30, "", {{"StopTask", closeSdJ}, {"StopTask", onCanape},{"StopTask", openVRNotHiver},{"StopTask", openVRHiver},{"StopTask", panneOff}, {"StopTask", consoCongelo}, {"StopTask", fenetreAUTO}, {"StopTask", fenetreCONF}, {"StopTask", fenetreECO}}) Et voila, en esperant que ca puisse aider ! Modifié le 11 décembre 2014 par Yohan 3
sebcbien Posté(e) le 19 décembre 2014 Auteur Signaler Posté(e) le 19 décembre 2014 gestion lampe avec détecteur de mouvement (version améliorée) Il y a deux modes de fonctionnement: 1) La lampe s'allume automatiquement au coucher et lever du soleil (+ et - 45 min) 2) le reste du temps, le détecteur servira à prolonger la période d'extinction tant qu'il y a du mouvement mais l'allumage est manuel. Très bon WAF !. -------------------SAM------------------------ -- période début de nuit et matin local PeriodeSunSet = {"Time", "Sunset-45", "Sunset+45"} local PeriodeSunRise = {"Time", "06:00", "Sunrise+45"} -- si PeriodeSunSet ou PeriodeSunRise, allumer lampe automatiquement si moins de 64% GEA.add({id["DETECTEUR_SAM"],{"Value-", id["LAMPE_SAM"],64}}, -1, "",{PeriodeSunSet,PeriodeSunRise,{"Value", id["LAMPE_SAM"], 65}}) -- Hors Periodes sunset & sunrise, allumage manuel -- Si déjà Allumé, Re-Allumage à 65% dès que détection mouvement sauf si module déjà a + de 64% (économie zwave) GEA.add({id["DETECTEUR_SAM"],{"Value+", id["LAMPE_SAM"], 1},{"Value-", id["LAMPE_SAM"],64}}, -1, "",{{"Value", id["LAMPE_SAM"], 65}}) -- Après 10min on dimme la lampe à 34% si pas de mouvement local malampesam = GEA.add({"Value+", id["LAMPE_SAM"],59}, 10*60, "",{{"Value", id["LAMPE_SAM"], 34},{"Repeat"}}) -- Après 3 min on met la lampe à 65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 local malampesamdim = GEA.add({{"Value-", id["LAMPE_SAM"],35},{"Value+", id["LAMPE_SAM"], 1}}, 3*60,"",{{"Value", id["LAMPE_SAM"], 65},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) GEA.add({id["DETECTEUR_SAM"],{"Value+", id["LAMPE_SAM"], 1}}, -1, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim}})
sebcbien Posté(e) le 19 décembre 2014 Auteur Signaler Posté(e) le 19 décembre 2014 Gestion porte garage avec une seule commande (le même bouton ouvre et ferme la porte) Gestion des états en n'ayant qu'une seule information d'état (quand la porte est fermée) Gère les états inhabituels comme une commande de fermeture qui ouvrirait la porte au lieu de la fermer, après XX secondes, va re-envoyer l'ordre pour envoyer la porte dans l'autre sens et vérifier si pas en dead node. local estClosed = {"Global!", "Porte_Garage", "Not_Closed"}local estNot_Closed = {"Global", "Porte_Garage", "Not_Closed"}--------------------GARAGE----------------------- Le scénario enverra un push toutes les 5mn 4X et puis toutes les 30 min tant que la porte sera ouverte GEA.add( id["DETECTEUR_PORTE_GARAGE"], 5*60, "La porte du garage est ouverte depuis plus de #duration# à#time#", {{"MaxTime", 8},{"Repeat"}}) GEA.add( id["DETECTEUR_PORTE_GARAGE"], 30*60, "La porte du garage est ouverte depuis plus de #duration# à#time#", {{"Repeat"}}) -- Msg àla fermeture du garage GEA.add( id["DETECTEUR_PORTE_GARAGE"], -1, "La porte du garage a été fermée à#time#", {{"Global", "Porte_Garage", "Closed"},{"Global", "Porte_Gar_Action", "En_Attente"},{"Inverse"}})-- Avertissement push si la porte du garage s'ouvre àdes heures non inappropriée GEA.add( id["DETECTEUR_PORTE_GARAGE"], -1, "Ouverture porte du garage à#time#", {{"Global", "Porte_Garage", "Not_Closed"},{"Global", "Porte_Gar_Action", "En_Attente"}}) -- Si demande Actionner, then push, actionne remote et reset global àen_attente GEA.add({"Global", "Porte_Gar_Action", "Actionner"}, -1, "Demande Action Porte Garage à#time#", {{"turnOn",id["REMOTE_GARAGE"]},{"Global", "Porte_Gar_Action", "En_Attente"}}) -- Si demande d'ouverture et porte fermée, then push, ouvre porte et reset global àen_attente GEA.add({{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estClosed}, -1, "Demande Ouverture Porte Garage à#time#", {{"turnOn",id["REMOTE_GARAGE"]},{"Global", "Porte_Gar_Action", "En_Attente"}}) -- Si demande d'ouverture et porte Ouverte, then push, ouvre porte et reset global àen_attente GEA.add({{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estNot_Closed}, -1, "Demande Ouverture Inutile à#time#", {{"Global", "Porte_Gar_Action", "En_Attente"}})-- Si demande de fermeture et porte fermée, then reset global àen_attente GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"}, estClosed}, -1, "Demande Fermeture Inutile", {{"Global", "Porte_Gar_Action", "En_Attente"}}) -- Si demande de fermeture et porte non fermée (position inconnue), then push, ferme porte GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"}, estNot_Closed}, -1, "Demande Fermeture Porte Garage à#time#", {{"turnOn",id["REMOTE_GARAGE"]}}) -- si pas fermé après 30 sec, on relance GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"}, estNot_Closed}, 35, "Fermeture ratée ré-essai à#time#", {{"WakeUp", id["REMOTE_GARAGE"]},{"Function", function() fibaro:sleep(1000) end},{"turnOn",id["REMOTE_GARAGE"]},{"Repeat"}}) --GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture"},{"Value", id["DETECTEUR_PORTE_GARAGE"], 1}}, -1, "Demande Fermeture Porte Garage GEA à#time#", {{"turnOn",id["REMOTE_GARAGE"]}})---------------------
PITP2 Posté(e) le 29 décembre 2014 Signaler Posté(e) le 29 décembre 2014 A mon tour de publier , rien de bien nouveau mais vu que je consulte régulièrement vos configs pour m'aider je me dis que plus on est de fou moins yaura de galères --[[ %% autostart %% properties 15 value 372 value 141 value 6 value 9 value 219 value 222 value 21 value 27 value 61 value 191 sceneActivation 285 sceneActivation %% globals --]] -- [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 = {42, 20, 216} local id = { PRISE_SAPIN = 40, PRISE_TV = 372, PRISE_CONSOLE = 232, PRISE_CAISSON = 231, PRISE_BLUERAY = 229, PRISE_AMPLI = 230, LUMIERE_TV = 6, LUMIERE_CHEMINEE = 9, LUMIERE_PALIER_CAVE = 27, LUMIERE_EXT = 239, LUMIERE_ESCALIER_RGBW = 61, CPCUISINE = 15, CP_SALON = 141, CP_EXT = 219, CP_PALIER_CAVE = 222, OP_ENTREE = 21, TELCO_SALON = 191, TELCO_ENTREE = 285 } function TtsTempCuisine() local ValeurTemp = fibaro:getGlobalValue ('TempEnOVeranda') fibaro:debug(ValeurTemp) local degre = string.gsub(ValeurTemp, '[,]' , ' degret ') degre = string.gsub(degre, '[.]' , ' degret ') local notification = "Il fait " .. degre .. " dans la verandaaa"; fibaro:setGlobal("SonosTTS", "lng=fr|dr=auto|vol=50|txt="..notification..". . .|"); end -- === Escalier === -- -- luminotherapie => variation des couleurs du Bleu (le matin) au Rouge (le soir) GEA.add({"Sensor+", id["LUMIERE_ESCALIER_RGBW"], 1}, 1*5, "", {{"Days", "All"}, {"Time", "20:01", "05:00"}, {"RGB", id["LUMIERE_ESCALIER_RGBW"], 255, 0, 0, 100}}) GEA.add({"Sensor+", id["LUMIERE_ESCALIER_RGBW"], 1}, 1*5, "", {{"Days", "All"}, {"Time", "05:01", "10:00"}, {"RGB", id["LUMIERE_ESCALIER_RGBW"], 0, 0, 255, 100}}) GEA.add({"Sensor+", id["LUMIERE_ESCALIER_RGBW"], 1}, 1*5, "", {{"Days", "All"}, {"Time", "10:01", "15:00"}, {"RGB", id["LUMIERE_ESCALIER_RGBW"], 0, 124, 255, 100}}) GEA.add({"Sensor+", id["LUMIERE_ESCALIER_RGBW"], 1}, 1*5, "", {{"Days", "All"}, {"Time", "15:01", "20:00"}, {"RGB", id["LUMIERE_ESCALIER_RGBW"], 255, 124, 0, 100}}) -- === Salon == -- -- veille automatique Multimedia local veillemultimedia = GEA.add({"Sensor-", id["PRISE_TV"], 50}, 3*60, "Consommation #value# inférieur à 50W depuis 3 minutes", {{"turnOff", id["PRISE_TV"]},{"turnOff", id["PRISE_CAISSON"]},{"turnOff", id["PRISE_BLUERAY"]},{"turnOff", id["PRISE_AMPLI"]},{"turnOff", id["PRISE_CONSOLE"]}}) -- Appui court sur le bouton 2 de la telco et je relance l'extinction auto -- Appui long sur le bouton 2 de la telco je stoppe l'extinction auto GEA.add({"SceneActivation", id["TELCO_SALON"], 4}, -1, "", {{"StopTask", veillemultimedia}, {"turnOn", id["LUMIERE_TV"]}, {"Function", function() fibaro:sleep(1000) end}, {"turnOff", id["LUMIERE_TV"]}}) GEA.add({"SceneActivation", id["TELCO_SALON"], 3}, -1, "", {{"RestartTask", veillemultimedia}, {"turnOn", id["PRISE_TV"]}, {"turnOn", id["PRISE_AMPLI"]}, {"turnOn", id["PRISE_BLUERAY"]}, {"turnOn", id["PRISE_CONSOLE"]}, {"turnOn", id["PRISE_CAISSON"]} , {"turnOn", id["LUMIERE_TV"]}, {"Function", function() fibaro:sleep(1000) end}, {"turnOff", id["LUMIERE_TV"]}}) -- Gestion des lumières d'ambiance du salon local tvEteinte = {"If", {{"Sensor-", id["PRISE_TV"], 50}}} local lumieretvEteinte = {"If", {{"Value-", id["LUMIERE_TV"], 1}}} local lumierechemineeEteinte = {"If", {{"Value-", id["LUMIERE_CHEMINEE"], 1}}} -- Telecommande Salon appui court bouton 1 Allume ou etient lumiere ambiance tv GEA.add({"SceneActivation", id["TELCO_SALON"], 1}, -1, "", {{"turnOn", id["LUMIERE_TV"]}, lumieretvEteinte}) GEA.add({"SceneActivation", id["TELCO_SALON"], 1}, -1, "", {{"turnOff", id["LUMIERE_TV"]}}) -- Telecommande Salon appui long bouton 1 Allume ou etient lumiere ambiance cheminee GEA.add({"SceneActivation", id["TELCO_SALON"], 2}, -1, "", {{"turnOn", id["LUMIERE_CHEMINEE"]}, lumierechemineeEteinte}) GEA.add({"SceneActivation", id["TELCO_SALON"], 2}, -1, "", {{"turnOff", id["LUMIERE_CHEMINEE"]}}) -- Lumières d'ambiance du salon ON sur détection de présence GEA.add( id["CP_SALON"], -1, "", {{"turnOn", id["LUMIERE_TV"]}, lumieretvEteinte, {"Time", "Sunset", "Sunrise"}}) GEA.add( id["CP_SALON"], -1, "", {{"turnOn", id["LUMIERE_CHEMINEE"]}, lumierechemineeEteinte, {"Time", "Sunset", "Sunrise"}}) -- Eteindre la lumière après 5 minutes SI la TV est éteinte local eteindreLumieretv = GEA.add(id["LUMIERE_TV"], 10*60, "", {{"turnOff",id["LUMIERE_TV"]}, tvEteinte ,{"Repeat"}}) local eteindreLumierecheminee = GEA.add(id["LUMIERE_CHEMINEE"], 10*60, "", {{"turnOff",id["LUMIERE_CHEMINEE"]}, tvEteinte, {"Repeat"}}) -- On redémarre le timer des 5 minutes GEA.add( id["CP_SALON"], -1, "", {{"RestartTask", eteindreLumieretv}}) GEA.add( id["CP_SALON"], -1, "", {{"RestartTask", eteindreLumierecheminee}}) -- Gestion Sapin de Noel GEA.add(true, 1*30, "",{{"Days", "Weekday"}, {"Time", "06:10", "06:12"}, {"turnOn",id["PRISE_SAPIN"]}}) GEA.add(true, 1*30, "",{{"Days", "Weekday"}, {"Time", "07:30", "07:32"}, {"turnOff",id["PRISE_SAPIN"]}}) GEA.add(true, 1*30, "",{{"Days", "Weekday"}, {"Time", "18:00", "18:02"}, {"turnOn",id["PRISE_SAPIN"]}}) GEA.add(true, 1*30, "",{{"Days", "Weekday"}, {"Time", "22:00", "22:02"}, {"turnOff",id["PRISE_SAPIN"]}}) GEA.add(true, 1*30, "",{{"Days", "Weekend"}, {"Time", "09:00", "09:02"}, {"turnOn",id["PRISE_SAPIN"]}}) GEA.add(true, 1*30, "",{{"Days", "Weekend"}, {"Time", "23:00", "23:02"}, {"turnOff",id["PRISE_SAPIN"]}}) -- === Cuisine == -- GEA.add(id["CPCUISINE"], -1, "TtsTempCuisine", {{"Time", "09:00", "22:00"}, {"Global", "JourNuit", "jour"}, {"Function", function() TtsTempCuisine() end}}) -- === Exterieur == -- -- Gestion de l'éclairage exterieur -- Sur détection du capteur de mouvement exterieur ou ouverture de la porte d'entree GEA.add(id["CP_EXT"], -1, "", {{"turnOn", id["LUMIERE_EXT"]}, {"Time", "Sunset", "Sunrise"}}) GEA.add(id["OP_ENTREE"], -1, "", {{"turnOn", id["LUMIERE_EXT"]}, {"Time", "Sunset", "Sunrise"}}) local arretlumext = GEA.add(id["LUMIERE_EXT"], 10*60, "", {{"turnOff",id["LUMIERE_EXT"]},{"Repeat"}}) GEA.add(id["CP_EXT"], -1, "", {{"RestartTask", arretlumext}}) GEA.add(id["OP_ENTREE"], -1, "Ouverture porte d'entrée", {{"RestartTask", arretlumext}}) -- === Garage === -- -- Appui court sur le bouton 1 de la telco ouvre la porte de garage GEA.add({"SceneActivation", id["TELCO_ENTREE"], 1}, -1, "", {{"VirtualDevice", 84, "1"}}) -- === Cave === -- -- Gestion Eclairage palier cave GEA.add(id["CP_PALIER_CAVE"], -1, "Lumiere cave allumee", {{"turnOn", id["LUMIERE_PALIER_CAVE"]}}) local arretlumpaliercave = GEA.add(id["LUMIERE_PALIER_CAVE"], 3*60, "", {{"turnOff",id["LUMIERE_PALIER_CAVE"]},{"Repeat"}}) GEA.add(id["CP_PALIER_CAVE"], -1, "", {{"RestartTask", arretlumpaliercave}}) 3
sebcbien Posté(e) le 8 janvier 2015 Auteur Signaler Posté(e) le 8 janvier 2015 Petite astuce pour ceux qui doivent gérer deux scénarios différents pour une même lampe. L'astuce consiste à stocker l'id du scénario dans les % du dimmer :-) Ainsi, pas besoin de variable globale ! En effet, un dimmer à 96% ou 99% ne crée pas de différence de luminosité visible (surtout dans mon cas avec des néons) --------------------- -- Gestion de la lumière lorsque l'on rentre la voiture (stockage du scénario dans la valeur du dimmer ->97% -- Si demande d'ouverture et porte fermée et lampe éteinte, then push, Allume lampe à 97% GEA.add({{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estClosed, {"Value-", id["LAMPE_GARAGE"], 1}}, -1, "Lampe garage on pour 7 min à 97%", {{"Value", id["LAMPE_GARAGE"], 97}}) -- On clignotte la lampe après 7mn et on l'éteint après 8mn si pas d'action manuelle -- Un double click ramène le dimmer à 100% et relance un cycle de 90 min (autre GEA, celui-ci désactivé) GEA.add({"Value", id["LAMPE_GARAGE"],97}, 7*60, "Garage 7 min 97% -> 96%",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 96}}) -- Sil la lampe est à 96%, après 8 min on met la lampe à 99% (prète pour prochain allumage) puis on éteint GEA.add({"Value", id["LAMPE_GARAGE"],96}, 1*60, "Garage 1 min 96% -> 99% -> 0ff",{{"Value", id["LAMPE_GARAGE"], 99},{"Function", function() fibaro:sleep(500) end},{"turnOff", id["LAMPE_GARAGE"]}}) --------------------- -- Gestion de la lumière lorsque l'on allume la lumière (stockage du scénario dans la valeur du dimmer ->99%) -- On clignotte la lampe après 90mn et on l'éteint après 5mn si pas d'action manuelle -- Un double click ramène le dimmer à 99% et relance un cycle de 90 min GEA.add({"Value", id["LAMPE_GARAGE"],99}, 90*60, "Garage 90 min 99% -> 98%",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 98}}) -- Sil la lampe est à 98%, après 5 min on met la lampe à 99% (prète pour prochain allumage) puis on éteint GEA.add({"Value", id["LAMPE_GARAGE"],98}, 5*60, "Garage 10 min 98% -> 99% -> Off",{{"Value", id["LAMPE_GARAGE"], 99},{"Function", function() fibaro:sleep(300) end},{"turnOff", id["LAMPE_GARAGE"]}}) 5
sebcbien Posté(e) le 21 janvier 2015 Auteur Signaler Posté(e) le 21 janvier 2015 il y a toujours moyen d'améliorer. -----------------LAMPE GARAGE------------------ -- Cas d'utilisation et besoins: -- Besoin de longues durées d'allumage via action manuelle (1h30). -- Détection de mouvement disponible que sur une partie du garage. -- Besoin d'allumer la lampe lorsque on ouvre la porte du garage pour rentrer la voiture -- Via interupteur manuel LAMPE_GARAGE -- Allumage de la lumière manuellement (dimmer à99%, via double click ou dernière valeur d'extinction) -- On clignotte la lampe après 1h30 et on set le dimer à97% (passe la main au script d'extinction et de détection de mouvement) -- Dans tous les cas, après un clignottement, Un double click ramènera le dimmer à99% et relancera un cycle de 1h30 GEA.add({"Value", id["LAMPE_GARAGE"],99}, 90*60, "Garage était 1h30 à99%, set 97% (Gea Mvt Garage)",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 97}}) -- Allumage Via Porte_Gar_Action -- Gestion de la lumière lorsque l'on rentre la voiture (stockage du scénario dans la valeur du dimmer ->98% -- Si demande d'ouverture et porte fermée et lampe éteinte, Allume lampe à98% La 3e condition permet de ne pas renvoyer d'ordre d'allumage inutile GEA.add({{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estClosed, {"Value", id["LAMPE_GARAGE"], 0}}, -1, "Lampe garage on pour 7 min à97", {{"Value", id["LAMPE_GARAGE"], 98}}) -- On clignotte la lampe après 7 min et on set le dimer à97% (passe la main au script d'extinction et de detection de mouvement) ou on passe en manuel via double click GEA.add({"Value", id["LAMPE_GARAGE"],98}, 7*60, "Garage était 7 min à98%, set 97% (Gea Mvt Garage)",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 97}}) -- via DETECTEUR Mouvement GARAGE -- Allumage à97% dès que détection mouvement. La 2e condition permet de ne pas renvoyer d'ordre d'allumage inutile GEA.add({id["DETECTEUR_GARAGE"],{"Value", id["LAMPE_GARAGE"], 0}}, -1, "",{{"Value", id["LAMPE_GARAGE"], 97}}) GEA.add({id["DETECTEUR_GARAGE"],{"Value", id["LAMPE_GARAGE"],96}}, -1, "",{{"Value", id["LAMPE_GARAGE"], 97}}) -- On clignotte la lampe après 2mn + le blind time du FGM (parameter 2) + cancel time (parameter 6) et on la passe à96% ensuite on l'éteint après 1mn si toujours pas de mouvement local malampegarage = GEA.add({"Value", id["LAMPE_GARAGE"],97},2*60, "Garage depuis 2 min à97% set 96% 1min puis 0FF",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 96}}) GEA.add({id["DETECTEUR_GARAGE"],{"Value", id["LAMPE_GARAGE"],97}}, 30, "", {{"RestartTask", malampegarage},{"repeat"}}) -- Si la lampe est à96%, après 1 min on met la lampe à99% (prète pour prochain allumage manuel) puis on éteint GEA.add({"Value", id["LAMPE_GARAGE"],96}, 1*60, "Extinction Garage",{{"Value", id["LAMPE_GARAGE"], 99},{"Function", function() fibaro:sleep(500) end},{"turnOff", id["LAMPE_GARAGE"]}}) ----------------------------------------------- 2
Diuck Posté(e) le 22 janvier 2015 Signaler Posté(e) le 22 janvier 2015 (modifié) Salut à tous Voici ma petite contribution à ce post !! Je viens d'apporter quelques modifications que je post ci dessous !! , à savoir qu'il y à une deuxième instance GEA pour le déclenchement instantané qui comme vous le savez permet d’éviter une latence de 3 à 5 secondes entre la détection de mouvement et le déclenchement de l'id concerné. local id = { --CUISINE SPOTS_CUISINE = 33, SPOTS_TABLE_CUISINE = 37, VOLET_CUISINE = 23, --ARRIERE_CUISINE CPT_TEMP_AR_C = 43, CPT_LUX_AR_C = 44, CPT_MOUV_AR_C = 42, VOLET_AR_CUISINE = 25, --SALON TELEVISION = 79, SONOMETRE_INT_NET = 124, PRESSION_INT_NET = 123, TEMP_INTERIEUR_NET = 120, HYGRO_INTERIEUR_NET = 122, CO2_INTERIEUR_NET = 121, LAMPE_SALON = 15, VOLET_SALON = 17, --SALLE_A_MANGER CPT_TEMP_SAM = 48, CPT_LUX_SAM = 49, ALLOGENE = 83, CPT_MOUV_SAM = 47, VOLET_SAM_2 = 21, VOLET_SAM_1 = 19, --DEVICES STATION_METEO = 118, EVENEMENTS = 5, --CHAMBRE_LUCAS VOLET_CHB_LUCAS = 29, --CHAMBRE_PARENTS LAMPE_CHB_PARENTS = 106, VOLET_CHB_PARENTS = 27, --CHAMBRE_AMIS VOLET_CHB_AMIS = 31, --EXT_FACADE CPT_MOUV_FACADE_EXT = 113, SPOTS_FACADE = 62, LAMPE_FACADE = 40, --EXT_TERRASSE SPOTS_TERRASSE = 56, TEMP_EXTERIEUR_NET = 125, HYGRO_EXTERIEUR_NET = 126, --EXT_JARDIN PISCINE = 52, --GEA ON_VLT_AC_SEM = 141, OFF_VLTS_RDC_DODO = 139, ON_VLT_AC_WEK = 140, ON_VLTS_ETAGE_WE = 143, ON_VLTS_ETAGE_SEM = 142, --GGE_COTE_ENTREE CPT_MOUV_ENTREE_SS = 70, CPT_TEMP_ENTREE_SS = 71, LAMPE_ENTREE_SS = 77, CPT_LUX_ENTREE_SS = 72, --GGE_COTE_OUTILLAGES SURPRESSEUR = 68, --GGE_COTE_TABLEAU TEMPS_SOUS_SOL_NET = 134, CO2_SOUS_SOL_NET = 136, HYGRO_SOUS_SOL_NET = 135, --GGE_COTE_VOITURES PORTE_DE_GARAGE = 102, CPT_POSITION_GARAGE = 97, --TTES_LES_PIECES CONSO_TOTAL = 92, TABLEAU_2_SOPTS_EXT = 94, TABLEAU_1 = 93, --VD_PRESENCE_RF = 127, -- VirtualDevice presence Phone Régis -- --VD_PRESENCE_SF = 128, -- VirtualDevice presence Phone Sophie -- } ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- LOCAL JOUR/NUIT -- local nuit = {"Global", "JOUR_NUIT", "NUIT"} local jour = {"Global", "JOUR_NUIT", "JOUR"} ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- VARIABLE JOUR_NUIT -- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Si la variable est à jour et qu'on est après le couché du soleil, on remet à nuit GEA.add({"Global", "JOUR_NUIT", "JOUR"}, 60, "", {{"Time", "Sunset", "Sunrise"}, {"Global", "JOUR_NUIT", "NUIT"}}) -- Si la variable est à nuit et qu'on est après le levé du soleil, on remet à jour GEA.add({"Global", "JOUR_NUIT", "NUIT"}, 60, "", {{"Time", "Sunrise", "Sunset"}, {"Global", "JOUR_NUIT", "JOUR"}}) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION JOUR CHOME "OUI_NON" -- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --GEA.add(true, 30, "", {{"VirtualDevice", 137, 3},{"Time", "00:00", "00:01"}}) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION PILES MODULES -- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- GEA.add({"Batteries", 60}, 24*60*60, "", {{"Repeat"}}) --GEA.add({"Batteries", 60}, 24*60*60, "Pile faible #value# - #name#", {{"Repeat"}}) --GEA.add({"Battery", id["CPT_MOUV_ENTREE_SS_SOL"], 40}, 24*60*60, "Pile faible #value# - #name# ", {{"Repeat"}}) -- Multisensor Aeon Labs DSB05 -- --GEA.add({"Battery", id["CPT_MOUV_SAM"], 40}, 24*60*60, "Pile faible #value# - #name# ", {{"Repeat"}}) -- Motion Sensor Salle à manger -- --GEA.add({"Battery", id["CPT_MOUV_AR_C"], 40}, 24*60*60, "Pile faible #value# - #name# ", {{"Repeat"}}) -- Motion Sensor Salon -- --GEA.add({"Battery", id["CPT_POSITION_GARAGE"], 40}, 24*60*60, "Pile faible #value# - #name# ", {{"Repeat"}}) -- Capteur de position Gge -- --GEA.add({"Battery", id["CPT_MOUV_FACADE_EXT"], 40}, 24*60*60, "Pile faible #value# - #name# ", {{"Repeat"}}) -- Multisensor Aeon Labs DSB05 -- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION NETATMO -- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Temperature Exterieur Terrasse -- GEA.add({"Value-",id["TEMP_EXTERIEUR_NET"],3},2*60 ,"Risque important de Gel #value# Degrès #time# Attention sur la route", {{"Time","06:00", "06:02"},{"Time","12:00", "12:02"},{"Time","18:00", "18:02"},{"Portable",107},{"Portable",146},{"Repeat"}}) -- Hygrometrie Sous Sol GEA.add({"Value+",id["HYGRO_SOUS_SOL_NET"],75},2*60 ,"Hygrometrie sous sol importante ouvrir porte de Gge #value# #time#") -- Température Sous Sol GEA.add({"Value-",id["TEMP_EXTERIEUR_NET"],3},2*60 ,"Risque important de Gel Fermer porte de Gge #value# #time#") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION LAMPE CHAMBRE PARENTS -- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Si j'allume la lampe entre 22h00 et 6h00 j'ouvre le volet à 70% -- --GEA.add( id["LAMPE_CHB_PARENTS"], -1 ,"", --{{"Time", "21:45", "Sunrise-180"},{"Open",27,70}}) -- Baisser à 50% 2 mn aprés -- GEA.add({"Value+",id["LAMPE_CHB_PARENTS"],98},120,"Chambre Parents réduction à 50",{nuit,{"Value",50},{"Repeat"}}) --Eteind lampe chambre parent si allumée plus de 2mn le jour -- GEA.add( id["LAMPE_CHB_PARENTS"], 120, "Lumière chambre Parents est allumés depuis plus de 120 secondes la journée donc je l éteinds #time#", {{"Time","Sunrise+120","Sunset-120"},{"turnOff"},{"Repeat"}}) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION FERMETURE PORTE DE GARAGE -- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Fermeture de la porte de Garage à 21 heures jour de la semaine -- GEA.add({"Global", "GEA_GARAGE", "ON"},30, "Fermeture de la porte de garage #time#", {{"Time", "21:00", "21:01"},{"turnOn", id["PORTE_DE_GARAGE"]},{"Repeat"}}) -- Si la porte de garage est ouverte plus de 30 mn entre 23h00 et 06h00 je la ferme Week-End -- GEA.add({"Global", "GEA_GARAGE", "ON"}, 30*60, "La porte du garage est ouverte depuis plus de 30 minutes donc je la ferme #time#", {{"Time", "23:00", "06:00"} ,{"Days","Weekend"},{"turnOn", id["PORTE_DE_GARAGE"]},{"Repeat"}}) -- Si la porte de garage est ouverte plus de 15 mn entre 21h30 et 06h00 je la ferme Semaine -- GEA.add({"Global", "GEA_GARAGE", "ON"}, 15*60, "La porte du garage est ouverte depuis plus de 15 minutes donc je la ferme #time#", {{"Time", "21:30", "06:00"} ,{"Days","Weekday"},{"turnOn", id["PORTE_DE_GARAGE"]},{"Repeat"}}) -- Allumage spots facade aprés ouverture de la porte de garage Nuit -- --GEA.add( id["CPT_POSITION_GARAGE"], -1, "", --{{"Time", "Sunset+30", "Sunrise-90"},{"turnOn",id["SPOTS_FACADE"]}}) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION VOLETS ON_SUNRISE OFF_SUNSET -- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Fermeture des Volets étage GEA.add(true, 1*60, "Fermeture Total des volets étage #time#", {{"Time", "Sunset+30", "Sunset+35"},{"Scenario", 14}}) -- Fermeture des volets tous le RDC GEA.add(true, 1*60, "Fermeture Total des volets Rdc #time#", {{"Time", "Sunset+45", "Sunset+50"},{"Scenario", 13}}) -- Fermeture des volets Rdc Dodo GEA.add(true, 1*60, "Fermeture Total des Volets Rdc Dodo #time#", {{"Time", "00:30", "00:35"},{"Scenario", 15}}) -- Ouverture des volets RDC sauf Ar cuisine GEA.add(true, 1*60, "", {{"Time", "Sunrise-50", "Sunrise-45"},{"Scenario", 10}}) -- Ouverture du Volet ARC Week-End GEA.add(true, 1*60, "", {{"Time", "06:45", "06:50"},{"Scenario", 8}}) -- Ouverture du Volet ARC Semaine GEA.add(true, 1*60, "", {{"Time", "06:00", "06:05"},{"Scenario", 8}}) -- Ouverture des Volets étage Week-End GEA.add(true, 1*60, "", {{"Time", "08:00", "08:05"},{"Scenario", 12}}) -- Ouverture des Volets étage Semaine GEA.add(true, 1*60, "", {{"Time", "07:00", "07:05"},{"Scenario", 11}}) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION VOLETS LUXMENS -- "EST MATIN" ---- DST ---- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- FERMETURE DST -- -- FERMETURE-21-23-AU LEVER DU SOLEIL -- GEA.add({"Value+",id["CPT_LUX_SAM"],450},2*60 ,"", {{"Time","Sunrise","Sunrise+90"},{"Close",21,25},{"Close",23,25},{"DST"}}) -- 21-SAM2 23-CUISINE -- FERMETURE_21_23 -- GEA.add({"Value+",id["CPT_LUX_SAM"],800},5*60 ,"", {{"Time","Sunrise+90","13:00"},{"Close",21,35},{"Close",23,35},{"DST"}}) -- 21-SAM2 23-CUISINE -- FERMETURE_17_19_24 -- GEA.add({"Value+",id["CPT_LUX_SAM"],800},8*60 ,"", {{"Time","Sunrise+90","13:00"},{"Close",19,25},{"Close",21,55},{"Close",23,55},{"DST"}}) -- 19-SAM1 21-SAM2 23-CUISINE -- OVERTURE DST -- -- OUVERTURE_19_21_23 -- local si_pas_ouvert_19_21_23_a_35 = {"If", {{"Value-",19, 90},{"Value-",21, 90},{"Value-",23, 90}}} -- 19-SAM1 21-SAM2 23-CUISINE GEA.add({"Value-",id["CPT_LUX_SAM"],550},10*60, "Remontée des volets SAM1 à 100 et SAM2_CUIS à 35 DST #value# Lux #time#", {si_pas_ouvert_19_21_23_a_35,{"Time","Sunrise+90","Sunset"},{"Open",19, 97},{"Close",21,35},{"Close",23,35},{"DST"}}) -- 19-SAM1 21-SAM2 23-CUISINE -- OUVERTURE_21_23 -- local si_pas_ouvert_21_23_a_100 = {"If", {{"Value-",21, 90},{"Value-",23, 90}}} -- 21-SAM2 23-CUISINE GEA.add({"Value-",id["CPT_LUX_SAM"],550},15*60, "Remontée des volets SAM2_CUIS à 100 DST #value# Lux #time#", {si_pas_ouvert_21_23_a_100,{"Time","Sunrise+90","Sunset"},{"Open",21,99},{"Open",23,97},{"DST"}}) -- 21-SAM2 23-CUISINE ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION VOLETS LUXMENS -- "EST MATIN" ---- NOTDST ---- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- local temps_2_volet = {"Time","Sunrise","Sunset"} -- FERMETURE NOTDST -- -- FERMETURE-21-23-AU LEVER DU SOLEIL -- GEA.add({"Value+",id["CPT_LUX_SAM"],300},2*60 ,"", {{"Time","Sunrise","Sunrise+120"},{"Close",21,20},{"Close",23,20},{"NOTDST"}}) -- 21-SAM2 23-CUISINE -- FERMETURE_21_23 -- GEA.add({"Value+",id["CPT_LUX_SAM"],600},5*60 ,"", {{"Time","Sunrise+90","13:00"},{"Close",21,35},{"Close",23,35},{"NOTDST"}}) -- 21-SAM2 23-CUISINE -- FERMETURE_21_23 -- GEA.add({"Value+",id["CPT_LUX_SAM"],800},8*60 ,"", {{"Time","Sunrise+90","13:00"},{"Close",21,50},{"Close",23,50},{"NOTDST"}}) -- 21-SAM2 23-CUISINE -- OVERTURE NOTDST -- -- OUVERTURE_21_23 -- local si_pas_ouvert_21_23_a_30 = {"If", {{"Value-",21, 90},{"Value-",23, 90}}} -- 21-SAM2 23-CUISINE GEA.add({"Value-",id["CPT_LUX_SAM"],500}, 10*60, "Remontée des volets SAM2_CUIS à 30 NOTDST #value# Lux #time#", {si_pas_ouvert_21_23_a_30, temps_2_volet,{"Close",21,30},{"Close",23,30},{"NOTDST"}}) -- 21-SAM2 23-CUISINE -- OUVERTURE_21_23 -- local si_pas_ouvert_21_23_a_15 = {"If", {{"Value-",21, 90},{"Value-",23, 90}}} -- 21-SAM2 23-CUISINE GEA.add({"Value-",id["CPT_LUX_SAM"],400}, 20*60, "Remontée des volets SAM2_CUIS à 15 NOTDST #value# Lux #time#", {si_pas_ouvert_21_23_a_15, temps_2_volet,{"Close",21,15},{"Close",23,15},{"NOTDST"}}) -- 21-SAM2 23-CUISINE -- OUVERTURE_21_23 -- local si_pas_ouvert_21_23_a_100 = {"If", {{"Value-",21, 90},{"Value-",23, 90}}} -- 21-SAM2 23-CUISINE GEA.add({"Value-",id["CPT_LUX_SAM"],300}, 30*60, "Remontée des volets SAM2_CUIS à 100 NOTDST #value# Lux #time#", {si_pas_ouvert_21_23_a_100, temps_2_volet,{"Open",21,99},{"Open",23,97},{"NOTDST"}}) -- 21-SAM2 23-CUISINE ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION VOLETS LUXMENS -- "OUEST APRES MIDI" ---- DST ---- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- local temps_1_volet = {"Time", "13:00", "Sunset"} -- FERMETURE DST -- -- FERMETURE VOLETS_17_25_27_29 -- -- Si la luminosité est supérieur à 900 Lux pendant 5 minutes entre 13h et Sunset, on baisse les volets 17 salon, 25 AR cuisine, 27 Chambre parents, 29 Chambre Lucas -- local si_pas_ferme_17_25_27_29 = {"If", {{"Value+",17, 90},{"Value+",25, 90},{"Value+",27, 90},{"Value+",29, 90}}} -- 17-SALON 25-AR-CUIS 27-CHB-PARENTS 29-CHB-LUCAS GEA.add({"Value+",id["CPT_LUX_AR_C"],900}, 5*60, "Fermeture des volets Ouest Partiel DST #value# Lux #time#", {si_pas_ferme_17_25_27_29, temps_1_volet,{"Close",17,55},{"Close",25,60},{"Close",27,60},{"Close",29,60},{"DST"}}) -- 17-SALON 25-AR-CUIS 27-CHB-PARENTS 29-CHB-LUCAS -- OVERTURE DST -- -- OUVERTURES VOLETS_17_25 -- -- Si la luminosité est inférieur à 100 Lux pendant 15 minutes entre 13h et Sunset, on remonte les volets 17 salon, 25 AR cuisine -- local si_pas_ouvert_17_25 = {"If", {{"Value-",17, 90},{"Value-",25, 90}}} -- 17-SALON 25-AR-CUIS GEA.add({"Value-",id["CPT_LUX_AR_C"],200}, 15*60, "Remontée des volets SALON et AR_CUISINE à 100 par manque de luminosité DST #value# Lux #time#", {si_pas_ouvert_17_25, temps_1_volet,{"Open",17,98},{"Open",25,99},{"DST"}}) -- 17-SALON 25-AR-CUIS -- OUVERTURES VOLETS_27_29 -- -- On remonte les volets 27 Chambre parents, 29 Chambre Lucas si volets RDC Ouverts -- -- local si_pas_ouvert_27_29 = {"If", {{"Value+",17, 90},{"Value+",25, 90},{"Value-",27,90},{"Value-",29,90}}} -- 17-SALON 25-AR-CUIS 27-CHB-PARENTS 29-CHB-LUCAS GEA.add(true, 8*60,"Remontée des volets CHB_PARENTS et CHB_LUCAS à 100 par manque de luminosité DST #value# Lux #time#", {si_pas_ouvert_27_29, temps_1_volet,{"Open",27,99},{"Open",29,98},{"DST"}}) -- 27-CHB-PARENTS 29-CHB-LUCAS --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION VOLETS LUXMENS -- "OUEST APRES MIDI" ---- NOTDST ---- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- FERMETURE NOTDST -- -- FERMETURE VOLETS_17_25_27_29 -- -- Si la luminosité est supérieur à 600 Lux pendant 5 minutes entre 13h et Sunset, on baisse les volets 17 salon, 25 AR cuisine, 27 Chambre parents, 29 Chambre Lucas -- local si_pas_ferme_17_25_27_29 = {"If", {{"Value+",17, 90},{"Value+",25, 90},{"Value+",27, 90},{"Value+",29, 90}}} -- 17-SALON 25-AR-CUIS 27-CHB-PARENTS 29-CHB-LUCAS GEA.add({"Value+",id["CPT_LUX_AR_C"],600}, 5*60, "Fermeture des volets Ouest Partiel NOTDST #value# Lux #time#", {si_pas_ferme_17_25_27_29, temps_1_volet,{"Close",17,45},{"Close",25,50},{"Close",27,50},{"Close",29,50},{"NOTDST"}}) -- 17-SALON 25-AR-CUIS 27-CHB-PARENTS 29-CHB-LUCAS -- OVERTURE NOTDST -- -- OUVERTURES VOLETS_17_25 -- -- Si la luminosité est inférieur à 100 Lux pendant 15 minutes entre 13h et Sunset, on remonte les volets 17 salon, 25 AR cuisine -- local si_pas_ouvert_17_25 = {"If", {{"Value-",17, 90},{"Value-",25, 90}}} -- 17-SALON 25-AR-CUIS GEA.add({"Value-",id["CPT_LUX_AR_C"],200}, 15*60, "Remontée des volets SALON et AR_CUIS à 100 par manque de luminosité NOTDST #value# Lux #time#", {si_pas_ouvert_17_25, temps_1_volet,{"Open",17,98},{"Open",25,99},{"NOTDST"}}) -- 17-SALON 25-AR-CUIS -- OUVERTURES VOLETS_27_29 -- -- On remonte les volets 27 Chambre parents, 29 Chambre Lucas si volets RDC Ouverts -- -- local si_pas_ouvert_27_29 = {"If", {{"Value+",17, 90},{"Value+",25, 90},{"Value-",27,90},{"Value-",29,90}}} -- 17-SALON 25-AR-CUIS 27-CHB-PARENTS 29-CHB-LUCAS GEA.add(true, 8*60, "Remontée des volets CHB_PARENTS et CHB_LUCAS à 100 par manque de luminosité NOTDST #value# Lux #time#", {si_pas_ouvert_27_29, temps_1_volet,{"Open",27,99},{"Open",29,98},{"NOTDST"}}) -- 27-CHB-PARENTS 29-CHB-LUCAS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION Spots Cuisine -- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- éteind Spots Cuisine allumée le jour -- GEA.add( id["SPOTS_CUISINE"], 5*60, "",{{"Time", "Sunrise+90", "Sunset-180"},{"turnOff", id["SPOTS_CUISINE"]},{"Repeat"}}) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION LAMPE SALLE A MANGER -- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- éteind l'allogene si allumée le jour -- GEA.add( id["ALLOGENE"], 30, "La lampe de salle a manger est allumée depuis plus de 30 secondes donc je l éteind #time#", {{"Time", "Sunrise", "Sunset-180"},{"turnOff", id["ALLOGENE"]},{"Repeat"}}) -- éteint l'allogene 5 MN APRES LA TELE -- GEA.add(id["TELEVISION"], 5*60 ,"",{{"Inverse"},{"Time", "Sunset+180", "Sunrise"},{"turnOff", id["ALLOGENE"]}}) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION LAMPE SALON -- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ALLUMAGE -- -- Allume la lampe du salon si télé allumée depuis 30s -- GEA.add( { id["TELEVISION"], nuit}, 30, "",{{"turnOn",id["LAMPE_SALON"]}}) -- Allume la lampe du salon avec la télé Sunset -- --GEA.add( { id["TELEVISION"], nuit}, -1 ,"",{{"turnOn",id["LAMPE_SALON"]},{"Repeat"}}) -- EXTINCTION -- -- éteind la lampe de salon si allumée le jour -- GEA.add( id["LAMPE_SALON"], 60, "La lampe de salon est allumée depuis plus de 60 secondes donc je l éteind #time#", {{"Time", "Sunrise", "Sunset-180"},{"turnOff", id["LAMPE_SALON"]},{"Repeat"}}) -- éteint la lampe du salon 3 MN APRES LA TELE -- GEA.add( { id["TELEVISION"], nuit}, 3*60 ,"",{{"Inverse"},{"turnOff", id["LAMPE_SALON"]}}) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION SPOTS EXTERIEUR FACADE -- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Conditions -- Extinction des spots de facade après 1mn30 si allumés en Automatique "JOUR_NUIT","NUIT" -- --local extFacade = GEA.add( { id["SPOTS_FACADE"], nuit}, 90,"Extinction des spots facade car allumée depuis plus de 1 minute 30 Secondes #time#",{{"turnOff",id ["SPOTS_FACADE"]}}) -- ALLUMAGE -- -- Allumage auto spots facade NOTDST -- --GEA.add( id["CPT_MOUV_FACADE_EXT"], -1,"", --{{"Time", "Sunset+40", "21:00"},{"turnOn", id["SPOTS_FACADE"]}, {"RestartTask", extFacade},{"NOTDST"}}) -- Allumage auto spots facade DST -- --GEA.add( id["CPT_MOUV_FACADE_EXT"], -1,"", --{{"Time", "Sunset+40", "23:30"},{"turnOn", id["SPOTS_FACADE"]}, {"RestartTask", extFacade},{"DST"}}) -- Allumage manuel --GEA.add( id["SPOTS_FACADE"], -1, "", --{{"StopTask", extFacade}}) -- EXTINCTION -- -- Extinction des spots de facade après 3mn si allumés en Manuel "JOUR_NUIT","JOUR" -- GEA.add( { id["SPOTS_FACADE"], jour}, 3*60,"Extinction des spots facade car allumée depuis plus de 3 minutes #time#" , {{"turnOff", id ["SPOTS_FACADE"]},{"Repeat"}}) -- Extinction des spots de facade après 5mn si allumés en Manuel "JOUR_NUIT","NUIT" -- GEA.add( { id["SPOTS_FACADE"], nuit}, 5*60,"Extinction des spots facade car allumée depuis plus de 5 minutes #time#" , {{"turnOff", id ["SPOTS_FACADE"]},{"Repeat"}}) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION LAMPE ENTREE FACADE -- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ALLUMAGE -- -- Allumage auto lampe entree à 60 pour cent NOTDST -- --GEA.add( id["CPT_MOUV_FACADE_EXT"], -1,"", --{{"Time", "21:00", "Sunrise-40"},{"Value", id["LAMPE_FACADE"],60},{"NOTDST"}}) -- Allumage auto lampe entree à 60 pour cent DST -- --GEA.add( id["CPT_MOUV_FACADE_EXT"], -1,"", --{{"Time", "23:30", "Sunrise-40"},{"Value", id["LAMPE_FACADE"],60},{"DST"}}) -- EXTINCTION -- -- Extinction lampe entree facade après 3mn si allumés le "JOUR" -- GEA.add( { id["LAMPE_FACADE"], jour}, 3*60,"Extinction Lampe entree facade car allumée depuis plus de 3 minutes #time#" , {{"turnOff", id ["LAMPE_FACADE"]},{"Repeat"}}) -- Extinction lampe entree facade après 2 mn si allumés entre couché du soleil +40 mn et 23:00 heure -- GEA.add( id["LAMPE_FACADE"], 2*60 ,"Extinction lampe entree facade car allumée depuis plus de 2 minutes #time#", {{"Time", "Sunset+40", "23:00"},{"turnOff", id ["LAMPE_FACADE"]},{"Repeat"}}) -- Extinction lampe entree facade après 1mn si allumés entre 23:00 et levé du soleil -40 mn -- GEA.add( id["LAMPE_FACADE"], 60,"Extinction lampe entree facade car allumée depuis plus de 1 minute #time#", {{"Time", "23:00", "Sunrise-40"},{"turnOff", id ["LAMPE_FACADE"]},{"Repeat"}}) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION LAMPE ENTREE SOUS SOL -- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Conditions -- Extinction lampes sous sol après 1mn30 -- --local entreesoussol = GEA.add( id["LAMPE_ENTREE_SS"], 90,"",{{"turnOff", id["LAMPE_ENTREE_SS"]}}) -- ALLUMAGE -- -- Allumage automatique lampe entrée sous sol -- --GEA.add( id["CPT_MOUV_ENTREE_SS"], -1,"", --{{"turnOn", id["LAMPE_ENTREE_SS"]}, {"RestartTask", entreesoussol}}) -- Allumage manuel lampe entrée sous sol -- --GEA.add(id["LAMPE_ENTREE_SS"], -1, "", --{{"StopTask", entreesoussol}}) -- EXTINCTION -- -- Extinction automatique lampe entrée sous sol après 10mn-- GEA.add( id["LAMPE_ENTREE_SS"], 10*60, "les lampes entrée sous sol sont allumées depuis plus de 10 minutes donc je les éteinds #time#" , {{"turnOff", id["LAMPE_ENTREE_SS"]},{"Repeat"}}) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION SPOTS TERRASSE -- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- local voletsam1ferme = {"Value-",19, 10} -- Extinction des spots de terrasse après 2mn si allumés "JOUR_NUIT","JOUR" -- GEA.add( { id["SPOTS_TERRASSE"],jour}, 2*60,"Extinction des spots terrasse allumée depuis plus de 2 minutes #time#", {{"turnOff", id["SPOTS_TERRASSE"]},{"Repeat"}}) -- Aprés la fermeture du volet SAM 1 éxtinction des spots de terrasse "JOUR_NUIT","NUIT" -- GEA.add( { id["SPOTS_TERRASSE"],nuit,voletsam1ferme}, 1*60,"Volet SAM 1 fermé j éteinds les spots terrasse #time#", {{"turnOff", id["SPOTS_TERRASSE"]},{"Repeat"}}) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- GESTION SURPRESSEUR SOUS Sol ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- GEA.add({"Sensor+",id["SURPRESSEUR"], 400},10 , "Surpresseur en marche #time#",{{"Repeat"}}) --GEA.add(true, 10 ,"Surpresseur en marche #time#",{{"Sensor+",id["SURPRESSEUR"],500 }, {"Repeat"}}) INSTANCE GEA POUR DÉCLENCHEMENT INSTANTANÉ local id = { --CUISINE SPOTS_CUISINE = 33, SPOTS_TABLE_CUISINE = 37, VOLET_CUISINE = 23, --ARRIERE_CUISINE CPT_TEMP_AR_C = 43, CPT_LUX_AR_C = 44, CPT_MOUV_AR_C = 42, VOLET_AR_CUISINE = 25, --SALON TELEVISION = 79, SONOMETRE_INT_NET = 124, PRESSION_INT_NET = 123, TEMP_INTERIEUR_NET = 120, HYGRO_INTERIEUR_NET = 122, CO2_INTERIEUR_NET = 121, LAMPE_SALON = 15, VOLET_SALON = 17, --SALLE_A_MANGER CPT_TEMP_SAM = 48, CPT_LUX_SAM = 49, ALLOGENE = 83, CPT_MOUV_SAM = 47, VOLET_SAM_2 = 21, VOLET_SAM_1 = 19, --DEVICES STATION_METEO = 118, EVENEMENTS = 5, --CHAMBRE_LUCAS VOLET_CHB_LUCAS = 29, --CHAMBRE_PARENTS LAMPE_CHB_PARENTS = 106, VOLET_CHB_PARENTS = 27, --CHAMBRE_AMIS VOLET_CHB_AMIS = 31, --EXT_FACADE CPT_MOUV_FACADE_EXT = 113, SPOTS_FACADE = 62, LAMPE_FACADE = 40, --EXT_TERRASSE SPOTS_TERRASSE = 56, TEMP_EXTERIEUR_NET = 125, HYGRO_EXTERIEUR_NET = 126, --EXT_JARDIN PISCINE = 52, --GEA ON_VLT_AC_SEM = 141, OFF_VLTS_RDC_DODO = 139, ON_VLT_AC_WEK = 140, ON_VLTS_ETAGE_WE = 143, ON_VLTS_ETAGE_SEM = 142, --GGE_COTE_ENTREE CPT_MOUV_ENTREE_SS = 70, CPT_TEMP_ENTREE_SS = 71, LAMPE_ENTREE_SS = 77, CPT_LUX_ENTREE_SS = 72, --GGE_COTE_OUTILLAGES SURPRESSEUR = 68, --GGE_COTE_TABLEAU TEMPS_SOUS_SOL_NET = 134, CO2_SOUS_SOL_NET = 136, HYGRO_SOUS_SOL_NET = 135, --GGE_COTE_VOITURES PORTE_DE_GARAGE = 102, CPT_POSITION_GARAGE = 97, --TTES_LES_PIECES CONSO_TOTAL = 92, TABLEAU_2_SOPTS_EXT = 94, TABLEAU_1 = 93, } --------------------------------------------------------------------------------------------------- -- LOCAL JOUR/NUIT -- local nuit = {"Global", "JOUR_NUIT", "NUIT"} local jour = {"Global", "JOUR_NUIT", "JOUR"} --------------------------------------------------------------------------------------------------- -- VARIABLE JOUR_NUIT -- --------------------------------------------------------------------------------------------------- -- Si la variable est à jour et qu'on est après le couché du soleil, on remet à nuit GEA.add({"Global", "JOUR_NUIT", "JOUR"}, 60, "", {{"Time", "Sunset", "Sunrise"}, {"Global", "JOUR_NUIT", "NUIT"}}) -- Si la variable est à nuit et qu'on est après le levé du soleil, on remet à jour GEA.add({"Global", "JOUR_NUIT", "NUIT"}, 60, "", {{"Time", "Sunrise", "Sunset"}, {"Global", "JOUR_NUIT", "JOUR"}}) --------------------------------------------------------------------------------------------------- -- GESTION PILES MODULES -- --------------------------------------------------------------------------------------------------- GEA.add({"Batteries", 60}, 24*60*60, "Pile faible #value# - #name#", {{"Repeat"}}) --------------------------------------------------------------------------------------------------- -- GESTION LAMPE CHAMBRE PARENTS -- --------------------------------------------------------------------------------------------------- -- Si j'allume la lampe entre 22h00 et 6h00 j'ouvre le volet à 70% -- GEA.add( id["LAMPE_CHB_PARENTS"], -1 ,"", {{"Time", "21:45", "Sunrise-180"},{"Open",27,70}}) --------------------------------------------------------------------------------------------------- -- GESTION FERMETURE PORTE DE GARAGE -- --------------------------------------------------------------------------------------------------- -- Allumage spots facade aprés ouverture de la porte de garage Nuit -- GEA.add( id["CPT_POSITION_GARAGE"], -1, "", {{"Time", "Sunset+30", "Sunrise-90"},{"turnOn",id["SPOTS_FACADE"]}}) --------------------------------------------------------------------------------------------------- -- GESTION LAMPE SALON -- --------------------------------------------------------------------------------------------------- -- Allume la lampe du salon avec la télé Sunset -- GEA.add( { id["TELEVISION"], nuit}, -1 ,"", {{"turnOn",id["LAMPE_SALON"]},{"Repeat"}}) --------------------------------------------------------------------------------------------------- -- GESTION SPOTS EXTERIEUR FACADE -- --------------------------------------------------------------------------------------------------- -- EXTINCTION -- -- Extinction des spots de facade après 1mn30 si allumés en Automatique "JOUR_NUIT","NUIT" -- local extFacade = GEA.add( { id["SPOTS_FACADE"], nuit}, 90,"Extinction des spots facade car allumée depuis plus de 1 minute 30 Secondes #time#", {{"turnOff",id ["SPOTS_FACADE"]}}) -- ALLUMAGE -- -- Allumage auto spots facade NOTDST -- GEA.add( id["CPT_MOUV_FACADE_EXT"], -1,"", {{"Time", "Sunset+40", "21:00"},{"turnOn", id["SPOTS_FACADE"]}, {"RestartTask", extFacade},{"NOTDST"}}) -- Allumage auto spots facade DST -- GEA.add( id["CPT_MOUV_FACADE_EXT"], -1,"", {{"Time", "Sunset+40", "23:30"},{"turnOn", id["SPOTS_FACADE"]}, {"RestartTask", extFacade},{"DST"}}) -- Allumage manuel GEA.add( id["SPOTS_FACADE"], -1, "", {{"StopTask", extFacade}}) --------------------------------------------------------------------------------------------------- -- GESTION LAMPE ENTREE FACADE -- --------------------------------------------------------------------------------------------------- -- ALLUMAGE -- -- Allumage auto lampe entree à 60 pour cent NOTDST -- GEA.add( id["CPT_MOUV_FACADE_EXT"], -1,"", {{"Time", "21:00", "Sunrise-40"},{"Value", id["LAMPE_FACADE"],60},{"NOTDST"}}) -- Allumage auto lampe entree à 60 pour cent DST -- GEA.add( id["CPT_MOUV_FACADE_EXT"], -1,"", {{"Time", "23:30", "Sunrise-40"},{"Value", id["LAMPE_FACADE"],60},{"DST"}}) --------------------------------------------------------------------------------------------------- -- GESTION LAMPE ENTREE SOUS SOL -- --------------------------------------------------------------------------------------------------- -- EXTINCTION -- --Extinction lampes sous sol après 1mn30 -- local entreesoussol = GEA.add( id["LAMPE_ENTREE_SS"], 90,"", {{"turnOff", id["LAMPE_ENTREE_SS"]}}) -- ALLUMAGE -- -- Allumage automatique lampe entrée sous sol -- GEA.add( id["CPT_MOUV_ENTREE_SS"], -1,"", {{"turnOn", id["LAMPE_ENTREE_SS"]}, {"RestartTask", entreesoussol}}) -- Allumage manuel lampe entrée sous sol -- GEA.add(id["LAMPE_ENTREE_SS"], -1, "", {{"StopTask", entreesoussol}}) --------------------------------------------------------------------------------------------------- Modifié le 16 février 2015 par Diuck 3
Diuck Posté(e) le 19 février 2015 Signaler Posté(e) le 19 février 2015 Un p'tit complément àmon post précédent local ete = {"Global","HEURE_ETE_HIVER","ETE"} local hiver = {"Global","HEURE_ETE_HIVER","HIVER"} -- Mise àjour scénario Heure été / Hiver GEA.add(true, 30, "", {{"Scenario", 138},{"Time", "05:00", "05:01"}}) -- Push changement d'heure Hiver / été GEA.add({{"Global","HEURE_ETE_HIVER","ETE"},ete}, -1, "Passage àl-heure d-été avancer d-une heure #time#",{{"Portable",107},{"Portable",146}}) -- Push changement d'heure été / Hiver GEA.add({{"Global","HEURE_ETE_HIVER","HIVER"},hiver},-1 ,"Passage àl-heure d-hiver reculer d-une heure #time#",{{"Portable",107},{"Portable",146}}) 2
Sakkhho Posté(e) le 14 mai 2015 Signaler Posté(e) le 14 mai 2015 (modifié) Voici ma config, beaucoup de choses qui sont tirées de vos configs, mais si ca peut aider certains... --[[ %% autostart %% properties 318 power 50 value 67 value 147 value 167 value 181 value 215 value 244 value 250 value 262 value %% globals Etat_Alarme Tele --]] -- 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 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 = {200,226} -- [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 : 31/12/15 à16:31:01 local id = { -- SECTION : Cave -- ROOM : Buanderie ALARME_HEAT_CAVE = 208, ECL_CAVE = 257, ECL_BUANDERIE = 259, TEMP_CAVE = 52, TEMP_SMOKE_CAVE = 207, WP_LAVE_LINGE = 18, SMOKE_CAVE = 206, OUV_CAVE = 50, -- SECTION : Etage -- ROOM : Chambre_Amis TEMP_CHAMBRE_AMIS = 169, OUV_CHAMBRE_AMIS = 167, -- ROOM : Couloir MOV_COULOIR = 221, TEMP_SMOKE_COULOIR = 304, SMOKE_COULOIR = 303, ALARME_HEAT_COULOIR = 305, TEMP_COULOIR = 222, LUM_COULOIR = 223, -- SECTION : Exterieur -- ROOM : Jardin HUM_JARDIN_NETATMO = 111, TEMP_JARDIN_NETATMO = 110, ARROSAGE_JARDIN = 233, ARROSAGE_BORDURES = 235, ECL_EXT = 229, -- ROOM : Parking PORTE_GARAGE = 237, OUV_PORTAIL = 295, PORTAIL = 268, OUV_PORTE_GARAGE = 244, -- SECTION : Global -- ROOM : Gestion TOUTES_LUMIERES = 260, DAY_PHASE = 186, VARIABLES_GLOBALES = 183, GRAPHIQUES = 188, CALCUL_ARROSAGE = 199, FREBOX_SERVEUR = 323, TOP_10_POWER = 195, ETAT_TRAFIC = 310, ETAT_ALARME = 182, METEO = 309, TRAJET_BUREAU = 308, JOUR_CHOME = 141, MY_BATTERIES = 139, EVENEMENTS = 53, MODE_MAISON = 142, HC2_DIAGNOSTICS = 70, NETWORK_MONITOR = 307, CLOCK_SYNC = 210, -- ROOM : Scenes BACKUP_VARIABLES = 225, -- SECTION : RDC -- ROOM : Bureau WP_BUREAU = 4, TEMP_BUREAU = 148, LUM_BUREAU = 149, TT_BUREAU = 115, MOV_BUREAU = 147, -- ROOM : Chambre_Parents ECL_CHAMBRE_PARENTS = 181, -- ROOM : Entrée LUM_COULOIR_BAS = 252, CAMERA_ENTREE = 324, SIRENE = 248, MOV_ENTREE = 67, LUM_ENTREE = 69, TEMP_COULOIR_BAS = 251, TEMP_ENTREE = 68, MOV_COULOIR_BAS = 250, -- ROOM : Salon/Cuisine STATION_NETATMO = 103, THERMOSTAT_NETATMO = 306, WP_BAR = 49, WP_LISEUSE = 312, PRISE_FREBOXSERVER = 315, PRISE_PS3 = 320, SONOS_REMOTE = 322, TEMP_SALON_NETATMO = 105, PRISE_SONOS = 319, PRISE_HC2 = 317, PRISE_TELE = 318, PRISE_FREBOXPLAYER = 316, CO2_SALON_NETATMO = 106, TEMP_SALON = 263, HUM_SALON_NETATMO = 107, CAMERA_SALON = 242, THERMOSTAT_NETATMO_SALON_CUISINE = 301, TT_CUISINE = 119, TV_SAMSUNG = 125, VOLETS_SALON = 121, VOLETS_CUISINE = 134, GESTION_CAMERA = 246, SON_SALON_NETATMO = 109, PRESS_SALON_NETATMO = 108, TT_SALON = 113, LUM_SALON = 264, MOV_SALON = 262, ECL_SALON_PHARE = 202, -- ROOM : Sdb_Bas TEMP_SDB_BAS = 217, TT_SDB_BAS = 117, OUV_SDB_BAS = 215, } -- ------------------------------------------------------------ -- [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 = {"GEA_Status", "Active"} -- ---------------------------------------------------------------- -- [FR] A partir d'ici vous trouverez ma propre configuration -- [FR] vous permettant ainsi d'avoir une série d'exemple -- [EN] From here are ma own configuration -- [EN] just to allow you to see some examples -- ---------------------------------------------------------------- -- Mon GEA ----------------------------------------------------- local atHome = {"Global", "JourChome", "OUI"} local atWork = {"Global", "JourChome", "NON"} local onVacation = {"Global", "Mode_Maison", "Vacances"} local notVacation = {"Global!", "Mode_Maison", "Vacances"} local Present = {"Global", "Mode_Maison", "Present"} local Absent = {"Global", "Mode_Maison", "Absent"} local Menage = {"Global", "Mode_Maison", "Menage"} local Journee = {"Global!", "Day_Phase", "7 - Nuit"} local Night = {"Global", "Day_Phase", "7 - Nuit"} local Soir = {"Global", "Day_Phase", "6 - Soir"} local notSick = {"Global!", "Mode_Maison", "Malade"} local Intrusion = {"Global", "Etat_Alarme", "Intrusion"} local Canicule = {"Global", "Canicule", "Yes"} -- Timer toutes les 30 mn GEA.add(true, 30*60, "") -- Actions sur les VD GEA.add(true, 30, "", {{"Time", "00:01", "00:02"}, {"Time", "05:00", "05:01"}, {"VirtualDevice", id["JOUR_CHOME"], 3}}) -- Calcul du jour chômé GEA.add(true, 30, "", {{"Time", "01:00", "01:00"}, {"Time", "14:00", "14:00"}, {"VirtualDevice", id["MY_BATTERIES"], 11},}) -- Verification Batteries GEA.add(true, 30, "", {{"Time", "02:00", "02:01"},{"VirtualDevice", id["CLOCK_SYNC"], 1}}) -- Syncro de l'horloge GEA.add(true, 20*30, "", {{"VirtualDevice", id["TOP_10_POWER"], 1},{"Repeat"}}) -- Top 10 power GEA.add(true, 5*60, "", {{"VirtualDevice", id["NETWORK_MONITOR"], 1},{"Repeat"}}) -- Check Internet GEA.add(true, 60*60, "", {{"VirtualDevice", id["EVENEMENTS"], 11},{"Repeat"}}) -- Derniers Evénements GEA.add(true, 60*60, "", {{"VirtualDevice", id["VARIABLES_GLOBALES"], 11},{"Repeat"}}) -- Dernièrs changements des VGs GEA.add(true, 15*33, "", {{"VirtualDevice", id["HC2_DIAGNOSTICS"], 1},{"Repeat"}}) -- Diagnostics de la HC2 -- Ram HC2 -- GEA.add({{"Global-", "RamFree", 40}}, 30, "RAM inférieure à40%", {{"Time", "21:00", "21:01"}}) -- Push si Ram faible GEA.add({{"Global-", "RamFree", 35}}, 30, "Reboot HC2 car RAM inférieure à35%", {{"Time", "02:45", "02:50"},{"VirtualDevice", id["HC2_DIAGNOSTICS"], 16}}) -- Reboot HC2 si RAM faible -- Definition du Mode_Maison GEA.add({notVacation, notSick, atWork}, 30, "", {{"Days", "Monday, Tuesday, Wednesday, Thursday, Friday"}, {"Time", "08:40", "08:41"}, {"VirtualDevice", id["MODE_MAISON"], 2}}) GEA.add({notVacation, notSick, atWork}, 30, "", {{"Days", "Monday"}, {"Time", "13:00", "13:01"}, {"VirtualDevice", id["MODE_MAISON"], 3}}) GEA.add({notVacation, notSick, atWork}, 30, "", {{"Days", "Monday, Tuesday, Thursday"}, {"Time", "17:30", "17:31"}, {"VirtualDevice", id["MODE_MAISON"], 1}}) GEA.add({notVacation, notSick, atWork}, 30, "", {{"Days", "Wednesday"}, {"Time", "11:30", "11:31"}, {"VirtualDevice", id["MODE_MAISON"], 1}}) GEA.add({notVacation, notSick, atWork}, 30, "", {{"Days", "Friday"}, {"Time", "16:00", "16:01"}, {"VirtualDevice", id["MODE_MAISON"], 1}}) -- Maison en mode manuel GEA.add({{"Global", "Mode_Maison", "Manuel"}}, 30, "", {{"setDisarmed",id["MOV_ENTREE"]},{"setDisarmed",id["MOV_SALON"]},{"setDisarmed",id["OUV_CAVE"]},{"setDisarmed",id["OUV_CHAMBRE_AMIS"]},{"setDisarmed",id["MOV_BUREAU"]},{"VirtualDevice", id["ETAT_ALARME"], 1}}) -- Tous devices désarmés GEA.add({{"Global", "Mode_Maison", "Manuel"}}, 60, "Maison en Manuel", {{"Portable", 200},{"Portable", 240},{"Portable", 226},{"Global", "GEA_Status", "Desactive"}}) -- Gea en stdby -- Gestion des volets -- Ouverture tous les matin hors Vacances GEA.add({atWork, Present}, 1*60, "Ouverture Volets Semaine", {{"Time", "07:15", "07:20"}, {"Open",id["VOLETS_SALON"],100},{"Open",id["VOLETS_CUISINE"],100},{"VirtualDevice", id["GESTION_CAMERA"], 5}}) GEA.add({atHome, Present}, 1*60, "Ouverture Volets Weekend & Vacances", {{"Time", "08:15", "08:20"}, {"Open",id["VOLETS_SALON"],100},{"Open",id["VOLETS_CUISINE"],100},{"VirtualDevice", id["GESTION_CAMERA"], 5}}) GEA.add({Present, Canicule}, 1*60, "Ouverture Volets Canicule", {{"Time", "04:15", "04:20"}, {"Open",id["VOLETS_SALON"],90},{"VirtualDevice", id["METEO"], 12},{"VirtualDevice", id["GESTION_CAMERA"], 5}}) -- Fermeture matin semaine volets cuisine GEA.add({atWork, Absent}, 1*60, "Fermeture Volets Semaine", {{"Time", "08:45", "08:46"}, {"Close",id["VOLETS_CUISINE"],100},{"VirtualDevice", id["GESTION_CAMERA"], 6}}) -- Gestion de l'alarme -- Armement de l'alarme GEA.add(onVacation, 10*60, "Alarme ON Vacances", {{"setArmed",id["MOV_ENTREE"]},{"setArmed",id["MOV_SALON"]},{"setArmed",id["OUV_CAVE"]},{"setArmed",id["OUV_CHAMBRE_AMIS"]},{"setArmed",id["MOV_BUREAU"]},{"setArmed",id["MOV_COULOIR"]},{"setArmed",id["MOV_COULOIR_BAS"]},{"setArmed",id["OUV_SDB_BAS"]},{"setArmed",id["OUV_PORTE_GARAGE"]},{"setArmed",id["OUV_PORTAIL"]},{"VirtualDevice", id["ETAT_ALARME"], 2},{"VirtualDevice", id["GESTION_CAMERA"], 6},{"VirtualDevice", id["GESTION_CAMERA"], 2},{"VirtualDevice", id["GESTION_CAMERA"], 10}}) GEA.add(Absent, 1*60, "Alarme ON Absent", {{"setArmed",id["MOV_ENTREE"]},{"setArmed",id["MOV_SALON"]},{"setArmed",id["OUV_CAVE"]},{"setArmed",id["OUV_CHAMBRE_AMIS"]},{"setArmed",id["MOV_BUREAU"]},{"setArmed",id["OUV_SDB_BAS"]},{"setArmed",id["MOV_COULOIR"]},{"setArmed",id["MOV_COULOIR_BAS"]},{"setArmed",id["OUV_PORTE_GARAGE"]},{"setArmed",id["OUV_PORTAIL"]},{"VirtualDevice", id["ETAT_ALARME"], 2},{"VirtualDevice", id["GESTION_CAMERA"], 6},{"VirtualDevice", id["GESTION_CAMERA"], 2},{"VirtualDevice", id["GESTION_CAMERA"], 10}}) GEA.add(Night, 10*60, "Alarme ON Nuit", {{"setArmed",id["OUV_CAVE"]},{"setArmed",id["OUV_CHAMBRE_AMIS"]},{"setArmed",id["OUV_SDB_BAS"]},{"setArmed",id["OUV_PORTE_GARAGE"]},{"setArmed",id["OUV_PORTAIL"]},{"VirtualDevice", id["ETAT_ALARME"], 2}}) -- Désarmement de l'alarme GEA.add({Present, Journee, atWork}, 30, "Alarme OFF Présence Semaine", {{"setDisarmed",id["MOV_ENTREE"]},{"setDisarmed",id["MOV_SALON"]},{"setDisarmed",id["MOV_BUREAU"]},{"setDisarmed",id["OUV_SDB_BAS"]},{"setDisarmed",id["MOV_COULOIR"]},{"setDisarmed",id["MOV_COULOIR_BAS"]},{"setDisarmed",id["OUV_PORTE_GARAGE"]},{"setDisarmed",id["OUV_PORTAIL"]},{"VirtualDevice", id["ETAT_ALARME"], 1},{"VirtualDevice", id["GESTION_CAMERA"], 3},{"VirtualDevice", id["GESTION_CAMERA"], 8}}) GEA.add({Present, Journee, atHome}, 30, "Alarme OFF Présence Weekend - Vacances", {{"setDisarmed",id["MOV_ENTREE"]},{"setDisarmed",id["MOV_SALON"]},{"setDisarmed",id["OUV_CAVE"]},{"setDisarmed",id["MOV_COULOIR_BAS"]},{"setDisarmed",id["OUV_CHAMBRE_AMIS"]},{"setDisarmed",id["MOV_BUREAU"]},{"setDisarmed",id["MOV_COULOIR"]},{"setDisarmed",id["OUV_SDB_BAS"]},{"setDisarmed",id["OUV_PORTE_GARAGE"]},{"setDisarmed",id["OUV_PORTAIL"]},{"VirtualDevice", id["ETAT_ALARME"], 1},{"VirtualDevice", id["GESTION_CAMERA"], 3},{"VirtualDevice", id["GESTION_CAMERA"], 8}}) GEA.add({Menage, Journee}, 5*60, "Alarme OFF Ménage", {{"setDisarmed",id["MOV_ENTREE"]},{"setDisarmed",id["MOV_SALON"]},{"setDisarmed",id["MOV_BUREAU"]},{"setDisarmed",id["MOV_COULOIR_BAS"]},{"setDisarmed",id["MOV_COULOIR"]},{"VirtualDevice", id["ETAT_ALARME"], 1},{"VirtualDevice", id["GESTION_CAMERA"], 3},{"VirtualDevice", id["GESTION_CAMERA"], 8}}) -- Intrusion -- Action quand Variable àIntrusion GEA.add({Intrusion}, 5*60, "Mode Intrusion depuis #duration#",{{"Portable", 200},{"Portable", 240},{"Portable", 226},{"Repeat"}}) GEA.add({Intrusion,Night}, 30, "", {{"turnOn",id["ECL_BUANDERIE"]},{"turnOn",id["ECL_CAVE"]}}) -- On allume la cave si mode Intrusion GEA.add(id["SIRENE"], 5*60, "Sirene OFF",{{"turnOff",id["SIRENE"]},{"Global", "Etat_Alarme", "ON"}}) -- On stoppe la sirène apres 5mn -- Gestion de l'éclairage GEA.add(true, 5*60, "", {{"VirtualDevice", id["TOUTES_LUMIERES"], 14},{"Repeat"}}) GEA.add (id["ECL_CAVE"], 10*60, "Extinction Lumière cave, car allumée depuis #duration#", {{"turnOff"}, {"Portable", 200},{"Portable", 240},{"Portable", 226}}) GEA.add (id["ECL_BUANDERIE"], 10*60, "Extinction Lumière buanderie, car allumée depuis #duration#", {{"turnOff"}, {"Portable", 200},{"Portable", 240},{"Portable", 226}}) GEA.add({id["ECL_CAVE"]}, 30, "", {{"Inverse"},{"turnOff",id["ECL_BUANDERIE"]}}) -- Eclairaige Buanderie éteint si on eteint Eclairage Cave GEA.add({id["OUV_PORTAIL"], Soir}, 30, "", {{"turnOn",id["ECL_EXT"]},{"Global", "Portail", "Ouvert"}}) -- Eclairaige Exterieur On si Portail s'ouvre et Mode Soir --GEA.add({"Global","Portail", "Ouvert"}, 30, "", {{"turnOn",id["WP_GUIRLANDE"]}}) -- Mode Noel ; Eclairaige Guirlande quand on rentre le soir GEA.add({id["MOV_COULOIR_BAS"],{"Global","Portail", "Ouvert"}}, 60, "Extinction Eclairage Extérieur", {{"turnOff",id["ECL_EXT"]},{"Global","Portail", "Ferme"}}) -- On eteint l'Eclairage Exterieur une fois dans la maison -- Gestion des appareils -- Lave Linge GEA.add({"Global", "Lave_Linge", "En Attente"}, 5*60, "La machine est terminée depuis #duration#",{{"Portable", 200},{"Portable", 240},{"Portable", 226}}) GEA.add({"Sensor-", id["WP_LAVE_LINGE"], 2.8}, 30*60, "", {{"Global", "Lave_Linge", "Arret"}}) GEA.add({"Sensor+", id["WP_LAVE_LINGE"], 3}, 2*60, "", {{"Global", "Lave_Linge", "Lavage"}}) GEA.add({{"Sensor+", id["WP_LAVE_LINGE"], 1},{"Sensor-", id["WP_LAVE_LINGE"], 2.8}, {"Global", "Lave_Linge", "Lavage"}}, 1*60, "", {{"Global", "Lave_Linge", "En Attente"}}) -- Télé GEA.add({"Global", "Tele", "On"}, 30, "", {{"Slider", id["SONOS_REMOTE"], 15, 80}}) -- On fixe le son de la PlayBar à80% GEA.add({"Power-", id["PRISE_TELE"], 20}, 30, "", {{"Global", "Tele", "Off"},{"Slider", id["SONOS_REMOTE"], 15, 10}}) -- On repasse le son de la PlayBar à10% GEA.add({"Global", "Soiree", "TV"}, 30, "", {{"turnOn",id["WP_BAR"]},{"turnOff",id["ECL_SALON_PHARE"]},{"turnOff",id["WP_LISEUSE"]},{"Close",id["VOLETS_SALON"],65},{"Close",id["VOLETS_CUISINE"],100}}) -- Passage en Mode TV -- WP iMac GEA.add({"Sensor-", id["WP_BUREAU"], 20}, 60*60, "", {{"turnOff"}}) GEA.add(Present, 1*30, "",{{"Days", "Monday, Tuesday, Thursday, Friday"},{"Time", "17:30", "20:00"}, {"turnOn", id["WP_BUREAU"]}}) GEA.add(Present, 1*30, "",{{"Days", "Saturday, Sunday"},{"Time", "8:00", "10:00"}, {"turnOn", id["WP_BUREAU"]}}) GEA.add(Present, 1*30, "",{{"Days", "Wednesday"},{"Time", "11:30", "13:30"}, {"turnOn", id["WP_BUREAU"]}}) -- Playbar GEA.add(true, 60, "", {{"Days", "Monday"},{"Time", "20:00", "20:01"},{"VirtualDevice", id["SONOS_REMOTE"], 30}}) -- Annonce TTS2 (Déchets Verts) GEA.add(true, 60, "", {{"Days", "Tuesday"},{"Time", "20:00", "20:01"},{"VirtualDevice", id["SONOS_REMOTE"], 31}}) -- Annonce TTS3 (Déchets recyclabes) GEA.add(true, 60, "", {{"Days", "Thursday, Sunday"},{"Time", "20:00", "20:01"},{"VirtualDevice", id["SONOS_REMOTE"], 32}}) -- Annonce TTS4 (Poubelles) GEA.add({"Global", "SortirVerres", "Yes"}, 60, "", {{"Time", "20:00", "20:01"},{"VirtualDevice", id["SONOS_REMOTE"], 33}}) -- Annonce TTS5 (Verres) GEA.add({"Global", "SortirEncombrants", "Yes"}, 60, "", {{"Time", "20:00", "20:01"},{"VirtualDevice", id["SONOS_REMOTE"], 34}}) -- Annonce TTS6 (Encombrants) GEA.add({"Global", "EtatPlaybar", "Stopped"}, 15*60, "",{{"Slider", id["SONOS_REMOTE"], 15, 10}}) -- On fixe le son de la Playbar à10% si non utilisée --Gestion des portes GEA.add({Soir,id["OUV_CAVE"]}, 5*60, "La porte de la cave est toujours ouverte",{{"Portable", 200},{"Portable", 240},{"Portable", 226},{"Repeat"}}) GEA.add({Soir,id["OUV_CHAMBRE_AMIS"]}, 5*60, "La porte de la chambre d'amis est toujours ouverte",{{"Portable", 200},{"Portable", 240},{"Portable", 226},{"Repeat"}}) GEA.add({Soir,id["OUV_PORTE_GARAGE"]}, 5*60, "La porte du garage est toujours ouverte",{{"Portable", 200},{"Portable", 240},{"Portable", 226},{"Repeat"}}) --Gestion de l'arrosage GEA.add({id["ARROSAGE_BORDURES"]}, 15*60, "Arrêt du goutte àgoutte après #duration#", {{"Portable", 200},{"Portable", 240},{"Portable", 226},{"turnOff"},{"Repeat"}}) GEA.add({id["ARROSAGE_JARDIN"]}, 10*60, "Arret arrosage jardin après #duration#", {{"Portable", 200},{"Portable", 240},{"Portable", 226},{"turnOff"},{"VirtualDevice", id["CALCUL_ARROSAGE"], 11},{"Repeat"}}) GEA.add(true, 15*60, "", {{"VirtualDevice", id["CALCUL_ARROSAGE"], 2},{"Repeat"}}) -- Rafraichir les données pluie Jour Et Previsions GEA.add(true, 30, "", {{"Time", "00:06", "00:07"},{"VirtualDevice", id["CALCUL_ARROSAGE"], 14}}) -- Traitement de l'Historique Pluie GEA.add({{"Global+", "ConsoEau", 500}}, 30, "Attention Conso d'eau élevée", {{"Time", "21:00", "21:01"}}) -- Push si Conso d'eau > 1000 litres -- Push Météo GEA.add(true, 60*60, "", {{"VirtualDevice", id["METEO"], 1},{"Repeat"}}) -- Previsions Meteo GEA.add ({{"Global!", "Meteo_Actuelle_Jou", ""},atWork, Present}, 30, "#value#",{{"Time", "07:20", "07:21"},{"Portable", 200},{"Portable", 240},{"Portable", 226}}) -- push météo le matin GEA.add ({{"Global!", "Meteo_Lendemain", ""},Present}, 30, "#value#",{{"Time", "20:00", "20:01"},{"Portable", 200},{"Portable", 240},{"Portable", 226}}) -- push météo le soir -- Push Trafic GEA.add(true, 2*60, "", {{"VirtualDevice", id["ETAT_TRAFIC"], 1},{"Repeat"}}) -- Refresh toutes les 2mn l'etat du trafic GEA.add ({"Global!", "EtatTrafic", "OK"}, 15*60, "#value#",{{"Repeat"}}) -- Push EtatTrafic si NOK toutes les 15mn -- Fin Mon GEA ------ et Debut Mon GEA Instantané---------------------------- -- Gestion de l'alarme -- Intrusion -- Variable àIntrusion si module en alerte et armé GEA.add({id["OUV_CAVE"]}, -1, "Alerte intrusion ! Porte Cave - #date# #time#", {{"Armed"}, {"VirtualDevice", id["ETAT_ALARME"], 3}, {"VirtualDevice", id["GESTION_CAMERA"], 2}, {"VirtualDevice", id["GESTION_CAMERA"], 6}}) GEA.add({id["OUV_CHAMBRE_AMIS"]}, -1, "Alerte intrusion ! Porte Chambre Amis - #date# #time#", {{"Armed"}, {"VirtualDevice", id["ETAT_ALARME"], 3}, {"VirtualDevice", id["GESTION_CAMERA"], 2}, {"VirtualDevice", id["GESTION_CAMERA"], 6}}) GEA.add({id["OUV_SDB_BAS"]}, -1, "Alerte intrusion ! Porte Salle de Bain - #date# #time#", {{"Armed"}, {"VirtualDevice", id["ETAT_ALARME"], 3}, {"VirtualDevice", id["GESTION_CAMERA"], 2}, {"VirtualDevice", id["GESTION_CAMERA"], 6}}) GEA.add({id["MOV_BUREAU"]}, -1, "Alerte intrusion ! Bureau - #date# #time#", {{"Armed"}, {"VirtualDevice", id["ETAT_ALARME"], 3}, {"VirtualDevice", id["GESTION_CAMERA"], 2}, {"VirtualDevice", id["GESTION_CAMERA"], 6}}) GEA.add({id["MOV_ENTREE"]}, -1, "Alerte intrusion ! Entrée - #date# #time#", {{"Armed"}, {"VirtualDevice", id["ETAT_ALARME"], 3}, {"VirtualDevice", id["GESTION_CAMERA"], 2}, {"VirtualDevice", id["GESTION_CAMERA"], 6}}) GEA.add({id["MOV_COULOIR_BAS"]}, -1, "Alerte intrusion ! Couloir Bas - #date# #time#", {{"Armed"}, {"VirtualDevice", id["ETAT_ALARME"], 3}, {"VirtualDevice", id["GESTION_CAMERA"], 2}, {"VirtualDevice", id["GESTION_CAMERA"], 6}}) GEA.add({id["MOV_SALON"]}, -1, "Alerte intrusion ! Salon - #date# #time#", {{"Armed"}, {"VirtualDevice", id["ETAT_ALARME"], 3}, {"VirtualDevice", id["GESTION_CAMERA"], 2}, {"VirtualDevice", id["GESTION_CAMERA"], 7}}) GEA.add({id["OUV_PORTE_GARAGE"]}, -1, "Alerte intrusion ! Garage - #date# #time#", {{"Armed"}, {"VirtualDevice", id["ETAT_ALARME"], 3}, {"VirtualDevice", id["GESTION_CAMERA"], 2}, {"VirtualDevice", id["GESTION_CAMERA"], 7}}) -- Si Variable deja àIntrusion et 2nde détection et Mode Vacances alors Sirene ON GEA.add({id["OUV_CAVE"],Intrusion, onVacation}, -1, "Intrusion confirmée! Porte Cave - Sirene ON - #date# #time#", {{"Armed"}, {"turnOn",id["SIRENE"]},{"Repeat"}}) GEA.add({id["OUV_CHAMBRE_AMIS"],Intrusion, onVacation}, -1, "Intrusion confirmée! Porte Chambre Amis - Sirene ON - #date# #time#", {{"Armed"},{"turnOn",id["SIRENE"]},{"Repeat"}}) GEA.add({id["OUV_SDB_BAS"],Intrusion, onVacation}, -1, "Intrusion confirmée! Porte Salle de Bain - Sirene ON - #date# #time#", {{"Armed"},{"turnOn",id["SIRENE"]},{"Repeat"}}) GEA.add({id["MOV_BUREAU"],Intrusion, onVacation}, -1, "Intrusion confirmée! Bureau - Sirene ON - #date# #time#", {{"Armed"},{"turnOn",id["SIRENE"]},{"Repeat"}}) GEA.add({id["MOV_ENTREE"],Intrusion, onVacation}, -1, "Intrusion confirmée! Entrée - Sirene ON - #date# #time#", {{"Armed"},{"turnOn",id["SIRENE"]},{"Repeat"}}) GEA.add({id["MOV_COULOIR_BAS"],Intrusion, onVacation}, -1, "Intrusion confirmée! Couloir Bas - Sirene ON - #date# #time#", {{"Armed"},{"turnOn",id["WP_LISEUSE"]},{"Repeat"}}) GEA.add({id["MOV_SALON"],Intrusion, onVacation}, -1, "Intrusion confirmée! Salon - Sirene ON - #date# #time#", {{"Armed"},{"turnOn",id["SIRENE"]},{"Repeat"}}) GEA.add({id["OUV_PORTE_GARAGE"],Intrusion, onVacation}, -1, "Intrusion confirmée! Garage - Sirene ON - #date# #time#", {{"Armed"},{"turnOn",id["SIRENE"]},{"Repeat"}}) -- Arret Scene Intrusion GEA.add({id["ECL_CHAMBRE_PARENTS"], Intrusion}, -1, "Mode Panic OFF", {{"Inverse"},{"VirtualDevice", id["ETAT_ALARME"], 1}}) -- Gestion de l'éclairage -- Eclairage de la cave GEA.add({id["OUV_SDB_BAS"]}, -1, "", {{"turnOn",id["ECL_CAVE"]},{"turnOn",id["ECL_BUANDERIE"]}}) -- Eclairage le soir GEA.add({{"power-", id["PRISE_TELE"], 20},{"Global", "Tele", "On"}}, -1, "",{{"Time", "21:00", "23:00"},{"Value", id["ECL_CHAMBRE_PARENTS"], 35}, {"turnOn",id["ECL_SALON_PHARE"]},{"Global", "Tele", "Off"},{"VirtualDevice", id["MODE_MAISON"], 1},{"Close",id["VOLETS_SALON"],100},{"Close",id["VOLETS_CUISINE"],100},{"VirtualDevice", id["GESTION_CAMERA"], 6}}) --même ligne sans éclairage chambre --GEA.add({{"power-", id["PRISE_TELE"], 20},{"Global", "Tele", "On"}}, -1, "",{{"Time", "21:00", "23:00"}, {"turnOn",id["ECL_SALON_PHARE"]},{"Global", "Tele", "Off"},{"VirtualDevice", id["MODE_MAISON"], 1},{"Close",id["VOLETS_SALON"],100},{"Close",id["VOLETS_CUISINE"],100},{"VirtualDevice", id["GESTION_CAMERA"], 6}}) -- Gestion Sonos GEA.add({"Power+", id["PRISE_TELE"], 80}, -1, "", {{"Global", "Tele", "On"},{"VirtualDevice", id["SONOS_REMOTE"], 8}}) -- Fin Mon GEA Instantanée ----------------------------------------------------- Modifié le 2 janvier 2016 par Sakkhho 2
jojo Posté(e) le 18 mai 2015 Signaler Posté(e) le 18 mai 2015 (modifié) en tant que FAN de GEA, je me devais de publier, même si rien de bien sorcier. --[[ %% autostart %% properties 221 value 222 value 20 value 22 value 384 value 241 value 243 value 97 value 99 value 101 value 366 value 79 value 78 value 335 value 329 value 336 value 330 value 362 value 363 value 12 value 42 value 233 value 234 value 179 value 66 value 70 value 107 value 369 value 381 value 260 value 280 value 284 value 268 value 264 value 296 value 292 value 300 value 272 value 276 value %% globals Auth_TV Auth_PS3 Incendie --]] --[[ -- SECTION : Etage ------------ 221 value MVT_HALLNUIT_SDJ 222 value MVT_HALLNUIT_SDB 20 value LUM_HALLNUIT_SDJ 22 value LUM_HALLNUIT_SDB 384 value PRISE_PS3 -- SECTION : Extérieur ------------ 241 value LUM_JARDIN 243 value LUM_TERRSUD 97 value PISCPMP_CMD 99 value PISCPMP_OUTPUT 101 value PISCCHAUF_CMD 366 value CONTACT_GACHE 79 value BARRIERE_OPENED 78 value BARRIERE_CLOSED 335 value MVT_EST_AVANT 329 value MVT_OUEST_AVANT 336 value MVT_EST_JARDIN 330 value MVT_OUEST_JARDIN 362 value BOITELETTRES_FACTEUR 363 value BOITELETTRES_PORTE -- SECTION : Rez de chaussée ------------ 12 value PRISE_TV 42 value LUM_SDBREZ_LAVABO 233 value ALARME_INTRUSION 234 value ALARME_ACTIVE 179 value PORTE_COULISS 66 value GV_MVT 70 value GA_MVT 107 value MVT_HALLENTRE_S 369 value MVT_HALLENTRE_C -- Détecteurs incentide ------------------------ 381 value FUME_BIBLIOTHEQUE 260 value FUME_BUREAU 280 value FUME_MAXIMILIEN 284 value FUME_PAULINE 268 value FUME_HALLNUIT_SDB 264 value FUME_HALLNUIT_SDJ 296 value FUME_SDJ 292 value FUME_SDBETAGE 300 value FUME_GARAGE 272 value FUME_HALLENTRE_C 276 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 VOU Modifié le 8 juin 2016 par jojo 6
sebcbien Posté(e) le 31 août 2015 Auteur Signaler Posté(e) le 31 août 2015 Voici ma config Mise àJour. Je ne peux pas modifier le premier post, car l'éditeur plante et tout le code est mis àla suite, il n'y a plus de retour àla ligne... Et comme je n'ai pas envie de tout retaper... ;-) --[[ %% autostart %% properties 45 sceneActivation 49 sceneActivation 1292 sceneActivation 83 value 84 value 114 value 986 value 988 value 989 value 1005 value 1006 value 1313 value %% globals Phone_GG_Present Phone_Seb_Present Porte_Gar_Action House_Mode Alarme_Status --]] -- v 5.33 function yourcode() -- Variable Globale de l'instance GEA.globalTasks = "GEA_Tasks_V5_1" GEA.regexFullAllow = true GEA.isVersionFour = false --- 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 = {} -- [FR] Affichage des traces dans la console (default : false) -- [EN] Show trace in the debug window GEA.debug = false -- [FR] Ne capture pas les erreurs, stop GEA en indiquant le message d'erreur --GEA.catchError = false -- [FR] Tableau d'identifiant (facultatif) -- [EN] ID table (optional) local id = { PHONE_SEB = 1347, ------- not in id2 PHONE_GG = 1327, ------- not in id2 SCENE_REVEIL_DOUCEUR = 66 --------- not in id2 } -- IDs générés le : 25/08/15 à18:09:04 local id2 = { --Salon CORNICHE_SALON = 9, XBMC_REMOTE = 108, SALON_FLOD = 72, TV___AMPLI = 80, COMMANDE_CORNICHES = 65, SALON = 45, SALON_MVT = 987, SALON_TEMPERATURE_FL = 74, LAMPADAIRES_SALON = 23, MARANTZ_SALON = 1282, --SAM CORNICHE_CUIS_SAM = 1328, SAM_MVT = 988, SAM_CONTACT = 995, SALLE_A_MANGER = 64, --Cuisine CUISINE = 55, POE_CAM_CUISINE__P6_ = 1308, CUISINE_CONTACT = 994, --Hall Entrée HALL = 52, HALL_MVT = 989, POE_CAM_ENTREE__P1_ = 1302, CARILLON = 114, --Garage GARAGE_MVTZ = 1287, GARAGE_TEMPERATURE = 1288, GARAGE_MVT = 1004, GARAGE_HAUT = 1003, GARAGE_BAS = 1002, GARAGE_HUMIDITE = 1289, GARAGE_LUMINOSITE = 1290, REMOTE_GARAGE = 1138, GARAGE = 51, --Bureau PRISE_PC_BUREAU = 76, BUREAU = 49, WOL_SHUT = 40, LED_BUREAU = 1312, --Cellier RASPVMC__P5_ = 1307, CELLIER = 56, UPS_IT__SYNO_PRT_PC_ = 39, CELLIER_MVT = 1005, VMC = 25, CELLIER_CONTACT = 991, SURGELATEUR = 77, --WC WC = 50, WC_MVT = 1006, --Chambre Parents ROUTEUR_1ER__P2_ = 1304, CH_PARENTS_CONT_ = 998, CHAMBRE_PARENTS = 47, DRESSING = 42, --Chambre Emilien CH_EMILIEN_CONT_ = 996, COLOR_LAPIN_EMILIEN = 1324, BABYPHONE_EMILIEN = 83, CHAMBRE_EMILIEN = 58, --Chambre Thomas CHAMBRE_THOMAS = 41, BABYPHONE_THOMAS = 84, COLOR_LAPIN_THOMA = 1326, CH_THOMAS_CONT_ = 997, --Chambre Amis CH_AMIS_CONTACT = 1001, CHAMBRE_AMIS = 24, --SDB Parents SDB_SDD_CONT_ = 1000, SALLE_DE_BAIN = 16, RGBW_DRESSING_SDB = 27, SDB_TEMPERATURE = 1314, SDB_MVTZ = 1313, SDB_LUMINOSITE = 1315, SDB_FLOD = 86, SDB_TEMPERATURE_FLO = 88, --Couloir COULOIR_MVT = 986, COULOIR = 1316, --Coin Chaudière TEMP_EAU_REZ = 1360, TEMP_EAU_BOILER = 1362, TEMP_EAU_1ER = 1361, --Grenier GRENIER_TEMPERATURE = 1359, --Terrasse TERRASSE = 63, --Technique SEND_PHOTO__5_CAM_ = 1275, SEND_SMS = 1274, BATTERY_STATUS = 1291, ID_GENERATOR_FOR_V3_6 = 1321, LOG_GLOBAL_VARIABLES = 1363, GRAPHIQUES = 90, NOTIFIER = 93, CLOCK_SYNC = 107, HC2 = 22, THINGSPEAK_PUSH = 35, --Labo de Test FORCE_V_GLOBALES = 1281, TRIGGER_RECEIVER = 111, --Maison (Global) REVEIL_AURORE_FAMILLE = 1318, INCENDIE_1_2_3 = 999, PRESENCE_SIMULATOR = 94, LAPIN_EMILIEN = 1317, TERRASSE__HC2_ = 101, PARKING__HC1_ = 95, CAMERAS = 89, LAPIN_THOMAS = 1325, STATUS_MAISON = 82, ELEC_PHASE_3_MAISON = 1351, ELEC_PHASE_2_MAISON = 1350, GARAGE__AXIS_207W_ = 1352, CONSOMMATIONS_ = 60, CUISINE__HC3_ = 102, ELEC_PHASE_1_MAISON = 1349, ENTRE__AXIS_212PTZ_ = 62, VITESSE_VMC = 78, ELEC_TOTAL_MAISON = 1348, NETATMO_THERMOSTAT = 1331, LOG_ALARME = 1345, GESTION_ALARME = 1311, LOG = 106, SATELALARM = 985, SONNETTE = 115, PRESENCE_GG = 110, PRESENCE_SEB = 109, CONSO_ELECTRIQUE = 103 } -- [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 -- == CONDITIONS == -- 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 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"} -- 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"} ------------------------------------------------------------------------- ----------------MUSIQUE SALON------------------ GEA.add({estAt_Home, {"Sensor-", id2["TV___AMPLI"], 50}}, 5*60, "At Home entre 6h et 13h - Marantz Scénario Matin", {{"Time", "06:00", "13:00"}, {"VirtualDevice", id2["MARANTZ_SALON"], 23}}) GEA.add({estAt_Home, {"Sensor-", id2["TV___AMPLI"], 50}}, 5*60, "At Home entre 17h et 19h30 - Marantz Scénario Soir", {{"Time", "17:00", "18:30"}, {"VirtualDevice", id2["MARANTZ_SALON"], 24}}) ----------------------------------------------- ----------CAMERAS POE INTERIEURES-------------- --Pas Away ou Night_All_Off, extinction cameras apres 10 min GEA.add({"Global!", "PresentState", "Away|Night_All_Off"}, 10*60, "", {{"turnOff", id2["POE_CAM_ENTREE__P1_"]},{"Function", function() fibaro:sleep(500) end},{"turnOff", id2["POE_CAM_CUISINE__P6_"]}}) --Away ou Night_All_Off, Allumage des cameras GEA.add({"Global", "PresentState", "Away|Night_All_Off"}, 30, "", {{"turnOn", id2["POE_CAM_ENTREE__P1_"]},{"Function", function() fibaro:sleep(500) end},{"turnOn", id2["POE_CAM_CUISINE__P6_"]}}) ----------------------------------------------- -------------------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"], 1}, -1, "Sonnette actionnée à#time# le #date#", {{"Portable", id["PHONE_SEB"]}, {"Portable", id["PHONE_GG"]}, {"VirtualDevice", id2["SEND_PHOTO__5_CAM_"], "10"},}) ----------------------------------------------- -------------------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},{"Global","PresentState", "Kids_Sleeping"}}) GEA.add({id2["BABYPHONE_EMILIEN"],estKids_Sleeping}, -1, "", {{"Inverse"},{"turnOff", id2["BABYPHONE_THOMAS"]},{"Global","PresentState", "At_Home"},{"VirtualDevice", id2["COLOR_LAPIN_THOMA"], 18},{"VirtualDevice", id2["COLOR_LAPIN_EMILIEN"], 18}}) GEA.add(id2["BABYPHONE_THOMAS"], -1, "", {{"turnOn", id2["BABYPHONE_EMILIEN"]},{"VirtualDevice", id2["COLOR_LAPIN_THOMA"], 18},{"VirtualDevice", id2["COLOR_LAPIN_EMILIEN"], 18},{"Global","PresentState", "Kids_Sleeping"}}) GEA.add({id2["BABYPHONE_THOMAS"],estKids_Sleeping}, -1, "", {{"Inverse"},{"turnOff", id2["BABYPHONE_EMILIEN"]},{"Global","PresentState", "At_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,{"Value-", id2["HALL"],59}}, -1, "", {{"Time", "Sunset-30", "Sunrise+30"}, {"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"], 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 2 mn et on l'éteint après 3mn si pas de mouvement ou si la lampe àété remontée a plus de 76% local malampewc = GEA.add({"Value+", id2["WC"],89}, 4*60, "",{{"Value", 15},{"Repeat"}}) local malampewcdim = GEA.add({{"Value-", id2["WC"],55},{"Value+", id2["WC"], 1}}, 4*60,"",{{"Value", id2["WC"], 95},{"Function", function() fibaro:sleep(300) end},{"turnOff"},{"Repeat"}}) -- Relance des tâches en cas de détection GEA.add(id2["WC_MVT"], -1, "", {{"RestartTask", malampewc},{"RestartTask", malampewcdim}}) ----------------------------------------------- --------------------SALON---------------------- -- S2 long press alume ampli et lance FAV 1 Si allumé alors éteint et stoppe XBMC GEA.add({{"SceneActivation", id2["SALON"] , 22},{"Sensor-", id2["TV___AMPLI"], 25}}, -1, "",{{"VirtualDevice",id2["MARANTZ_SALON"],"8"}}) GEA.add({{"SceneActivation", id2["SALON"] , 22},{"Sensor+", id2["TV___AMPLI"], 45}}, -1, "",{{"VirtualDevice",id2["MARANTZ_SALON"],"6"},{"VirtualDevice",id["VD_XBMC_REMOTE"],"2"}}) -- Si l'ampli comsomme moins de 25w depuis 20 minutes, on eteint ampli et pause XBMC après 30 minutes GEA.add({"Sensor-", id2["TV___AMPLI"], 25}, 20*60, "Conso TV Salon moins de 25W (#value#) depuis 20 min à#time#", {{"Time", "07:26", "22:59"}}) GEA.add({"Sensor-", id2["TV___AMPLI"], 25}, 30*60, "Turn off TV at #time# car conso à#value#", {{"VirtualDevice",id2["MARANTZ_SALON"],"6"},{"VirtualDevice",id["VD_XBMC_REMOTE"],"2"}}) --------------------- -- 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)") ----------------------------------------------- --------------------BUREAU--------------------- -- Si PRISE_BUREAU comsomme moins de 45w depuis 20 minutes, on averti et on coupe après 30 minutes GEA.add({"Sensor-", id2["PRISE_PC_BUREAU"], 45}, 20*60, "PRISE_BUREAU Conso en veille depuis 20 min ! PC Seb OFF in 10 Min !", {{"Portable", id["PHONE_SEB"]}, {"Time", "07:26", "22:59"}}) -- pc + ecran 120w - ecran eteint 67w - sleep 4W GEA.add({"Sensor-", id2["PRISE_PC_BUREAU"], 20}, 30*60, "", {{"turnOff"}}) --------------------- -- S2 long press alume PC GEA.add({{"SceneActivation", id2["BUREAU"] , 22},{"Value-", id2["PRISE_PC_BUREAU"], 1}}, -1, "", {{"turnOn", id2["PRISE_PC_BUREAU"]}, {"Function", function() fibaro:sleep(5000) end},{"Function", function() fibaro:call(id["VD_WOL"], "pressButton", "1") end}}) ----------------------------------------------- -------------------SAM------------------------- -- si PeriodeSunSet ou PeriodeSunRise, allumer lampe automatiquement si moins de 64% GEA.add({id2["SAM_MVT"],{"Value-", id2["SALLE_A_MANGER"],94}, estNotHouse_Manuel}, -1, "",{PeriodeSunSetSAM,PeriodeSunRiseSAM,{"Value", id2["SALLE_A_MANGER"], 95}}) -- Hors Periodes sunset & sunrise, allumage manuel -- Si déjàAllumé, Re-Allumage à65% dès que détection mouvement sauf si module déjàa + de 64% (économie zwave) GEA.add({id2["SAM_MVT"],{"Value+", id2["SALLE_A_MANGER"], 1},{"Value-", id2["SALLE_A_MANGER"],94}}, -1, "",{{"Value", id2["SALLE_A_MANGER"], 95}}) -- Après 10min on dimme la lampe à34% si pas de mouvement local malampesam = GEA.add({"Value+", id2["SALLE_A_MANGER"],59}, 10*60, "",{{"Value", id2["SALLE_A_MANGER"], 24},{"Repeat"}}) -- Après 3 min on met la lampe à65% (prète pour prochain allumage) puis on éteint, uniquement si la lampe est entre 1 et 35 local malampesamdim = GEA.add({{"Value-", id2["SALLE_A_MANGER"],25},{"Value+", id2["SALLE_A_MANGER"], 1}}, 3*60,"",{{"Value", id2["SALLE_A_MANGER"], 95},{"Function", function() fibaro:sleep(300) end},{"turnOff"}},{"Repeat"}) -- Relance des tâches en cas de détection si la lampe est allumée (économise GEA) GEA.add({id2["SAM_MVT"],{"Value+", id2["SALLE_A_MANGER"], 1}}, -1, "", {{"RestartTask", malampesam},{"RestartTask", malampesamdim}}) -------------------CELLIER--------------------- -- Allumle 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, "", {{"Function", function() fibaro:call(id2["CELLIER"], "setValue", "99") end}}) -- Eteindre la lampe du cellier si pas de présence plus de 3 mn. local malampecellier = GEA.add(id2["CELLIER"], 3*60, "", {{"turnOff",id2["CELLIER"]}}) GEA.add(id2["CELLIER_MVT"], -1, "", {{"RestartTask", malampecellier}}) ----------------------------------------------- -------------------COULOIR--------------------- -- Si Maison passe en mode manuel ou Night_All_Off, on allume le routeur 1er s'il n'est pas déjàallumé GEA.add({estHouse_Manuel, {"Value-",id2["ROUTEUR_1ER__P2_"],1}}, -1, "Routeur 1er Allumé",{{"turnOn", id2["ROUTEUR_1ER__P2_"]}}) --GEA.add({estNight_All_Off,{"Sensor-", id2["RGBW_DRESSING_SDB"],1}}, -1, "Rgb sdb Allumé",{{"RGB", id2["RGBW_DRESSING_SDB"], 0, 0, 0, 10}}) -- Si le détecteur Couloir détecte une présence on allume le routeur 1er GEA.add({id2["COULOIR_MVT"],{"Value-",id2["ROUTEUR_1ER__P2_"],1}}, -1, "", {{"turnOn"}}) -- Éteindre le routeur si pas de présence plus de 30 mn. local monRouteur1er = GEA.add({id2["ROUTEUR_1ER__P2_"],estNotHouse_Manuel}, 30*60, "",{{"turnOff"},{"Repeat"}}) -- Relance de la tâche en cas de détection GEA.add({id2["COULOIR_MVT"],estNotHouse_Manuel}, -1, "", {{"RestartTask", monRouteur1er}}) -- Éteint lumière couloir àl'aube si away (allumé par simulateur de présence) GEA.add({id2["COULOIR"], estAway}, 60, "Sunrise and Away - Lampe couloir off at #time#",{{"Time", "Sunrise+30", "Sunrise+35"}, {"turnOff"}}) --GEA.add({id2["COULOIR"]}, 60, "turning off lampe couloir",{{"Time", "00:21", "00:26"}, {"turnOff"}}) ----------------------------------------------- ---------------DETECTION PRESENCE-------------- -- Signale GG at Home GEA peux se déclencher sur un changement de valeur d'une variable global GEA.add({"Global", "Phone_GG_Present", "1"}, -1, "GG est arrivée à#time#", {{"Portable", id["PHONE_SEB"]}, {"Time", "00:01", "23:59"}}) GEA.add({"Global", "Phone_GG_Present", "0"}, -1, "GG est partie à#time#", {{"Portable", id["PHONE_SEB"]}, {"Time", "00:01", "23:59"}}) GEA.add({"Global", "Phone_Seb_Present", "1"}, -1, "Seb est arrivé à#time#", {{"Portable", id["PHONE_SEB"]}, {"Time", "00:01", "23:59"}}) GEA.add({"Global", "Phone_Seb_Present", "0"}, -1, "Seb est parti à#time#", {{"Portable", id["PHONE_SEB"]}, {"Time", "00:01", "23:59"}}) ----------------------------------------------- ----------------- THERMOSTAT ------------------ -- set THERMOSTATc to Away or Program when away or not away GEA.add({estAway,estWinter}, 60, "Set Thermostats to Away at #time#", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"2"}}) GEA.add({estNotAway,estWinter}, 60, "Set Thermostats to Program at #time#", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"3"}}) GEA.add(estSummer, 60, "Set Thermostats to Frost Gard (Summer) at #time#", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"4"}}) ----------------------------------------------- --------------------- VMC --------------------- -- read and set vmc to absent and lock manual when away GEA.add(estAway, 60, "", {{"Global","VMC_Lock","1"},{"Global","VMC_Speed","Absent"},{"VirtualDevice",id2["VITESSE_VMC"],"2"}}) GEA.add(estNotAway, 60, "", {{"Global","VMC_Lock", "0"},{"VirtualDevice",id2["VITESSE_VMC"],"2"}}) -- surveillance V3 VMC plus de 30 minutes GEA.add({"Global", "VMC_Speed", "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}}) -----------------------------------------------
sebcbien Posté(e) le 17 octobre 2015 Auteur Signaler Posté(e) le 17 octobre 2015 Petit code gea qui permet de déclencher une action a un changement d'état d'une VG tout en connaissant son état précédent pendant XX minutes Je voulais déclencher une action si ma variable globale était PresentState=At_Home, mais uniquement si elle était à "Away" ou "Night_All_Off" pendant au moins 30 minutes juste avant... local estAt_Home = {"Global", "PresentState", "At_Home"} local estAwayOrNigh_All_Off = {"Global", "PresentState", "Night_All_Off|Away"} ----------------MUSIQUE SALON------------------ isLongAwayOrNightAllOff = false GEA.add(estAwayOrNigh_All_Off, 30*60, "", {{"function",function() isLongAwayOrNightAllOff = true end}}) GEA.add({estAt_Home,{"function",function() return isLongAwayOrNightAllOff end}}, 60, "At Home entre 6h et 11h - Marantz Scénario Matin",{{"Time", "06:00", "11:00"}, {"VirtualDevice", id2["MARANTZ_SALON"], 23},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"},{"function",function() isLongAwayOrNightAllOff=false end}}) GEA.add({estAt_Home,{"function",function() return isLongAwayOrNightAllOff end}}, 60, "At Home entre 17h et 19h30 - Marantz Scénario Soir",{{"Time", "17:00", "19:30"}, {"VirtualDevice", id2["MARANTZ_SALON"], 24},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"},{"function",function() isLongAwayOrNightAllOff=false end}}) 2
sebcbien Posté(e) le 17 octobre 2015 Auteur Signaler Posté(e) le 17 octobre 2015 si vous voulez recevoir un email de notification, mais pas de push sur mobile, voici un truc: GEA.add({estAway,estWinter}, 60, "Set Thermostats to Away at #time#", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"2"},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"}}) Il suffit de spécifier un push vers un id inexistant : id["PHONE_FAKE"] Vous ne reçevrez alors que un email
971jmd Posté(e) le 18 octobre 2015 Signaler Posté(e) le 18 octobre 2015 Deux manier de changer une variable cas n°1: Autorisation de changement variable (jour_nuit) par double clic uniquement entre 00H00 et 8H00 directement dans le code GEA -----Autorisation de changement variable (jour_nuit) par double clic uniquement entre 00H00 et 8H00 GEA.add({"SceneActivation", id["VOLET_PRINCIPAL"] , 24}, -1, "Activation de la variable en Mode nuit", {{"Time", "00:00", "8:00"}, {"Global", "jour_nuit", "1"}}) cas n°2 : à tout moment vous souhaitez modifier ce temps (00H00 et 8H00) à partir de votre tablette ou smartphone sans rentrée dans le code GEA. ----Activation de la variable par VD ALARME GEA.add({"Alarm", id["modenuit_on"]}, -1, "Activation Mode nuit Prog", {{"Global", "jour_nuit", "1"}}) ----désactivation de la variable par VD ALARME GEA.add({"Alarm", id["modenuit_off"]}, -1, "Desactivation Mode nuit prog", {{"Global", "jour_nuit", "0"}}) 1
971jmd Posté(e) le 18 octobre 2015 Signaler Posté(e) le 18 octobre 2015 Deux manier de changer une variable selon un temps X cas n°1: Autorisation de changement variable (jour_nuit) par double clic uniquement entre 00H00 et 8H00 -----Autorisation de changement variable (jour_nuit) par double clic uniquement entre 00H00 et 8H00 GEA.add({"SceneActivation", id["VOLET_PRINCIPAL"] , 24}, -1, "Activation de la variable en Mode nuit", {{"Time", "00:00", "8:00"}, {"Global", "jour_nuit", "1"}}) cas n°2 : à tout moment vous souhaitez modifier ce temps (00H00 et 8H00) à partir de votre tablette ou smartphone sans rentrée dans le code GEA. ----Activation de la variable par VD ALARME GEA.add({"Alarm", id["modenuit_on"]}, -1, "Activation Mode nuit Prog", {{"Global", "jour_nuit", "1"}}) ----désactivation de la variable par VD ALARME GEA.add({"Alarm", id["modenuit_off"]}, -1, "Desactivation Mode nuit prog", {{"Global", "jour_nuit", "0"}}) 1
sebcbien Posté(e) le 7 avril 2016 Auteur Signaler Posté(e) le 7 avril 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 -- 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_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"} -- 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 SetClosed = {"Global", "Porte_Garage", "Closed"} local SetOpen = {"Global", "Porte_Garage", "Open"} local SetNot_Closed = {"Global", "Porte_Garage", "Not_Closed"} -----------------LAMPE GARAGE------------------ -- surveillance Lampe Garage: GEA.add(id2["GARAGE"], 180*60, "La Lampe du garage est Allumée depuis #duration# à #time#", {{"MaxTime", 8},{"Repeat"}}) -- Cas d'utilisation et besoins: -- Besoin de longues durées d'allumage via action manuelle (1h30). -- Via interupteur manuel LAMPE_GARAGE -- Allumage de la lumière manuellement (dimmer à 99%, via double click ou dernière valeur d'extinction) -- On clignotte la lampe après 1h30 et on set le dimer à 97% (passe la main au script d'extinction et de détection de mouvement) -- Dans tous les cas, après un clignottement, Un double click ramènera le dimmer à 99% et relancerait un cycle de 1h30 -- Garage était 2h45 à 99%, set 97% (Gea Mvt Garage) GEA.add({{"Value", id2["GARAGE"],99},estNotHouse_Manuel}, 165*60, "Garage 1H30 à 99%",{{"turnOff", id2["GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id2["GARAGE"], 98}}) -- Allumage Via DETECTEUR Mouvement GARAGE -- Allumage à 98% dès que détection mouvement. La 2e condition permet de ne pas renvoyer d'ordre d'allumage inutile GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"], 0},estNotHouse_Manuel}, -1, "",{{"Value", id2["GARAGE"], 98}}) GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"],97},estNotHouse_Manuel}, -1, "",{{"Value", id2["GARAGE"], 98}}) -- On clignotte la lampe après 7mn et on la passe à 97% ensuite on l'éteint après 5mn si toujours pas de mouvement local malampegarage = GEA.add({{"Value", id2["GARAGE"],98},estNotHouse_Manuel},7*60, "",{{"turnOff", id2["GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id2["GARAGE"], 97}}) -- A chaque detection de mouvement, reset du décompte de la tâche ci-dessus GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"],98},estNotHouse_Manuel}, -1, "", {{"RestartTask", malampegarage}}) -- Extinction Garage GEA.add({{"Value", id2["GARAGE"],97},estNotHouse_Manuel}, 5*60, "",{{"Value", id2["GARAGE"], 99},{"Function", function() fibaro:sleep(500) end},{"turnOff", id2["GARAGE"]}}) ----------------------------------------------- ------------------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"},{"Picture", id["CAM_GARAGE"],2}}) 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"},{"Picture", id["CAM_GARAGE"],2}}) -- send pic garage après 30 60 et 90secondes après ouverture GEA.add(id2["GARAGE_BAS"], 30, "", {{"Picture", id["CAM_GARAGE"],2}}) GEA.add(id2["GARAGE_BAS"], 60, "", {{"Picture", id["CAM_GARAGE"],2}}) GEA.add(id2["GARAGE_BAS"], 90, "", {{"Picture", id["CAM_GARAGE"],2}}) -- 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, "", {SetNot_Closed,{"Inverse"},{"Picture", id["CAM_GARAGE"],2}}) -- 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 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 GEA.add({Porte_Gar_Demande_Fermeture, estClosed}, -1, "",{Porte_Gar_En_Attente}) -- 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},{"Picture", id["CAM_GARAGE"],2},{"turnOn",id2["REMOTE_GARAGE"]}}) --{"turnOn",id2["REMOTE_GARAGE"]}, --------------GESTION ERREUR----------------- -- si pas fermé après 90 sec, on relance - ligne de sécurité, 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"]},{"Picture", id["CAM_GARAGE"],2},{"Repeat"}}) -----------------------------------------------
sebcbien Posté(e) le 7 avril 2016 Auteur Signaler Posté(e) le 7 avril 2016 Et voici ma deuxième instance gea: Note: SDB et SDD, détection avec oeil fibaro Ailleurs détection via capteurs satel (pas de blind time, -1 généré àchaque mouvement détecté) -- 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 estNotNight_All_Off_OR_Kids_Sleeping = {"Global!", "PresentState", "Kids_Sleeping|Night_All_Off"} local estNight_All_Off_OR_Kids_Sleeping = {"Global", "PresentState", "Kids_Sleeping|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 estNotSimu_Presence = {"Global", "Simu_presence", "0"} -- 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"} ------------ WHEN AT HOME DO------------------- GEA.add(estAt_Home, -1, "", { {"turnOff", id2["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["MARANTZ_SALON"],"15"}, -- set Marantz Day mode {"VirtualDevice",id2["XBMC_REMOTE"],"2"}, -- pause Nvidia Shield {"VirtualDevice",id2["TOUTES_LUMIERES"],"2"}, -- turn off all lights {"Function", function() fibaro:sleep(1500) end}, {"VirtualDevice",id2["TOUTES_LUMIERES"],"2"}, {"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"]} }) ------------ WHEN KIDS SLEEPING DO------------- GEA.add(estKids_Sleeping, -1, "", { {"turnOn", id2["COULOIR"]}, {"VirtualDevice",id2["MARANTZ_SALON"],"14"} -- set ampli night mode }) ------------ WHEN NIGHT ALL OFF DO------------- GEA.add(estNight_All_Off, -1, "", { {"turnOn", id2["COULOIR"]}, {"turnOn", id2["ROUTEUR_1ER__P2_"]} }) -------------SURVEILLANCE MEMOIRE-------------- GEA.add({{"Global-", "RamFree", 35}}, 30, "RAM inférieure à#value# - Reboot prévu cette nuit à2h45", {{"Time", "21:00", "21:01"}}) -- Push si Ram faible GEA.add({{"Global-", "RamFree", 35}}, 30, "Reboot HC2 car RAM inférieure à35% (#value#)", {{"Time", "02:45", "02:46"},{"VirtualDevice", id2["HC2_DIAGNOSTICS"], 15},{"Function", function() fibaro:sleep(1000) end},{"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"}, {"VirtualDevice", id2["MARANTZ_SALON"], 23},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"},{"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"}, {"VirtualDevice", id2["MARANTZ_SALON"], 24},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"},{"function",function() isLongAwayOrNightAllOff_AMPLI=false end}}) ----------------------------------------------- -------------------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"],estNight_All_Off_OR_Kids_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"],estNight_All_Off_OR_Kids_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,{"Value-", id2["HALL"],59}}, -1, "", {{"Time", "Sunset-30", "Sunrise+30"}, {"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"}}) ----------------------------------------------- --------------------BUREAU--------------------- ----------------------------------------------- -------------------SAM------------------------- -- si PeriodeSunSet ou PeriodeSunRise, allumer lampe automatiquement si moins de 94% GEA.add({id2["SAM_MVT"],{"Value-", id2["SALLE_A_MANGER"],94}, estNotHouse_Manuel}, -1, "",{PeriodeSunSetSAM,PeriodeSunRiseSAM,{"Value", id2["SALLE_A_MANGER"], 95}}) -- Hors Periodes sunset & sunrise, allumage manuel -- Si déjàAllumé, Re-Allumage à95% dès que détection mouvement sauf si module déjàa + de 94% (économie zwave) GEA.add({id2["SAM_MVT"],{"Value+", id2["SALLE_A_MANGER"], 1},{"Value-", id2["SALLE_A_MANGER"],94}}, -1, "",{{"Value", id2["SALLE_A_MANGER"], 95}}) -- Après 8min on dimme la lampe à4% si pas de mouvement local malampesam = GEA.add({"Value+", id2["SALLE_A_MANGER"],59}, 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 entre 1 et 35 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({id2["SAM_MVT"],{"Value+", id2["SALLE_A_MANGER"], 1}}, -1, "", {{"RestartTask", malampesam}}) GEA.add({id2["SAM_MVT"],{"Value+", id2["SALLE_A_MANGER"], 1}}, -1, "", {{"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, "", {{"Function", function() fibaro:call(id2["CELLIER"], "setValue", "99") end}}) -- 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}}) ----------------------------------------------- -------------------COULOIR--------------------- -- Si Maison passe en mode manuel ou Night_All_Off, on allume le routeur 1er s'il n'est pas déjàallumé GEA.add({estHouse_Manuel, {"Value-",id2["ROUTEUR_1ER__P2_"],1}}, -1, "Routeur 1er Allumé",{{"turnOn", id2["ROUTEUR_1ER__P2_"]}}) -- 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. GEA.add({{"Value+",id2["CHAMBRE_PARENTS"],1},{"Value-",id2["ROUTEUR_1ER__P2_"],1}}, 30, "",{{"turnOn", id2["ROUTEUR_1ER__P2_"]}}) -- Turn on ne fonctionne pas sans le rappel de l'id. -- Éteindre le routeur si pas de présence ou ch parents éteinte plus de 30 mn. local monRouteur1er = GEA.add({id2["ROUTEUR_1ER__P2_"],estNotHouse_Manuel}, 30*60, "",{{"turnOff"}}) -- Relance de la tâche en cas de détection ou ch parents allumée GEA.add({id2["COULOIR_MVT"]}, -1, "", {{"RestartTask", monRouteur1er}}) GEA.add({"Value+",id2["CHAMBRE_PARENTS"],1}, 30, "", {{"RestartTask", monRouteur1er}}) -- Éteint lumière couloir àl'aube si away (allumé par simulateur de présence) GEA.add({id2["COULOIR"], estAway}, 60, "Sunrise and Away - Lampe couloir off at #time#",{{"Time", "Sunrise+30", "Sunrise+35"}, {"turnOff"}}) --------------------- -- Si le détecteur Couloir détecte une présence on allume la lumière entre coucher et lever du soleil GEA.add({id2["COULOIR_MVT"],{"Value-",id2["COULOIR"],1},estNotHouse_Manuel}, -1, "",{{"Time", "Sunset-30", "Sunrise+30"},{"turnOn", id2["COULOIR"]}}) -- Éteint lumière couloir après xx secondes local off_couloir = GEA.add({id2["COULOIR"],estNotNight_All_Off_OR_Kids_Sleeping,estNotHouse_Manuel,estNotSimu_Presence}, 3*60, "",{{"turnOff"}}) -- Relance de la tâche en cas de détection GEA.add({id2["COULOIR_MVT"]}, -1, "", {{"RestartTask", off_couloir}}) ----------------------------------------------- -------------------- 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 allume à10% RGBW pendant 2m puis éteint GEA.add({id2["SDB_MVTZ"],{"Value", id2["SDB_RUBAN_LED"], 0},estNotHouse_Manuel}, -1, "",{{"Time", "sunset-45", "00:00"},{"Value", id2["SDB_RUBAN_LED"], 99}}) GEA.add({id2["SDB_MVTZ"],{"Value", id2["SDB_RUBAN_LED"], 0},estNotHouse_Manuel}, -1, "",{{"Time", "00:00", "Sunrise"},{"Value", id2["SDB_RUBAN_LED"], 5}}) GEA.add({id2["SDB_MVTZ"],{"Value", id2["SDB_RUBAN_LED"], 0},estNotHouse_Manuel}, -1, "",{{"Time", "Sunrise", "Sunrise+60"},{"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) GEA.add({id2["SDB_MVTZ"],{"Value+", id2["SDB_RUBAN_LED"],1}}, 10, "", {{"RestartTask", malampesdb},{"RestartTask", malampesdbFull},{"Repeat"}}) -- re-active prise chaufferette si off (étzinte 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 sdb 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 allume à10% RGBW pendant 2m puis éteint GEA.add({id2["SDD_MVTZ"],{"Value", id2["SDD_RUBAN_LED"] ,0},estNotHouse_Manuel}, -1, "",{{"Time", "sunset-45", "00:00"},{"Value", id2["SDD_RUBAN_LED"], 99}}) GEA.add({id2["SDD_MVTZ"],{"Value", id2["SDD_RUBAN_LED"] ,0},estNotHouse_Manuel}, -1, "",{{"Time", "00:00", "Sunrise"},{"Value", id2["SDD_RUBAN_LED"], 5}}) GEA.add({id2["SDD_MVTZ"],{"Value", id2["SDD_RUBAN_LED"] ,0},estNotHouse_Manuel}, -1, "",{{"Time", "Sunrise", "Sunrise+60"},{"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) GEA.add({id2["SDD_MVTZ"],{"Value+", id2["SDD_RUBAN_LED"],1}}, 10, "", {{"RestartTask", malampesdd},{"RestartTask", malampesddFull},{"Repeat"}}) ---------------DETECTION PRESENCE-------------- -- Signale GG at Home GEA peux se déclencher sur un changement de valeur d'une variable global GEA.add({"Global", "Phone_GG_Present", "1"}, -1, "GG est arrivée à#time#", {{"Portable", id["PHONE_SEB"]}, {"Time", "00:01", "23:59"}}) GEA.add({"Global", "Phone_GG_Present", "0"}, -1, "GG est partie à#time#", {{"Portable", id["PHONE_SEB"]}, {"Time", "00:01", "23:59"}}) GEA.add({"Global", "Phone_Seb_Present", "1"}, -1, "Seb est arrivé à#time#", {{"Portable", id["PHONE_SEB"]}, {"Time", "00:01", "23:59"}}) GEA.add({"Global", "Phone_Seb_Present", "0"}, -1, "Seb est parti à#time#", {{"Portable", id["PHONE_SEB"]}, {"Time", "00:01", "23:59"}}) ----------------------------------------------- ----------------- 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, "", {{"Global","VMC_Lock","1"},{"Global","VMC_Speed","Absent"},{"VirtualDevice",id2["VITESSE_VMC"],"2"}}) GEA.add(estNotAway, 60, "", {{"Global","VMC_Lock", "0"},{"VirtualDevice",id2["VITESSE_VMC"],"2"}}) -- surveillance V3 VMC plus de 30 minutes GEA.add({"Global", "VMC_Speed", "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},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"}}) 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},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"}}) ----------------------------------------------- --------------------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 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 !!!!!!!!!! -------------
Bobobull Posté(e) le 15 juillet 2016 Signaler Posté(e) le 15 juillet 2016 Ma config du jour. Certainement pas parfaite, mais pour l'instant fait le job. --################################################ --################ GENERAL ---------------- -- Test cave àvin GEA.add({"Dead", id["CAVE_A_VIN"]}, 60*30, "La cave àvin ne répond pas depuis #duration# - #date# #time#", {{"WakeUp", id["CAVE_A_VIN"]}, {"Repeat"},{"Email",id["BOBO"],"ALERTE - cave àvin"} }) -- Envoi info NetAtmo température matinale GEA.add( { {"Value!", id["NETATMO_TEMP_TERRASSE"], 999}, {"Value!", id["NETATMO_HYGRO_TERRASSE"], 999} } , 1*60 , "La température extérieur est de #value[1]#°. L`humidité est de #value[2]#%.", {{"Time", "5:55", "6:00"},{"Email",id["BOBO"],"Annonce météo."}}) GEA.add( { {"Value!", id["NETATMO_TEMP_TERRASSE"], 999}, {"Value!", id["NETATMO_HYGRO_TERRASSE"], 999} } , 1*60 , "La température extérieur est de #value[1]#°. L`humidité est de #value[2]#%.", {{"Time", "5:55", "6:00"},{"Email",id["STEF"],"Annonce météo."}}) -- Envoi alerte NetAtmo température matoliere GEA.add( { "value-", id["NETATMO_TEMP_MATOLIERE"], 7 } , -1 , "La température dans la matolière est de #value#°. Vérifier le radiateur !", {{"Email",id["BOBO"],"ALERTE - Matolière - Température basse."} }) GEA.add( { "value-", id["NETATMO_TEMP_MATOLIERE"], 7 } , -1 , "La température dans la matolière est de #value#°. Vérifier le radiateur !", {{"Email",id["STEF"],"ALERTE - Matolière - Température basse."} }) -- Envoi alerte NetAtmo température pension GEA.add( { "value-", id["NETATMP_TEMP_PENSION_GL"], 17 } , 30*60 , "La température dans la pension est de #value#. Vérifier le radiateur !" , {{"Email",id["BOBO"],"ALERTE - Pension - Température basse." } }) GEA.add( { "value-", id["NETATMP_TEMP_PENSION_GL"], 17 } , 30*60 , "La température dans la pension est de #value#. Vérifier le radiateur !" , {{"Email",id["STEF"],"ALERTE - Pension - Température basse." } }) --################################################ --################ SONOS --------------- -- SONOS - Réveille à6h en semaine GEA.add( true , 1*60 , "Sonos Volume Cuisine 6h" , {{"Time", "05:58", "06:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_CUISINE"], "setVolume", "8") end}}) GEA.add( true , 1*60 , "Sonos Volume Salon 6h" , {{"Time", "05:58", "06:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_SALON"], "setVolume", "3") end}}) GEA.add( true , 1*60 , "Sonos Volume Dinner 6h" , {{"Time", "05:58", "06:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_DINNER"], "setVolume", "6") end}}) GEA.add( true , 1*60 , "Sonos Volume Bain 6h" , {{"Time", "05:58", "06:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_BAIN"], "setVolume", "1") end}}) GEA.add( true , 1*60 , "Sonos Volume Bureau 6h" , {{"Time", "05:58", "06:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_BUREAU"], "setVolume", "1") end}}) GEA.add( true , 1*60 , "Sonos Volume chambre 6h" , {{"Time", "05:58", "06:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_CHAMBRE"], "setVolume", "0") end}}) GEA.add( true , 1*60 , "Sonos Favori 4 - Planeta Chillout" , {{"Time", "06:59", "07:01"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_GROUP"], "pressButton", "25") end}, {"Email",id["HC2ALERTE"],"SONOS - Station Chillout"} }) GEA.add( true , 1*60 , "Sonos - Play" , {{"Time", "07:01", "07:05"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_GROUP"], "pressButton", "7") end}, {"Email",id["HC2ALERTE"],"SONOS - Play 6h"} }) -- SONOS - Changement station 8h GEA.add( true , 1*60 , "Sonos Volume Cuisine 8h" , {{"Time", "07:58", "08:02"} , {"Days", "All"} , {"Function", function() fibaro:call(id["SONOS_CUISINE"], "setVolume", "10") end}}) GEA.add( true , 1*60 , "Sonos Volume Salon 8h" , {{"Time", "07:58", "08:02"} , {"Days", "All"} , {"Function", function() fibaro:call(id["SONOS_SALON"], "setVolume", "5") end}}) GEA.add( true , 1*60 , "Sonos Volume Dinner 8h" , {{"Time", "07:58", "08:02"} , {"Days", "All"} , {"Function", function() fibaro:call(id["SONOS_DINNER"], "setVolume", "8") end}}) GEA.add( true , 1*60 , "Sonos Volume Bureau 8h" , {{"Time", "07:58", "08:02"} , {"Days", "All"} , {"Function", function() fibaro:call(id["SONOS_BUREAU"], "setVolume", "2") end}}) GEA.add( true , 1*60 , "Sonos Favori 2 - 24h Armin" , {{"Time", "07:59", "08:01"} , {"Days", "All"} , {"Function", function() fibaro:call(id["SONOS_GROUP"], "pressButton", "23") end}, {"Email",id["HC2ALERTE"],"SONOS - Station 24h State of Trance"} }) GEA.add( true , 1*60 , "Sonos - Play" , {{"Time", "08:01", "08:05"} , {"Days", "All"} , {"Function", function() fibaro:call(id["SONOS_GROUP"], "pressButton", "7") end}, {"Email",id["HC2ALERTE"],"SONOS - Play 8h"} }) -- SONOS - Changement volume GEA.add( true , 1*60 , "Sonos Volume Bain 19h" , {{"Time", "18:58", "19:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_BAIN"], "setVolume", "1") end}}) GEA.add( true , 1*60 , "Sonos Volume Bain 23h" , {{"Time", "22:58", "23:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_BAIN"], "setVolume", "0") end}}) GEA.add( true , 1*60 , "Sonos Volume Bureau 23h" , {{"Time", "22:58", "23:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_BUREAU"], "setVolume", "0") end}}) GEA.add( true , 1*60 , "Sonos Volume chambre 19h" , {{"Time", "18:58", "19:02"} , {"Days", "Weekday"} , {"Function", function() fibaro:call(id["SONOS_CHAMBRE"], "setVolume", "0") end}}) -- SONOS - Terrasse, couper le volume si plus de mouvement la nuit GEA.add( {{"value",id["MOTION_TERRASSE"],0} , {"Property!", id["SONOS_TERRASSE"], "volume", 0} } ,15*60, "Plus de mouvement sur la terrasse depuis #duration# - #date# #time#. Baisser le volume SONOS à0", { {"Time", "21:00", "07:00"} , {"Email",id["BOBO"],"SONOS - Volume terrasse"}, {"Function", function() fibaro:call(id["SONOS_TERRASSE"], "setVolume", "0") end} } ) -- SONOS - Pension Set volume à22 le matin GEA.add( true , 1*60 , "Sonos Volume Pension 06h" , {{"Time", "06:00", "06:02"} , {"Days", "All"} , {"Function", function() fibaro:call(id["SONOS_PENSION"], "setVolume", "22") end}}) -- SONOS - Pension Play 8h GEA.add( true , 1*60 , "Sonos Favori 4 - Planeta Chillout" , {{"Time", "08:00", "08:02"} , {"Days", "All"} , {"Function", function() fibaro:call(id["SONOS_PENSION_VD"], "pressButton", "25") end}, {"Email",id["HC2ALERTE"],"SONOS - Pension - Play Station Chillout"} }) -- SONOS - Pension Stop 22h GEA.add( true , 1*60 , "Sonos Favori 4 - Planeta Chillout" , {{"Time", "22:00", "22:05"} , {"Days", "All"} , {"Function", function() fibaro:call(id["SONOS_PENSION_VD"], "pressButton", "27") end}, {"Email",id["HC2ALERTE"],"SONOS - Pension - Stop"} }) --################################################ --################ SALLE A MANGER --------------- -- PORTE ENTREE ---------------------------------- -- Allumage applique malle 60% si il fait nuit GEA.add( { id["PORTE_ENTREE"], {"Value-", id["LUXMETRE_DINNER"], 20}, {"Value", id["APPLIQUE_DINNER_PORTE"], 0}} , -1 , "", {{"Value", id["APPLIQUE_DINNER_MALLE"], "62"}}) -- On dimme la lampe automatiquement après 2 mn et on l'éteint après 3mn si pas de mouvement ou si la lampe àété remontée a plus de 69% local MaLampeEntree = GEA.add({ {"Value", id["APPLIQUE_DINNER_MALLE"],62}, {"Value", id["APPLIQUE_DINNER_PORTE"], 0} }, 1*60, "Entree Dim 35 CAR 60 sec 62%",{{"Value", id["APPLIQUE_DINNER_MALLE"], "35"},{"Repeat"}}) local MaLampeEntreeDim = GEA.add({ {"Value", id["APPLIQUE_DINNER_MALLE"],35}, {"Value", id["APPLIQUE_DINNER_PORTE"], 0} }, 1*30, "Entree TurnOff apres 30s àmoins de 35%", {{"turnOff",id["APPLIQUE_DINNER_MALLE"]},{"If", {{"Value+", id["APPLIQUE_DINNER_MALLE"], 1}}}},{"Repeat"} ) -- Relance des tâches en cas de détection GEA.add( {id["MOTION_DINNER"], {"Value+", id["APPLIQUE_DINNER_MALLE"], 0}, {"Value", id["APPLIQUE_DINNER_PORTE"], 0}}, -1 , "", {{"Value", id["APPLIQUE_DINNER_MALLE"], "62"},{"RestartTask", MaLampeEntree},{"RestartTask", MaLampeEntreeDim}}) --- DECO ARMOIRE --------------------------------- -- On si luminosité < 30 GEA.add ( { "Value-", id["LUXMETRE_DINNER"], 30} , -1 , "Déco Armoire On" ,{{"VirtualDevice", id["HUE_RGB_ARMOIRE_VD"], 1} , {"Slider", id["HUE_RGB_ARMOIRE_VD"],10, 82} , {"Slider", id["HUE_RGB_ARMOIRE_VD"],3, 99},{"Slider", id["HUE_RGB_ARMOIRE_VD"],4, 99} }) -- Off si luminosité >31 & Applique porte = 0 GEA.add ( { {"Value+", id["LUXMETRE_DINNER"], 31} , {"Value", id["APPLIQUE_DINNER_PORTE"], 0} } , -1 , "Déco Armoire Off" , {{"VirtualDevice", id["HUE_RGB_ARMOIRE_VD"], 2}}) -- DECO MALLE ------------------------------------ -- Allumage matin (Horaire) GEA.add ( true , 30 , "Déco Malle On (time)" , {{"Time", "05:50", "05:55"} , {"turnOn", id["LAMPE_DECO_MALLE"]} , {"Email",id["HC2ALERTE"],"Dinner - Deco Malle ON (Time)"}} ) -- On si luminosité < 10 GEA.add ( { {"Value-", id["LUXMETRE_DINNER"], 10} , {"Value", id["LAMPE_DECO_MALLE"], 0} } , -1 , "Déco Malle On (Lux Dinner : #value#)" , {{"Time", "06:00", "23:30"} ,{"turnOn", id["LAMPE_DECO_MALLE"]} , {"Email",id["HC2ALERTE"],"Dinner - Deco Malle ON (Lux)"}} ) -- Off si luminosité >10 | Off horaire GEA.add ( { {"Value+", id["LUXMETRE_DINNER"], 10} , {"Value", id["APPLIQUE_DINNER_PORTE"], 0} , {"Value", id["APPLIQUE_DINNER_MALLE"], 0} , {"Value", id["APPLIQUE_DINNER_FENETRE"], 0} , {"Value", id["LAMPE_DECO_MALLE"], 1} }, -1 , "Déco Malle Off (Lux Dinner : #value#)" , {{"turnOff", id["LAMPE_DECO_MALLE"]}, {"Email",id["HC2ALERTE"],"Dinner - Deco Malle OFF (Lux)"}} ) GEA.add ( true , 30 , "Déco Malle Off (time)" , {{"Time", "23:50", "23:55"} , {"turnOff", id["LAMPE_DECO_MALLE"]}, {"Email",id["HC2ALERTE"],"Dinner - Deco Malle OFF (Time)"}} ) -- DECO CAVE VIN --------------------------------- -- Allumage matin (Horaire) GEA.add ( true , 30 , "Déco Cave àvin On (Time)" , {{"Time", "06:00", "06:05"} , {"VirtualDevice", id["HUE_VIN_VD"], 1} , {"Slider", id["HUE_VIN_VD"],3, 40},{"Label", id["HUE_VIN_VD"], "Label1", "On"}} ) -- Allumage Matin Luminosoté 40 & Heure 6h-8h - 40% GEA.add ({ {"Value-", id["LUXMETRE_CUISINE"], 42}, {"Label", id["HUE_VIN_VD"], "Label1", "Off"}} , -1 , "Déco Cave àvin On (6h-8h)" , { {"Time", "06:00", "08:00"} , {"VirtualDevice", id["HUE_VIN_VD"], 1} , {"Slider", id["HUE_VIN_VD"],3, 40},{"Label", id["HUE_VIN_VD"], "Label1", "On"}} ) -- Allumage AM Luminosoté 40 & Heure 16h-20h - 70% GEA.add ({ {"Value-", id["LUXMETRE_CUISINE"], 42}, {"Label", id["HUE_VIN_VD"], "Label1", "Off"}} , -1 , "Déco Cave àvin On (16h-20h)" , { {"Time", "16:00", "20:00"} , {"VirtualDevice", id["HUE_VIN_VD"], 1} , {"Slider", id["HUE_VIN_VD"],3, 70},{"Label", id["HUE_VIN_VD"], "Label1", "On"}} ) -- Allumage AM Luminosoté 40 & Heure 20h-22h - 30% GEA.add ({ {"Value-", id["LUXMETRE_CUISINE"], 42}, {"Label", id["HUE_VIN_VD"], "Label1", "Off"}} , -1 , "Déco Cave àvin On (20h-22h)" , { {"Time", "20:00", "22:00"} , {"VirtualDevice", id["HUE_VIN_VD"], 1} , {"Slider", id["HUE_VIN_VD"],3, 30},{"Label", id["HUE_VIN_VD"], "Label1", "On"}} ) -- Correction luminosité soir GEA.add ({"Label", id["HUE_VIN_VD"], "Label1", "On"} , 1*60 , "Déco Cave àvin On (DIM 30%)" , { {"Time", "19:10", "19:20"} , {"VirtualDevice", id["HUE_VIN_VD"], 1} , {"Slider", id["HUE_VIN_VD"],3, 30} , {"Repeat"}} ) -- Eteindre si luminosité >31 | Off horaire GEA.add ({ {"Value+", id["LUXMETRE_CUISINE"], 41}, {"Label", id["HUE_VIN_VD"], "Label1", "On"} , {"Value", id["APPLIQUE_DINNER_PORTE"], 0} , {"Value", id["APPLIQUE_DINNER_MALLE"], 0} , {"Value", id["APPLIQUE_DINNER_FENETRE"], 0}} , -1 , "Déco Cave àvin Off (Lux)" , {{"VirtualDevice", id["HUE_VIN_VD"], 2},{"Label", id["HUE_VIN_VD"], "Label1", "Off"}}) GEA.add ( true , 30 , "Déco Cave àvin Off (Time)" , {{"Time", "23:45", "23:50"} , {"VirtualDevice", id["HUE_VIN_VD"], 2},{"Label", id["HUE_VIN_VD"], "Label1", "Off"}} ) -- LAMPE CO2 -- Extinction si CO2 < 950 GEA.add ({ {"Value-", id["NETATMO_CO2_SALON"], 950}, {"Label", id["HUE_RGB_CO2"], "Label1", "On"} } , -1 , "Le taux de CO2 dans le salon est de #value#, Extinction lampe CO2.", {{"VirtualDevice", id["HUE_RGB_CO2"], 2} , {"Slider", id["HUE_RGB_CO2"],10, 45} , {"Label", id["HUE_RGB_CO2"], "Label1", "Off"}, {"Email",id["HC2ALERTE"],"Salon - CO2 (Off)"} }) -- Allumage en vert si CO2 > 950 GEA.add ({ {"Value+", id["NETATMO_CO2_SALON"], 950}, {"Value-", id["NETATMO_CO2_SALON"], 1179} , {"Slider!", id["HUE_RGB_CO2"], "hue", 40} } , -1 , "Le taux de CO2 dans le salon est de #value#, allumage en vert." , {{"VirtualDevice", id["HUE_RGB_CO2"], 1} , {"Slider", id["HUE_RGB_CO2"],10, 40} , {"Slider", id["HUE_RGB_CO2"],3, 60},{"Slider", id["HUE_RGB_CO2"],4, 99}, {"Label", id["HUE_RGB_CO2"], "Label1", "On"}, {"Email",id["HC2ALERTE"],"Salon - CO2 (Vert)" } }) -- Allumage en orange si CO2 > 1180 GEA.add ({ {"Value+", id["NETATMO_CO2_SALON"], 1180}, {"Value-", id["NETATMO_CO2_SALON"], 2249} , {"Slider!", id["HUE_RGB_CO2"], "hue", 20} } , -1 , "Le taux de CO2 dans le salon est de #value#, allumage en orange." , {{"VirtualDevice", id["HUE_RGB_CO2"], 1} , {"Slider", id["HUE_RGB_CO2"],10, 20} , {"Slider", id["HUE_RGB_CO2"],3, 60},{"Slider", id["HUE_RGB_CO2"],4, 99}, {"Label", id["HUE_RGB_CO2"], "Label1", "On"}, {"Email",id["HC2ALERTE"],"Salon - CO2 (Orange)"} }) -- Allumage en rouge si CO2 > 2250 GEA.add ({ {"Value+", id["NETATMO_CO2_SALON"], 2250}, {"Slider!", id["HUE_RGB_CO2"], "hue", 1} } , -1 , "Le taux de CO2 dans le salon est de #value#, allumage en rouge." , {{"VirtualDevice", id["HUE_RGB_CO2"], 1} , {"Slider", id["HUE_RGB_CO2"],10, 1} , {"Slider", id["HUE_RGB_CO2"],3, 60},{"Slider", id["HUE_RGB_CO2"],4, 99}, {"Label", id["HUE_RGB_CO2"], "Label1", "On"}, {"Email",id["HC2ALERTE"],"Salon - CO2 (Rouge)" } }) --################################################ --################ SALON ------------------------- -- TEMPERATURE ----------------------------------- -- Allumage chauffage salon GEA.add( { {"value-",id["NETATMO_TEMP_SALON"],19} , {"value-",id["NETATMO_TEMP_TERRASSE"],19}, {"value+",id["NETATMO_TEMP_TERRASSE"],0} } , 30 , "La température du salon est de #value[1]#°. La température extérieure est de #value[2]#°." , { {"Scenario", 175} , {"Email",id["HC2ALERTE"],"GEA - Chauffage salon - ON"} }) -- Extinction chauffage salon GEA.add( { {"value+",id["NETATMO_TEMP_SALON"],22.5} , {"Property", id["CLIM_SALON_MAIN"], "mode",1} } , 30 , "La température du salon est maintenant de #value[1]#°. Arrêt du chauffage." , { {"Scenario", 95} , {"Email",id["HC2ALERTE"],"GEA - Chauffage salon - OFF"} }) -- Variables pour gestion de la clim local LimiteTemp_Allumage_Clim_Salon = 25 local LimiteTemp_Extinction_Clim_Salon = 21 -- Alerte fenêtre salon GEA.add( { {"value+", id["NETATMO_TEMP_SALON"],LimiteTemp_Allumage_Clim_Salon} , {"value-",id["NETATMO_TEMP_SALON"],id["NETATMO_TEMP_TERRASSE"]} , {"value",id["PORTEFENETRE_SALON"], 1} }, -1 , "Température salon : #value#, Températeur extérieur : #value[2]#.", { {"Time", "08:00", "20:30"}, {"Email",id["BOBO"],"Salon - Merci de fermer les fenêtres pour l'allumage de la clim."} } ) -- Allumage clim salon si température salon > "LimiteTemp_Allumage_Clim_Salon" ET température salon <= Température extérieur --GEA.add( { {"value+", id["NETATMO_TEMP_SALON"],LimiteTemp_Allumage_Clim_Salon} , { "value+", id["NETATMO_TEMP_TERRASSE"], LimiteTemp_Allumage_Clim_Salon} , {"value",id["PORTEFENETRE_SALON"], 0} }, -1 , "Température salon : #value#, Températeur extérieur : #value[2]#.", { {"Time", "13:00", "20:30"}, {"Function", function() fibaro:startScene(92) end}, {"Email",id["HC2ALERTE"],"Salon - Allumage Clim."} } ) GEA.add( { {"value+", id["NETATMO_TEMP_SALON"],LimiteTemp_Allumage_Clim_Salon} , { "value+", id["NETATMO_TEMP_TERRASSE"], LimiteTemp_Allumage_Clim_Salon} }, -1 , "Température salon : #value#, Températeur extérieur : #value[2]#.", { {"Time", "13:00", "20:30"}, {"Function", function() fibaro:startScene(92) end}, {"Email",id["HC2ALERTE"],"Salon - Allumage Clim."} } ) -- Extinction clim salon si température salon < "LimiteTemp_Extinction_Clim_Salon" GEA.add( { {"Property", id["CLIM_SALON_MAIN"], "mode", 2} , {"value-",id["NETATMO_TEMP_SALON"],LimiteTemp_Extinction_Clim_Salon}} ,1*60 , "Module clim salon = #value#, température salon = #value[2]#.", { {"Time", "14:00", "20:30"}, {"Function", function() fibaro:startScene(95) end}, {"Email",id["HC2ALERTE"],"Salon - Extinction Clim."} } ) -- DECO SUR SONOS --------------------------------- -- Allumage Matin (Horaire) GEA.add ( true , 30 , "Déco Salon Sonos On (Time)" , {{"Time", "06:00", "06:05"} , {"VirtualDevice", id["HUE_GAUCHE_VD"], 1} , {"Slider", id["HUE_GAUCHE_VD"],10, 82} , {"Slider", id["HUE_GAUCHE_VD"],3, 99},{"Slider", id["HUE_GAUCHE_VD"],4, 99},{"Label", id["HUE_GAUCHE_VD"], "Label1", "On"}} ) GEA.add ( true , 30 , "Déco Salon Sonos On (Time)" , {{"Time", "06:00", "06:05"} , {"VirtualDevice", id["HUE_DROITE_VD"], 1} , {"Slider", id["HUE_DROITE_VD"],10, 82} , {"Slider", id["HUE_DROITE_VD"],3, 99},{"Slider", id["HUE_DROITE_VD"],4, 99},{"Label", id["HUE_DROITE_VD"], "Label1", "On"}} ) -- On si luminosité faibe GEA.add ( { { "Value-", id["LUXMETRE_SALON"], 15}, {"Label", id["HUE_GAUCHE_VD"], "Label1", "Off"} } , -1 , "Déco Salon Sonos on" ,{{"Time", "06:00", "22:45"} , {"VirtualDevice", id["HUE_GAUCHE_VD"], 1} , {"Slider", id["HUE_GAUCHE_VD"],10, 82} , {"Slider", id["HUE_GAUCHE_VD"],3, 99},{"Slider", id["HUE_GAUCHE_VD"],4, 99},{"Label", id["HUE_GAUCHE_VD"], "Label1", "On"}}) GEA.add ( { { "Value-", id["LUXMETRE_SALON"], 15}, {"Label", id["HUE_DROITE_VD"], "Label1", "Off"} } , -1 , "Déco Salon Sonos on" ,{{"Time", "06:00", "22:45"} , {"VirtualDevice", id["HUE_DROITE_VD"], 1} , {"Slider", id["HUE_DROITE_VD"],10, 82} , {"Slider", id["HUE_DROITE_VD"],3, 99},{"Slider", id["HUE_DROITE_VD"],4, 99},{"Label", id["HUE_DROITE_VD"], "Label1", "On"}}) GEA.add ( true , 30 , "Déco Salon Sonos On (Time)" , {{"Time", "17:00", "17:05"} , {"NOTDST"} , {"VirtualDevice", id["HUE_GAUCHE_VD"], 1} , {"Slider", id["HUE_GAUCHE_VD"],10, 82} , {"Slider", id["HUE_GAUCHE_VD"],3, 99},{"Slider", id["HUE_GAUCHE_VD"],4, 99},{"Label", id["HUE_GAUCHE_VD"], "Label1", "On"}}) GEA.add ( true , 30 , "Déco Salon Sonos On (Time)" , {{"Time", "17:00", "17:05"} , {"NOTDST"} , {"VirtualDevice", id["HUE_DROITE_VD"], 1} , {"Slider", id["HUE_DROITE_VD"],10, 82} , {"Slider", id["HUE_DROITE_VD"],3, 99},{"Slider", id["HUE_DROITE_VD"],4, 99},{"Label", id["HUE_DROITE_VD"], "Label1", "On"}}) GEA.add ( true , 30 , "Déco Salon Sonos On (Time)" , {{"Time", "18:30", "18:35"} , {"DST"} , {"VirtualDevice", id["HUE_GAUCHE_VD"], 1} , {"Slider", id["HUE_GAUCHE_VD"],10, 82} , {"Slider", id["HUE_GAUCHE_VD"],3, 99},{"Slider", id["HUE_GAUCHE_VD"],4, 99},{"Label", id["HUE_GAUCHE_VD"], "Label1", "On"}}) GEA.add ( true , 30 , "Déco Salon Sonos On (Time)" , {{"Time", "18:30", "18:35"} , {"DST"} , {"VirtualDevice", id["HUE_DROITE_VD"], 1} , {"Slider", id["HUE_DROITE_VD"],10, 82} , {"Slider", id["HUE_DROITE_VD"],3, 99},{"Slider", id["HUE_DROITE_VD"],4, 99},{"Label", id["HUE_DROITE_VD"], "Label1", "On"}}) -- Off si luminosité forte & Appliques = 0 | Horaire GEA.add ( { {"Value+", id["LUXMETRE_SALON"], 16} , {"Label", id["HUE_GAUCHE_VD"], "Label1", "On"} , {"Value", id["APPLIQUE_SALONVOUTE"], 0} , {"Value", id["APPLIQUE_SALONCHEMINEE"], 0} } , -1 , "Déco Salon Sonos Off" , {{"VirtualDevice", id["HUE_GAUCHE_VD"], 2},{"Label", id["HUE_GAUCHE_VD"], "Label1", "Off"}}) GEA.add ( { {"Value+", id["LUXMETRE_SALON"], 16} , {"Label", id["HUE_DROITE_VD"], "Label1", "On"} , {"Value", id["APPLIQUE_SALONVOUTE"], 0} , {"Value", id["APPLIQUE_SALONCHEMINEE"], 0} } , -1 , "Déco Salon Sonos Off" , {{"VirtualDevice", id["HUE_DROITE_VD"], 2},{"Label", id["HUE_DROITE_VD"], "Label1", "Off"}}) GEA.add ( true , 30 , "Déco Salon Sonos Off (Time)" , {{"Time", "23:45", "23:50"} , {"VirtualDevice", id["HUE_GAUCHE_VD"], 2} , {"Label", id["HUE_GAUCHE_VD"], "Label1", "Off"}} ) GEA.add ( true , 30 , "Déco Salon Sonos Off (Time)" , {{"Time", "23:45", "23:50"} , {"VirtualDevice", id["HUE_DROITE_VD"], 2} , {"Label", id["HUE_GAUCHE_VD"], "Label1", "Off"}} ) -- Gestion Applique oubliée en journée -- Extinction si LUX SALON > 80 GEA.add ( { {"value+",id["LUXMETRE_SALON"],80 } , {"Value", id["APPLIQUE_SALONVOUTE"], 1} } , -1 , "Extinction applique salon (Economie énérgie - LUX Salon (#value#)." , { {"turnOff",id["APPLIQUE_SALONVOUTE"]} , {"turnOff",id["APPLIQUE_SALONCHEMINEE"]} , {"turnOff",id["LAMPE_SALONNICHE"]} , {"Email",id["HC2ALERTE"],"GEA - Salon Economie énérgie (Lux)"} }) GEA.add ( { {"value+",id["LUXMETRE_SALON"],80 } , {"Value+", id["APPLIQUE_SALONVOUTE"], 1 } }, 5*30 , "Extinction applique salon (Economie énérgie - LUX Salon (#value#)." , { {"turnOff",id["APPLIQUE_SALONVOUTE"]} , {"turnOff",id["APPLIQUE_SALONCHEMINEE"]} , {"turnOff",id["LAMPE_SALONNICHE"]} , {"Email",id["HC2ALERTE"],"GEA - Salon Economie énérgie (every time)"} , {"Repeat"} }) --################################################ --################ CUISINE ----------------------- -- DECO ARMOIRE ---------------------------------- -- Allumage Matin (Horaire) | Couleur = 82 GEA.add( true , 30 , "Déco Cuisine ON (Time Week)" , { {"Time", "06:00", "06:05"} , {"Days", "Weekday"} , {"VirtualDevice", id["HUE_ARMOIRE_CUISINE_VD"], 1} , {"Slider", id["HUE_ARMOIRE_CUISINE_VD"],10, 86} , {"Slider", id["HUE_ARMOIRE_CUISINE_VD"],3, 99},{"Slider", id["HUE_ARMOIRE_CUISINE_VD"],4, 99},{"Label", id["HUE_ARMOIRE_CUISINE_VD"], "Label1", "On"} , {"Email",id["HC2ALERTE"],"GEA - Cuisine."} }) GEA.add( true , 30 , "Déco Cuisine ON (Time WeekEnd)" , { {"Time", "07:45", "07:50"} , {"Days", "Weekend"} , {"VirtualDevice", id["HUE_ARMOIRE_CUISINE_VD"], 1} , {"Slider", id["HUE_ARMOIRE_CUISINE_VD"],10, 86} , {"Slider", id["HUE_ARMOIRE_CUISINE_VD"],3, 99},{"Slider", id["HUE_ARMOIRE_CUISINE_VD"],4, 99},{"Label", id["HUE_ARMOIRE_CUISINE_VD"], "Label1", "On"}, {"Email",id["HC2ALERTE"],"GEA - Cuisine."} }) -- Allumage si luminosité faible GEA.add ({ { "Value-", id["LUXMETRE_CUISINE"], 40} , {"Label", id["HUE_ARMOIRE_CUISINE_VD"], "Label1", "Off"} } , -1 , "Déco Cuisine ON (Lux #value#)" ,{{"Time", "06:00", "22:00"} , {"VirtualDevice", id["HUE_ARMOIRE_CUISINE_VD"], 1} , {"Slider", id["HUE_ARMOIRE_CUISINE_VD"],10, 86} , {"Slider", id["HUE_ARMOIRE_CUISINE_VD"],3, 99},{"Slider", id["HUE_ARMOIRE_CUISINE_VD"],4, 99},{"Label", id["HUE_ARMOIRE_CUISINE_VD"], "Label1", "On"}, {"Email",id["HC2ALERTE"],"GEA - Cuisine."}}) -- Extinction GEA.add ({ {"Value+", id["LUXMETRE_CUISINE"], 40}, {"Label", id["HUE_ARMOIRE_CUISINE_VD"], "Label1", "On"} } , -1 , "Déco Cuisine OFF (Lux #value#)" , {{"Time", "07:00", "20:00"} , {"VirtualDevice", id["HUE_ARMOIRE_CUISINE_VD"], 2} , {"Label", id["HUE_ARMOIRE_CUISINE_VD"], "Label1", "Off"}, {"Email",id["HC2ALERTE"],"GEA - Cuisine."}} ) GEA.add ( true , 30 , "Déco Cuisine OFF (Time)" , {{"Time", "23:45", "23:50"} , {"VirtualDevice", id["HUE_ARMOIRE_CUISINE_VD"], 2} , {"Label", id["HUE_ARMOIRE_CUISINE_VD"], "Label1", "Off"}, {"Email",id["HC2ALERTE"],"GEA - Cuisine."}} ) --################################################ --################ COULOIR ----------------------- -- DECO NICHE ------------------------------------ -- Allumage Matin (Horaire) GEA.add ( true , 30 , "Déco Couloir On (time)" , {{"Time", "06:00", "06:05"} , {"Days", "Weekday"} , {"turnOn", id["LAMPE_DECO_COULOIR"]}} ) GEA.add ( true , 30 , "Déco Couloir On (time)" , {{"Time", "07:30", "07:35"} , {"Days", "Weekend"} , {"turnOn", id["LAMPE_DECO_COULOIR"]}} ) -- On si luminosité < 30 GEA.add ( { {"Value-", id["LUXMETRE_CUISINE"], 40} , {"Value", id["LAMPE_DECO_COULOIR"], 0} } , -1 , "Déco Couloir On (Lux)" , {{"Time", "07:00", "21:30"} ,{"turnOn", id["LAMPE_DECO_COULOIR"]}} ) -- Off si luminosité >31 | Off horaire GEA.add ( { {"Value+", id["LUXMETRE_CUISINE"], 41} , {"Value", id["LAMPE_DECO_COULOIR"], 1} } , -1 , "Déco Couloir Off (Lux)" , {{"turnOff", id["LAMPE_DECO_COULOIR"]}} ) GEA.add ( true , 30 , "Déco Couloir Off (time)" , {{"Time", "22:10", "22:15"} , {"Days", "Monday, Tuesday, Wednesday, Thursday, Sunday"} , {"turnOff", id["LAMPE_DECO_COULOIR"]}} ) GEA.add ( true , 30 , "Déco Couloir Off (time)" , {{"Time", "23:50", "23:55"} , {"Days", "Friday, Saturday"} , {"turnOff", id["LAMPE_DECO_COULOIR"]}} ) --################################################ --################ BUREAU ------------------------ -- DECO ARMOIRE ---------------------------------- -- Allumage Matin (Horaire) GEA.add ( true , 30 , "Déco Bureau On (time)" , {{"Time", "06:00", "06:05"} , {"Days", "Weekday"} , {"turnOn", id["LAMPE_DECO_BUREAU"]}} ) GEA.add ( true , 30 , "Déco Bureau On (time)" , {{"Time", "07:30", "07:35"} , {"Days", "Weekend"} , {"turnOn", id["LAMPE_DECO_BUREAU"]}} ) -- On si luminosité < 30 GEA.add ( { {"Value-", id["LUXMETRE_CUISINE"], 40} , {"Value", id["LAMPE_DECO_BUREAU"], 0} } , -1 , "Déco Bureau On (Lux)" , {{"Time", "07:00", "21:30"} ,{"turnOn", id["LAMPE_DECO_BUREAU"]}} ) -- Off si luminosité >31 | Off horaire GEA.add ( { {"Value+", id["LUXMETRE_CUISINE"], 41} , {"Value", id["LAMPE_DECO_BUREAU"], 1} } , -1 , "Déco Bureau Off (Lux)" , {{"turnOff", id["LAMPE_DECO_BUREAU"]}} ) GEA.add ( true , 30 , "Déco Bureau Off (time)" , {{"Time", "22:10", "22:15"} , {"Days", "Monday, Tuesday, Wednesday, Thursday, Sunday"} , {"turnOff", id["LAMPE_DECO_BUREAU"]}} ) GEA.add ( true , 30 , "Déco Bureau Off (time)" , {{"Time", "23:00", "23:05"} , {"Days", "Friday, Saturday"} , {"turnOff", id["LAMPE_DECO_BUREAU"]}} ) -- STORE EST ------------------------------------- -- Fermeture du store si les températures intérieur et extérieur sont supérieur à25° GEA.add( { { "value+", id["NETATMO_CHAMBRECOUCHER"], 24.5 } , { "value+", id["NETATMO_TEMP_TERRASSE"], 24.5 } } ,1,"Températures élevée (+24.5 chambre (#value#) et +24.5 dehors (#value[2]#), baisser les stores", { {"Time", "12:00", "20:00"}, {"Close", id["STORE_BUREAU_EST"],"100"} , {"Email",id["HC2ALERTE"],"Bureau - Fermeture Store Est (Température)"} } ) -- STORE SUD ------------------------------------- -- Fermeture du store si les températures intérieur et extérieur sont supérieur à25° GEA.add( { { "value+", id["NETATMO_CHAMBRECOUCHER"], 24.5 } , { "value+", id["NETATMO_TEMP_TERRASSE"], 24.5 } } ,1,"Températures élevée (+24.5 chambre (#value#) et +24.5 dehors (#value[2]#), baisser les stores", { {"Time", "12:00", "20:00"}, {"Close", id["STORE_BUREAU_SUD"],"100"} , {"Email",id["HC2ALERTE"],"Bureau - Fermeture Store Sud (Température)"} } ) --################################################ --################ CHAMBRE A COUCHER ------------- -- STORE ----------------------------------------- -- Ouverture du store selon horaire semaine et weekend GEA.add( true , 1*60 , "Ouverture du store semaine à9h" , {{"Days","Weekday"},{"Time", "09:00", "09:05"},{"Open",id["STORE_CHAMBRECOUCHER"],100}, {"Email",id["HC2ALERTE"],"GEA - Store Chambre (O)."}}) GEA.add( true , 1*60 , "Ouverture du store Weekend à10h" , {{"Days","Weekend"},{"Time", "10:00", "10:05"},{"Open",id["STORE_CHAMBRECOUCHER"],100}, {"Email",id["HC2ALERTE"],"GEA - Store Chambre (O)."}}) -- Fermeture en fonction de la luminosité GEA.add( { {"Value-", id["LUXMETRE_TERRASSE"], 30}, {"Value!", id["STORE_CHAMBRECOUCHER"], 0} } , 1*60 , "Fermeture du store (Lux)" , {{"Time", "16:00", "20:10"},{"Close",id["STORE_CHAMBRECOUCHER"],100}, {"Email",id["HC2ALERTE"],"GEA - Store Chambre (F)."}}) -- Fermeture à20h pour l'été GEA.add( true , 1*60 , "Fermeture store (été 20h)." , {{"Time", "20:00", "20:10"},{"Close",id["STORE_CHAMBRECOUCHER"],100}, {"Email",id["HC2ALERTE"],"GEA - Store Chambre (F)."}}) -- Fermeture à5h du matin si il fait jour GEA.add( true , 1*60 , "Fermeture store (Matin)." , {{"Time", "05:00", "05:05"},{"Close",id["STORE_CHAMBRECOUCHER"],100}, {"Email",id["HC2ALERTE"],"GEA - Store Chambre (F)."}}) -- Fermeture du store si les températures intérieur et extérieur sont supérieur à25° GEA.add( { { "value+", id["NETATMO_CHAMBRECOUCHER"], 24.5 } , { "value+", id["NETATMO_TEMP_TERRASSE"], 24.5 } } ,1,"Températures élevée (+24.5 chambre (#value#) et +24.5 dehors (#value[2]#), baisser le store", { {"Time", "12:00", "20:00"}, {"Close", id["STORE_CHAMBRECOUCHER"],"100"} , {"Email",id["HC2ALERTE"],"Chambre - Fermeture Store (Température)"} } ) -- CLIM ------------------------------------------- -- Variables pour gestion de la clim local LimiteTemp_Allumage_Clim_Chambre = 25.5 local LimiteTemp_Extinction_Clim_Chambre = 22.6 -- Allumage clim chambre si température chambre > "LimiteTemp_Allumage_Clim_Chambre" ET température chambre <= Température extérieur GEA.add( { { "value+", id["NETATMO_CHAMBRECOUCHER"],LimiteTemp_Allumage_Clim_Chambre} , { "value+", id["NETATMO_TEMP_TERRASSE"], LimiteTemp_Allumage_Clim_Chambre } }, -1 , "Température chambre : #value#, Températeur extérieur : #value[2]#.", { {"Time", "14:00", "20:30"}, {"Function", function() fibaro:startScene(287) end}, {"Email",id["HC2ALERTE"],"Chambre - Allumage Clim."} } ) -- Extinction clim chambre si température chambre < "LimiteTemp_Extinction_Clim_Chambre" GEA.add( { {"Property", id["CLIM_CHAMBRE_MAIN"], "mode", 2} , {"value-",id["NETATMO_CHAMBRECOUCHER"],LimiteTemp_Extinction_Clim_Chambre}} ,5*60 , "Module clim chambre = #value#, température chambre = #value[2]#.", { {"Time", "14:30", "20:30"}, {"Function", function() fibaro:startScene(288) end}, {"Email",id["HC2ALERTE"],"Chambre - Extinction Clim."} } ) --################################################ --################ PENSION --------------- -- PIECE GL------------------------------ -- Allumage prise radiateur si température basse GEA.add( { {"value-", id["NETATMP_TEMP_PENSION_GL"], Pension_Min_Temp }, {"value", id["PRISE_RADIATEUR_GL"], 0} }, -1, "Température basse àla pension (#value#). Allumage du radiateur.", { {"turnOn", id["PRISE_RADIATEUR_GL"]}, {"Email",id["HC2ALERTE"],"GEA - Chauffage Pension - ON"} } ) -- Extinction prise radiateur si température haute GEA.add( { {"value+", id["NETATMP_TEMP_PENSION_GL"], Pension_Max_Temp }, {"value", id["PRISE_RADIATEUR_GL"], 1} }, -1, "Température correcte àla pension (#value#). Extinction du radiateur.", { {"turnOff", id["PRISE_RADIATEUR_GL"]}, {"Email",id["HC2ALERTE"],"GEA - Chauffage Pension - OFF"} } ) -- MATOLIERE -------------------------------------- -- Allumage prise radiateur si température basse GEA.add( { {"value-", id["NETATMO_TEMP_MATOLIERE"], Matoliere_Min_Temp }, {"value", id["PRISE_RADIATEUR_MATOLIERE"], 0} }, -1, "Température basse dans la matolière (#value#). Allumage du radiateur.", { {"turnOn", id["PRISE_RADIATEUR_MATOLIERE"]}, {"Email",id["HC2ALERTE"],"GEA - Chauffage Matolière - ON"} } ) -- Extinction prise radiateur si température haute GEA.add( { {"value+", id["NETATMO_TEMP_MATOLIERE"], Matoliere_Max_Temp }, {"value", id["PRISE_RADIATEUR_MATOLIERE"], 1} }, -1, "Température correcte dans la matolière (#value#). Extinction du radiateur.", { {"turnOff", id["PRISE_RADIATEUR_MATOLIERE"]}, {"Email",id["HC2ALERTE"],"GEA - Chauffage Matolière - OFF"} } ) 1
flechg Posté(e) le 18 août 2016 Signaler Posté(e) le 18 août 2016 Voici ma petite contribution et merci encore à vous tous pour tout ce que vous faites -- REVEIL DES NOEUX MORTS MODULES SUR SECTEUR GEA.add({"Dead", id["PORTE_GARAGE"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["PORTE_GARAGE"]}}) GEA.add({"Dead", id["PRISE_GARAGE"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["PRISE_GARAGE"]}}) GEA.add({"Dead", id["CUMULUS"]}, 1*60, "Le périphérique #name# ne répond plus", {{"WakeUp", id["CUMULUS"]}}) -- PUSH METEO ET NETATMO GEA.add({"Value-", id["NetAtmo_pression"],1010}, 5*60, "Pression athmosphérique à #value# Hpa... depression en approche !", {{"Email", 469}}) -- Envoi info NetAtmo température matinale GEA.add({{"Value!", id["NetAtmo_TempInt"], 999}, {"Value!", id["NetAtmo_HumiInt"], 999}, {"Value!", id["NetAtmo_TempExt"], 999}, {"Value!", id["NetAtmo_HumiExt"], 999}} , 1*60 , "La température intérieur est de #value[1]#°. L`humidité intérieur est de #value[2]#%. La température extérieur est de #value[3]#°. L`humidité extérieur est de #value[4]#%.", {{"Time", "07:15", "07:20"}}) ----JOUR CHOME GEA.add(true, 30, "", {{"VirtualDevice", 454, 3},{"Time", "00:00", "00:01"}, {"Time", "12:00", "12:01"}}) --Fermeture des volets des chambres et salon GEA.add(true, 1*60, "volets fermés", {{"Email", 469}, {"Time", "Sunset>20:30", "Sunset>20:35"}, {"Dates", "01/10","31/12"}, {"Close",id["VOLET_EMMA"],100},{"Close",id["VOLET_PARENT"],100},{"Close",id["VOLET_SALON"],100}}) GEA.add(true, 1*60, "volets fermés", {{"Email", 469}, {"Time", "Sunset>20:30", "Sunset>20:35"}, {"Dates", "01/01","31/05"}, {"Close",id["VOLET_EMMA"],100},{"Close",id["VOLET_PARENT"],100},{"Close",id["VOLET_SALON"],100}}) GEA.add(true, 1*60, "volets fermés", {{"Email", 469}, {"Time", "21:30", "21:35"}, {"Dates", "01/06","30/09"}, {"Close",id["VOLET_EMMA"],100},{"Close",id["VOLET_PARENT"],100},{"Close",id["VOLET_SALON"],100}}) --------------DETECTION PRESENCE-------------- -- Signale Push SF at Home GEA peux se déclencher sur un changement de valeur d'une variable global GEA.add({"Global", "Presence_Serge", "1"}, 1*60, "", {{"time", "00:01", "23:59"}}) GEA.add({"Global", "Presence_Serge", "0"}, 1*60, "", {{"time", "00:01", "23:59"}}) ---Volet ouvert matin avec arret si ouvert manuel --Ouverture des volets du salon local estChome = {"Global", "JourChome", "OUI"} local estTravail = {"Global", "JourChome", "NON"} GEA.add({estTravail, {"Value-",id['VOLET_PARENT'],5}}, 1*60, "", {{"Time","07:10", "07:12"}, {"Open",id["VOLET_PARENT"],20}}) GEA.add({estTravail, {"Value-",id['VOLET_EMMA'],5}}, 1*60, "", {{"Time","07:20", "07:21"}, {"Open",id["VOLET_EMMA"],20}}) GEA.add({estTravail, {"Value-",id['VOLET_SALON'],5}}, 1*60, "", {{"Time","07:10", "07:12"}, {"Open",id["VOLET_SALON"],20}}) GEA.add({estTravail, {"Value-",id['VOLET_PARENT'],25}}, 1*60, "", {{"Time","07:15", "07:17"}, {"Open",id["VOLET_PARENT"],50}}) GEA.add({estTravail, {"Value-",id['VOLET_EMMA'],25}}, 1*60, "", {{"Time","07:25", "07:27"}, {"Open",id["VOLET_EMMA"],50}}) GEA.add({estTravail, {"Value-",id['VOLET_SALON'],25}}, 1*60, "", {{"Time","07:15", "07:17"}, {"Open",id["VOLET_SALON"],50}}) GEA.add({estTravail, {"Value-",id['VOLET_PARENT'],55}}, 1*60, "", {{"Time","07:30", "07:35"}, {"Open",id["VOLET_PARENT"],100}}) GEA.add({estTravail, {"Value-",id['VOLET_EMMA'],55}}, 1*60, "", {{"Time","07:30", "07:35"}, {"Open",id["VOLET_EMMA"],100}}) GEA.add({estTravail, {"Value-",id['VOLET_SALON'],55}}, 1*60, "", {{"Time","07:30", "07:35"}, {"Open",id["VOLET_SALON"],100}}) --PRISE SAPIN ---GEA.add({estTravail}, 1*30, "", {{"Days", "Weekday"}, {"Time", "06:45", "07:11"}, {"turnOn",id["PRISE_SAPIN"]}}) ---GEA.add({estTravail}, 1*30, "", {{"Days", "Weekday"}, {"Time", "07:30", "07:32"}, {"turnOff",id["PRISE_SAPIN"]}}) ---GEA.add(true, 1*30, "",{{"Days", "Weekend, Weekday"}, {"Time", "18:00", "18:05"}, {"turnOn",id["PRISE_SAPIN"]}}) ---GEA.add(true, 1*30, "",{{"Days", "Weekend, Weekday"}, {"Time", "22:00", "22:02"}, {"turnOff",id["PRISE_SAPIN"]}}) --PRISE VALERIE GEA.add({estTravail}, 1*30, "", {{"Days", "Weekday"}, {"Time", "20:45", "07:10"}, {"turnOn",id["PRISE_VALERIE"]}}) GEA.add({estTravail}, 1*30, "", {{"Days", "Weekday"}, {"Time", "07:10", "07:11"}, {"turnOff",id["PRISE_VALERIE"]}}) GEA.add(true, 1*30, "",{{"Days", "Weekend, Weekday"}, {"Time", "20:00", "10:00"}, {"turnOn",id["PRISE_VALERIE"]}}) GEA.add(true, 1*30, "",{{"Days", "Weekend, Weekday"}, {"Time", "10:00", "10:02"}, {"turnOff",id["PRISE_VALERIE"]}}) ---Activation Alarme sur detection et presence-- PAs de detection pendant 10 mins, tu travailles, et tu n'es pas present : ARMEMENT DES MODULES GEA.add({id["DET_SALON"], {"Global", "JourChome", "NON"}, {"Global", "Presence_Serge", "0"}, {"Value-",id['NetAtmo_Bruit'],43}}, 10*60, "detecteur armer #time#", {{"Email", 469}, {"time", "08:15", "12:00"}, {"time", "13:20", "16:00"}, {"Inverse"}, {"Virtualdevice", 78, "1"}}) -- Detection de mouvement, tu travailles, tu es PRESENT : DESARMEMENT des modules GEA.add({{"Global", "JourChome", "NON"}, {"Global", "Presence_Serge", "1"}}, 1, "detecteur Desarmer #time#", {{"Email", 469}, {"Virtualdevice", 78, "2"}}) -- Eteindre Prise garage si <5w pendant 5min GEA.add({"Sensor-", id["PRISE_GARAGE"], 5}, 5*60, "", {{"turnOff"}}) -- Eteindre Prise garage aprés 1H30 si >70w GEA.add({"Sensor+", id["PRISE_GARAGE"], 70}, 90*60, "Fin Arrosage", {{"turnOff"}}) -- Mise a jour variable HC HP GEA.add({"Global", "TarifConso", "HC"}, 1*60, "TarifConsoHC #time#", {{"Email", 469}, {"time", "00:01", "23:59"}}) GEA.add({"Global", "TarifConso", "HP"}, 1*60, "TarifConsoHP #time#", {{"Email", 469}}) -- Mise en marche HC Cumulus GEA.add(true, 1*60, "Cumulus On", {{"Time", "01:30", "05:35"}, {"turnOn", id["CUMULUS"]}}) -- Eteindre GEA.add(true, 1*60, "Cumulus Off", {{"Time", "05:30", "05:35"}, {"turnOff", id["CUMULUS"]}}) --- Fermeture garage apres 10min sur detection de Mvt --local autoclose = GEA.add({"Value+", id["PORTE_GARAGE"], 70}, 10*60, "ouvert depuis plus de 10 minutes", {{"close"}, {"Repeat"}}) --GEA.add(id["DET_GARAGE"], -1, "", {{"StopTask", autoclose}}) --GEA.add(id["DET_GARAGE"], 10*60, "", {{"Inverse"}, {"RestartTask", autoclose}, {"Repeat"}}) GEA.add(id["PORTE_GARAGE"], -1, "La porte de garage actionnée", {{"Inverse"}}) GEA.add({"Value+", id["PORTE_GARAGE"], 70}, 20*60, "ouvert depuis plus de #duration# minutes", {{"Repeat"}}) ---Ouverture lever wk --Mise a jour variable GEA.add(true, 30, "", {{"VirtualDevice", 464, 3}, {"Time", "00:00", "00:05"}}) local LeverWeekend = {"Global", "Etat_Reveil_WK", "1"} GEA.add({"Global", "Etat_Reveil_WK", "1"}, 1*60, "Lever WK #time#", {{"Email", 469}}) GEA.add({"Global", "Etat_Reveil_WK", "0"}, 1*60, "Coucher WK #time#", {{"Email", 469}}) GEA.add({LeverWeekend, {"Value-",id['VOLET_PARENT'],25}}, 5*60, "", {{"Time", "07:30", "10:35"}, {"Open",id["VOLET_PARENT"],50}}) GEA.add({LeverWeekend, {"Value-",id['VOLET_EMMA'],25}}, 5*60, "", {{"Time", "07:30", "10:35"}, {"Open",id["VOLET_EMMA"],50}}) GEA.add({LeverWeekend, {"Value-",id['VOLET_SALON'],25}}, 5*60, "", {{"Time", "07:30", "10:35"}, {"Open",id["VOLET_SALON"],50}}) GEA.add({LeverWeekend, {"Value-",id['VOLET_PARENT'],55}}, 10*60, "", {{"Time", "07:30", "10:35"}, {"Function", function() fibaro:sleep(15000) end}, {"Open",id["VOLET_PARENT"],100}}) GEA.add({LeverWeekend, {"Value-",id['VOLET_EMMA'],55}}, 10*60, "", {{"Time", "07:30", "10:35"}, {"Function", function() fibaro:sleep(15000) end}, {"Open",id["VOLET_EMMA"],100}}) GEA.add({LeverWeekend, {"Value-",id['VOLET_SALON'],55}}, 10*60, "", {{"Time", "07:30", "10:35"}, {"Function", function() fibaro:sleep(15000) end}, {"Open",id["VOLET_SALON"],100}}) 1
Messages recommandés