Aller au contenu
sebcbien

Showroom Configs Gea

Recommended Posts

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É,

 

 

:15: NE POSEZ PAS DE QUESTIONS DANS CE FIL !!!  :15:

 

:60: SI VOUS VOULEZ REMERCIER UN POST, CLIQUEZ SUR LE BOUTON J'AIME  :60: 

 

 

 

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  :)

  • Upvote 17

Partager ce message


Lien à poster
Partager sur d’autres sites

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}})--------------------------------------------
  • Upvote 5

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par HANSOLO
  • Upvote 4

Partager ce message


Lien à poster
Partager sur d’autres sites
--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 :

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par Moicphil
  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

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}})

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par Yohan
  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

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}}) 

Partager ce message


Lien à poster
Partager sur d’autres sites

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"]}})
---------------------

Partager ce message


Lien à poster
Partager sur d’autres sites

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  :D

 

--[[
%% 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}})
  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

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"]}})

  • Upvote 5

Partager ce message


Lien à poster
Partager sur d’autres sites

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"]}})
-----------------------------------------------  
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par Diuck
  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

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}})   

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par Sakkhho
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

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é  par jojo
	
	

			
		
  • Upvote 6

Partager ce message


Lien à poster
Partager sur d’autres sites

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}})
-----------------------------------------------


Partager ce message


Lien à poster
Partager sur d’autres sites

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}})
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}})

post-112-0-90342200-1445140904_thumb.jpg

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}})

post-112-0-90342200-1445140904_thumb.jpg

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}})
-----------------------------------------------

Partager ce message


Lien à poster
Partager sur d’autres sites

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 !!!!!!!!!! -------------    

Partager ce message


Lien à poster
Partager sur d’autres sites

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"} } )	  
	 
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Voici ma petite contribution et merci encore à  vous tous pour tout ce que vous faites  :74:  :74:  :74:  ;)  ;)  :60:

 -- 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}})
		
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×