en construction

sebcbien.lua
--[[
%% autostart
%% properties
18 value
45 sceneActivation 
49 sceneActivation
50 sceneActivation
83 value
84 value
77 value
114 value
986 value
988 value
989 value
990 value
%% globals
Phone_GG_Present
Phone_Seb_Present
Alarme
--]]
 
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
-- Virtual Device 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 sunrise
local 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 sunset
local joursam = {"Time", "Sunrise", "Sunset-30"}
    -- On dimme la lampe automatiquement après 60mn et on l'éteint après 70mn si pas d'action manuelle
local 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 manuelle
local 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"}})
-----------------------------------------------