Aller au contenu
sebcbien

Showroom Gea V2

Recommended Posts

post 2/6

(aller courage jojo, plus que 2000 comme ça et tu as ratrappé Lazer)

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

post 2/14

(j'en ai marre)

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

enfin la page 3 pour la suite

  
-------------------
  -- Etage
-------------------
-- Hall de Nuit
  -- Lampe SdJ
    -- Extinction automatique de la lampe après 30s.
     local autoOffSdJ = GEA.add ({DeviceID["LUM_HALLNUIT_SDJ"], auth_LumInterieur, pasIncendie}, 31, "", {{"turnOff", DeviceID["LUM_HALLNUIT_SDJ"]}, {"NotStarted"}})
    -- Appuie sur l'interrupteur de la lampe, on stoppe l'extinction automatique.
     GEA.add (DeviceID["LUM_HALLNUIT_SDJ"], -1, "", {{"StopTask", autoOffSdJ}})
    -- Allumage de la lampe sur détection mouvement
     GEA.add ({DeviceID["MVT_HALLNUIT_SDJ"], auth_LumInterieur, estNuit, {"Value", DeviceID["LUM_HALLNUIT_SDJ"], 0}}, -1, "", {{"turnOn", DeviceID["LUM_HALLNUIT_SDJ"]}, {"RestartTask", autoOffSdJ}})
    -- Extinction de la lampe dans tous les cas après 10 min
     GEA.add ({DeviceID["ALARME_ACTIVE"], DeviceID["LUM_HALLNUIT_SDJ"], pasIncendie}, 10*60, "Extinction du Hall de Nuit SdJ, car allumée depuis #duration#. (#date# à#time#)", {{"Inverse"}, {"turnOff", DeviceID["LUM_HALLNUIT_SDJ"]}, {"Email", UserID["Vincent"], "ALERTE - Lumière Hall de Nuit"}})
  -- Lampe SdB
    -- Extinction automatique de la lampe après 20s.
     local autoOffSdB = GEA.add ({DeviceID["LUM_HALLNUIT_SDB"], auth_LumInterieur, pasIncendie}, 20, "", {{"turnOff", DeviceID["LUM_HALLNUIT_SDB"]}, {"NotStarted"}})
    -- Appuie sur l'interrupteur de la lampe, on stoppe l'extinction automatique.
     GEA.add (DeviceID["LUM_HALLNUIT_SDB"], -1, "", {{"StopTask", autoOffSdB}})
    -- Allumage de la lampe sur détection mouvement
     GEA.add ({DeviceID["MVT_HALLNUIT_SDB"], auth_LumInterieur, estNuit, {"Value", DeviceID["LUM_HALLNUIT_SDB"],0}}, -1, "", {{"turnOn", DeviceID["LUM_HALLNUIT_SDB"]}, {"RestartTask", autoOffSdB}})
    -- Extinction de la lampe dans tous les cas après 10 min
     GEA.add ({DeviceID["ALARME_ACTIVE"], DeviceID["LUM_HALLNUIT_SDB"], pasIncendie}, 10*60, "Extinction du Hall de Nuit SdB, car allumée depuis #duration#. (#date# à#time#)", {{"Inverse"}, {"turnOff", DeviceID["LUM_HALLNUIT_SDB"]}, {"Email", UserID["Vincent"], "ALERTE - Lumière Hall de Nuit"}})

-- SdB Etage
  -- VMC Authorisé
     GEA.add (true, 1, "", {{"Time", "08:00", "12:00"}, {"VirtualDevice", DeviceID["VAR_AUTH_VMCETAGE"], 3}})
  -- VMC Interdit
     GEA.add (true, 1, "", {{"Time", "23:30", "03:30"}, {"VirtualDevice", DeviceID["VAR_AUTH_VMCETAGE"], 4}})
  -- VMC On
     GEA.add ({DeviceID["ALARME_ACTIVE"], DeviceID["LUM_SDBETAGE"], auth_VMCEtage, pasIncendie, {"Value", DeviceID["VMC_ETAGE"], 0}}, 2*60, "", {{"Inverse"}, {"turnOn", DeviceID["VMC_ETAGE"]}})
  -- VMC Off
     GEA.add ({DeviceID["LUM_SDBETAGE"], DeviceID["VMC_ETAGE"]}, 20*60, "", {{"Inverse"}, {"turnOff", DeviceID["VMC_ETAGE"]}})
  -- extinction automatique après 1 heure
     GEA.add (DeviceID["LUM_SDBETAGE"], 60*60, "Extinction automatique de la lumière de la salle de bains étage car allumée depuis #duration#. (#date# à#time#)", {{"turnOff", DeviceID["LUM_SDBETAGE"]}, {"Email", UserID["Vincent"], "ALERTE - Salle de Bains Etage"}})

-- Bibliothèque
  -- PS3
     GEA.add ({DeviceID["PRISE_PS3"], inter_PS3}, -1, "La PS3 a été allumée, alors que en mode interdit => extinction. (#date# à#time#)", {{"turnOff", DeviceID["PRISE_PS3"]}, {"Email", UserID["Vincent"], "ALERTE - PS3"}})
     GEA.add ({DeviceID["PRISE_PS3"], auth_PS3}, -1, "La PS3 a été allumée. (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - PS3"}})
     GEA.add ({DeviceID["PRISE_PS3"], auth_PS3}, -1, "La PS3 a été éteinte. (#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - PS3"}})
     GEA.add ({inter_PS3, DeviceID["PRISE_PS3"]}, -1 , "PS3 en mode interdit => extinction. (#date# à#time#)", {{"turnOff", DeviceID["PRISE_PS3"]}, {"Email", UserID["Vincent"], "ALERTE - PS3"}})
  -- PS3 not used
     GEA.add ({{"Sensor-", DeviceID["PRISE_PS3"], 40}, DeviceID["PRISE_PS3"]}, 15*60, "La PS3 a été éteinte, car consommation = #value#W < 40W depuis #duration#. (#date# à#time#)", {{"turnOff", DeviceID["PRISE_PS3"]}, {"Email", UserID["Vincent"], "ALERTE - PS3"}})


-------------------
  -- Sous-sol
-------------------
-- Chaufferie
  --[[
  -- Notifications : Panneaux de Chauffage, circulateurs, chaudière
     GEA.add ({DeviceID["THERM_BUREAU"], {"Value+", DeviceID["TMP_BUREAU"], 0}}, 1, "Panneau Bureau ON. \nTempérature : #value[2]#°C. \n(#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["THERM_BUREAU"], {"Value+", DeviceID["TMP_BUREAU"], 0}}, 1, "Panneau Bureau OFF. \nTempérature : #value[2]#°C. \n(#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["THERM_CHENFANTS"], {"Value+", DeviceID["TMP_MAXIMILIEN"], 0}}, 1, "Panneau Ch Enfants ON. \nTempérature : #value[2]#°C. \n(#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["THERM_CHENFANTS"], {"Value+", DeviceID["TMP_MAXIMILIEN"], 0}}, 1, "Panneau Ch Enfant OFF. \nTempérature : #value[2]#°C. \n(#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["THERM_SDBETAGE"], {"Value+", DeviceID["TMP_SDBETAGE"], 0}}, 1, "Panneau SdB Etage ON. \nTempérature : #value[2]#°C. \n(#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["THERM_SDBETAGE"], {"Value+", DeviceID["TMP_SDBETAGE"], 0}}, 1, "Panneau SdB Etage OFF. \nTempérature : #value[2]#°C. \n(#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["CIRCULATEUR_REZ"], {"Value+", DeviceID["TMP_SDBREZ"], 0}, {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Panneau SdB Rez ON / Circulateur Rez ON. \nTempérature SdB Rez : #value[2]#°C. \nTempérature Ballon Tisun : #value[3]#°C. \n(#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["CIRCULATEUR_REZ"], {"Value+", DeviceID["TMP_SDBREZ"], 0}, {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Panneau SdB Rez OFF / Circulateur Rez OFF. \nTempérature SdB Rez : #value[2]#°C. \nTempérature Ballon Tisun : #value[3]#°C. \n(#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["CIRCULATEUR_ETAGE"], {"Value+", DeviceID["TMP_SDJ"], 0}, {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Circulateur Etage ON. \nTempérature SdJ : #value[2]#°C. \nTempérature Ballon Tisun : #value[3]#°C. \n(#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["CIRCULATEUR_ETAGE"], {"Value+", DeviceID["TMP_SDJ"], 0}, {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Circulateur Etage OFF. \nTempérature SdJ : #value[2]#°C. \nTempérature Ballon Tisun : #value[3]#°C. \n(#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["CHAUDIERE_OUTPUT"], {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Chaudière ON. \nTempérature Ballon Tisun : #value[2]#°C. \n(#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Chauffage"}})
     GEA.add ({DeviceID["CHAUDIERE_OUTPUT"], {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Chaudière OFF. \nTempérature Ballon Tisun : #value[2]#°C. \n(#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - Chauffage"}})
  --]]
  
  -- Circulateur Etage ON
     GEA.add ({DeviceID["CIRCULATEUR_ETAGE"], DeviceID["THERM_BUREAU"]}, 1, "", {{"Inverse"}, {"turnOn", DeviceID["CIRCULATEUR_ETAGE"]}})
     GEA.add ({DeviceID["CIRCULATEUR_ETAGE"], DeviceID["THERM_CHENFANTS"]}, 1, "", {{"Inverse"}, {"turnOn", DeviceID["CIRCULATEUR_ETAGE"]}})
     GEA.add ({DeviceID["CIRCULATEUR_ETAGE"], DeviceID["THERM_SDBETAGE"]}, 1, "", {{"Inverse"}, {"turnOn", DeviceID["CIRCULATEUR_ETAGE"]}})
     GEA.add ({DeviceID["CIRCULATEUR_ETAGE"], DeviceID["THERM_SDJ"]}, 1, "", {{"Inverse"}, {"turnOn", DeviceID["CIRCULATEUR_ETAGE"]}})
     GEA.add ({DeviceID["CIRCULATEUR_ETAGE"], DeviceID["THERM_BIBLIOTHEQUE"]}, 1, "", {{"Inverse"}, {"turnOn", DeviceID["CIRCULATEUR_ETAGE"]}})
  -- Circulateur Etage OFF
     GEA.add ({{"Value", DeviceID["THERM_BUREAU"], 0}, {"Value", DeviceID["THERM_CHENFANTS"], 0}, {"Value", DeviceID["THERM_SDBETAGE"], 0}, {"Value", DeviceID["THERM_SDJ"], 0}, {"Value", DeviceID["THERM_BIBLIOTHEQUE"], 0}, DeviceID["CIRCULATEUR_ETAGE"]}, 1, "", {{"turnOff", DeviceID["CIRCULATEUR_ETAGE"]}})
  -- Chaudière ON
     GEA.add ({DeviceID["CHAUDIERE_OUTPUT"], DeviceID["CHAUDIERE_CMD"], estECS, {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Chaudière AUTORISEE car ECS. \nTempérature ballon Tisun : #value[4]#°C. \n(#date# à#time#)", {{"Inverse"}, {"turnOn", DeviceID["CHAUDIERE_OUTPUT"]}})
     GEA.add ({DeviceID["CHAUDIERE_OUTPUT"], DeviceID["CHAUDIERE_CMD"], DeviceID["CIRCULATEUR_REZ"], {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Chaudière AUTORISEE car Circulateur Rez. \nTempérature ballon Tisun : #value[4]#°C. \n(#date# à#time#)", {{"Inverse"}, {"turnOn", DeviceID["CHAUDIERE_OUTPUT"]}})
     GEA.add ({DeviceID["CHAUDIERE_OUTPUT"], DeviceID["CHAUDIERE_CMD"], DeviceID["CIRCULATEUR_ETAGE"], {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Chaudière AUTORISEE car Circulateur Etage. \nTempérature ballon Tisun : #value[4]#°C. \n(#date# à#time#)", {{"Inverse"}, {"turnOn", DeviceID["CHAUDIERE_OUTPUT"]}})
  -- Chaudière OFF
     GEA.add ({pasECS, {"Value", DeviceID["CIRCULATEUR_REZ"], 0}, {"Value", DeviceID["CIRCULATEUR_ETAGE"], 0}, DeviceID["CHAUDIERE_OUTPUT"], {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Chaudière INTERDITE (car pas de demande dans la maison). \nTempérature ballon Tisun : #value[5]#°C. \n(#date# à#time#)", {{"turnOff", DeviceID["CHAUDIERE_OUTPUT"]}})
     GEA.add ({DeviceID["CHAUDIERE_CMD"], {"Value+", DeviceID["TMP_TISUN"], 0}}, 1, "Chaudière INTERDITE (car pas de demande par Solaire). \nTempérature ballon Tisun : #value[2]#°C. \n(#date# à#time#)", {{"Inverse"}, {"turnOff", DeviceID["CHAUDIERE_OUTPUT"]}})
  -- Panneaux Solaires Tisun
    -- si température inchangée, notification
     GEA.add ({{"Function", function() return checktempT() end}, {"Value+", DeviceID["TMP_TISUN"], 0}}, 4*60, "Pas de modification de la température ballon Tisun (#value[2]#°C) depuis #duration#. (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - TMP_TISUN"}, {"Repeat"}})

-- Cave àvin
  -- Porte Ouverte
     GEA.add({{"Dead", DeviceID["PORTE_CAVEAVIN"]}, DeviceID["PORTE_CAVEAVIN"]}, 5*60, "La porte de la cave àvin est ouverte depuis #duration#. (#date# à#time#)", {{"Inverse"}, {"Portable", MobileID["V_Nexus5"]}})
     GEA.add({{"Dead", DeviceID["PORTE_CAVEAVIN"]}, DeviceID["PORTE_CAVEAVIN"]}, 5*60, "La porte de la cave àvin est ouverte depuis #duration#. (#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "ALERTE - Porte cave àvin ouverte"}, {"Repeat"}})
  -- Température Cave àvin
     GEA.add ({"Value+", DeviceID["TMP_CAVEAVIN"], 15}, 3*60*60, "La température de la cave àvin est de #value# °C depuis #duration#. (#date# à#time#)", {{"VirtualDevice", DeviceID["TECHNICAL"], 5}, {"Function", function() AlarmeCaveAVin = "Alarm" end}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALERTE - température cave àvin"}})
     GEA.add ({"Value+", DeviceID["TMP_CAVEAVIN"], 15}, 24*60*60, "La température de la cave àvin est de #value# °C depuis #duration#. (#date# à#time#)", {{"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALERTE - température cave àvin"}, {"Repeat"}})
     GEA.add ({{"Value-", DeviceID["TMP_CAVEAVIN"], 14}, {"Function", function() if AlarmeCaveAVin == "Alarm" then return true end end}}, 10*60, "La température de la cave àvin est revenue à#value# °C depuis #duration#. (#date# à#time#)", {{"VirtualDevice", DeviceID["TECHNICAL"], 4}, {"Function", function() AlarmeCaveAVin = "Safe" end}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALERTE - température cave àvin"}})
  -- Pompe eau de pluie
     GEA.add ({{"Sensor+", DeviceID["PRISE_PMPEAUPLUIE"], 100}, pasRemplPiscine, {"Value-", DeviceID["NIVEAU_EAU_PLUIE"], 99999}}, 10*60, "Vérifier la pompe eau de pluie. \nElle est allumée (#value#W) en continu depuis #duration#. \nArrêt de la pompe. \n=> Passage des toilettes et machine àlaver sur eau de ville.\nLe niveau de la citerne d eau de pluie est de #value[3]#L.\n(#date# à#time#)",{{"turnOff", DeviceID["PRISE_PMPEAUPLUIE"]}, {"Email", UserID["Vincent"], "ALERTE - Pompe eau de pluie"}})
     GEA.add ({DeviceID["PRISE_PMPEAUPLUIE"], {"Value+", DeviceID["NIVEAU_EAU_PLUIE"], 2000}}, 10*60, "Vérifier la pompe eau de pluie. \nElle est éteinte et le niveau de la citerne d eau de pluie est de #value[2]#L. \n=> Redémarrez manuellement la pompe et passez les toilettes et la machine àlaver sur eau de pluie.\n(#date# à#time#)",{{"Inverse"}, {"Email", UserID["Vincent"], "ALERTE - Pompe eau de pluie"}})


-------------------
  -- Extérieur
-------------------
-- Avant
  -- éclairage AVANT si ouverture barrière
     GEA.add ({DeviceID["BARRIERE_CLOSED"], estNuit, {"value", DeviceID["LUM_AVANT"], 0}}, -1, "TurnOn Lumière avant (ouverture de la barrière). (#date# à#time#)", {{"turnOn", DeviceID["LUM_AVANT"]}})
  -- éclairage si détection de mouvement la nuit
     GEA.add ({DeviceID["MVT_OUEST_AVANT"], estNuit, {"value", DeviceID["LUM_AVANT"], 0}}, -1, "TurnOn Lumière avant (détecteur Ouest). (#date# à#time#)", {{"turnOn", DeviceID["LUM_AVANT"]}})
     GEA.add ({DeviceID["MVT_EST_AVANT"], estNuit, {"value", DeviceID["LUM_AVANT"], 0}}, -1, "TurnOn Lumière avant (détecteur Est). (#date# à#time#)", {{"turnOn", DeviceID["LUM_AVANT"]}})
  -- éclairage si détection de mouvement en vacances
     for _,v in ipairs(groupeLampesExt) do
       GEA.add ({DeviceID["MVT_OUEST_AVANT"], estVacances, {"value", v, 0}}, -1, "On allume toutes les lampes extérieures. (#date# à#time#)", {{"turnOn", v}})
     end
     for _,v in ipairs(groupeLampesExt) do
       GEA.add ({DeviceID["MVT_EST_AVANT"], estVacances, {"value", v, 0}}, -1, "On allume toutes les lampes extérieures. (#date# à#time#)", {{"turnOn", v}})
     end
  -- Extinction si plus de mouvement la nuit
     GEA.add ({DeviceID["LUM_AVANT"], {"value", DeviceID["MVT_EST_AVANT"], 0}, {"value", DeviceID["MVT_OUEST_AVANT"], 0}, pasIncendie}, 61, "TurnOff Lumière avant si plus de mouvement. (#date# à#time#)", {{"turnOff", DeviceID["LUM_AVANT"]}})
  -- Extinction de la lampe dans tous les cas après 10 min
     GEA.add ({pasIncendie, DeviceID["LUM_AVANT"]}, 10*60, "TurnOff Lumière avant, car allumé depuis #duration#. (#date# à#time#)", {{"turnOff", DeviceID["LUM_AVANT"]}, {"Email", UserID["Vincent"], "ALERTE - Lumière Extérieure Avant"}})
  -- Boite aux lettres
     GEA.add (DeviceID["BOITELETTRES_FACTEUR"], 1, "Le facteur est passé. (#date# à#time#)", {{"VirtualDevice", DeviceID["COURRIER"], 3}, {"Email", UserID["Vincent"], "INFO - Courrier"}})
     ---GEA.add (DeviceID["BOITELETTRES_FACTEUR"], 1, "", {{"Time", "08:00", "22:00"}, {"VirtualDevice", DeviceID["SONOS_MP3"], 5}})
     GEA.add ({DeviceID["ALARME_ACTIVE"], {"Global", "Courrier", "Oui"}}, 31, "Il y a du courrier dans la boite aux lettres. (#date# à#time#)",{{"Inverse"}, {"Time", "08:00", "20:00"}, {"VirtualDevice", DeviceID["SONOS_MP3"], 6}})
     GEA.add ({DeviceID["BOITELETTRES_PORTE"], {"Global", "Courrier", "Oui"}}, 1, "Le courrier a été relevé. (#date# à#time#)", {{"VirtualDevice", DeviceID["COURRIER"], 4}, {"Email", UserID["Vincent"], "INFO - Courrier"}})
     GEA.add ({DeviceID["BOITELETTRES_PORTE"], {"Global", "Courrier", "Oui"}}, 1, "Le courrier a été relevé. (#date# à#time#)", {{"Inverse"}, {"VirtualDevice", DeviceID["COURRIER"], 4}, {"Email", UserID["Vincent"], "INFO - Courrier"}})
  -- Portillon
     GEA.add (DeviceID["CONTACT_GACHE"], -1, "", {{"Inverse"}, {"turnOn", DeviceID["BOUTON_GACHE"]}})
  -- Icône status barrière
     -- garder le code du VD (bouton Refresh #4) pour pouvoir remplacer GEA et mettre àjour au redémarrage de la box
     GEA.add ({DeviceID["BARRIERE_CLOSED"], {"value", DeviceID["BARRIERE_OPENED"], 0}}, -1, "Barrière fermée", {{"Inverse"}, {"VirtualDevice", DeviceID["STAT_BARRIERE"], 3}})
     GEA.add ({DeviceID["BARRIERE_CLOSED"], {"value", DeviceID["BARRIERE_OPENED"], 0}}, -1, "Barrière en ouverture", {{"VirtualDevice", DeviceID["STAT_BARRIERE"], 2}})
     GEA.add ({DeviceID["BARRIERE_OPENED"], DeviceID["BARRIERE_CLOSED"]}, -1, "Barrière ouverte", {{"VirtualDevice", DeviceID["STAT_BARRIERE"], 1}})
     GEA.add ({DeviceID["BARRIERE_OPENED"], DeviceID["BARRIERE_CLOSED"]}, -1, "Barrière en fermeture", {{"Inverse"}, {"VirtualDevice", DeviceID["STAT_BARRIERE"], 2}})

-- Jardin
  -- éclairage si détection de mouvement en vacances
     for _,v in ipairs(groupeLampesExt) do
       GEA.add ({DeviceID["MVT_OUEST_JARDIN"], estVacances, {"value", v, 0}}, -1, "On allume toutes les lampes extérieures. (#date# à#time#)", {{"turnOn", v}})
     end
     for _,v in ipairs(groupeLampesExt) do
       GEA.add ({DeviceID["MVT_EST_JARDIN"], estVacances, {"value", v, 0}}, -1, "On allume toutes les lampes extérieures. (#date# à#time#)", {{"turnOn", v}})
     end

-- Extérieur
  -- Extinction si plus de mouvement en vacances
     for _,v in ipairs(groupeLampesExt) do
       GEA.add ({estVacances, v, {"value", DeviceID["MVT_EST_JARDIN"], 0}, {"value", DeviceID["MVT_OUEST_JARDIN"], 0}, {"value", DeviceID["MVT_EST_AVANT"], 0}, {"value", DeviceID["MVT_OUEST_AVANT"], 0}, pasIncendie}, 61, "On éteint toutes les lampes extérieures. (#date# à#time#)", {{"turnOff", v}})
     end
  -- Extinction dans tous les cas après 10 min et en vacances
     for _,v in ipairs(groupeLampesExt) do
       GEA.add ({estVacances, v, pasIncendie}, 10*60, "On éteint toutes les lampes extérieures. (#date# à#time#)", {{"turnOff", v}})
     end

-- Piscine
  -- Gestion Offset temérature
     GEA.add (DeviceID["PISCPMP"], -1, "Piscine ON. (#date# à#time#)", {{"VirtualDevice", DeviceID["TECHNICAL"], 7}, {"Email", UserID["Vincent"], "INFO - Piscine"}})
     GEA.add ({DeviceID["PISCPMP"], {"Value-", DeviceID["TMP_PISCINE"], 200}}, 30*60, "Piscine ON depuis #duration#. La température de la piscine est de #value[2]#°C. (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Piscine"}})
     GEA.add ({DeviceID["PISCPMP"], {"Value-", DeviceID["TMP_PISCINE"], 200}}, -1, "Piscine OFF. La température de la piscine est de #value[2]#°C. (#date# à#time#)", {{"Inverse"}, {"Global", "Piscine_temp", "#value[2]#"}, {"VirtualDevice", DeviceID["TECHNICAL"], 7}, {"Email", UserID["Vincent"], "INFO - Piscine"}})
  -- Info pompe ON si pas beau
     GEA.add ({{"Value-", DeviceID["TMP_EXTERIEURE"], 20}, DeviceID["PISCPMP"], {"Value-", DeviceID["TMP_PISCINE"], 50}}, 2*60*60, "Il fait #value[1]# °C dehors et la piscine est à#value[3]# °C et ON depuis #duration#. (#date# à#time#)", {{"Time", "10:00", "20:00"}, {"Email", UserID["Vincent"], "INFO - Piscine"}})
  -- Remplissave piscine
     GEA.add (estRemplPiscine, 1, "La piscine est en mode remplissage. (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Piscine"}})   
     GEA.add (estRemplPiscine, 30*60, "La piscine est en mode remplissage depuis #duration#. \nPassage en mode non remplissage. \nAller couper le tuyaux de remplissage de la piscine. (#date# à#time#)", {{"VirtualDevice", DeviceID["VAR_REMPL_PISCINE"], 4}, {"Email", UserID["Vincent"], "INFO - Piscine"}})
     --- messge si arrêt de la pompe quand variable àoui, et afficher niveau
     -- remplissage le 22/7/2016 - 2-3*10 min + 30 min - niveau cuve : 7273l à5859L = 1414L


-------------------
  -- Alarme
-------------------
-- test si un ouvrant est ouvert
     GEA.add (true, 1, "", {{"Function", function() Ouvrants = "Non" end}, {"Repeat"}})
     for _,v in ipairs(groupeOuvrants) do
       GEA.add (v, 1, "", {{"Function", function() Ouvrants = "Oui" end}, {"Repeat"}})
     end 
  
-- Alarme de nuit
  -- test si toutes les lampes intérieures sont éteintes
     GEA.add (true, 1, "", {{"Function", function() LampesTmp = "Non" end}, {"Repeat"}})
     for _,v in ipairs(groupeLampesInt) do
       GEA.add (v, 1, "", {{"Function", function() LampesTmp = "Oui" end}, {"Repeat"}})
     end 
     GEA.add ({{"Function", function() if LampesTmp == "Non" then return true end end}, {"Function", function() if Lampes == "Oui" then return true end end}}, 1, "", {{"Function", function() Lampes = "Non" end}})
     GEA.add ({{"Function", function() if LampesTmp == "Oui" then return true end end}, {"Function", function() if Lampes == "Non" then return true end end}}, 1, "", {{"Function", function() Lampes = "Oui" end}})
  -- si toutes les lampes éteintes et entre 22:00 et 06:00 depuis 3 min => Alarme_Nuit = Oui
     GEA.add ({DeviceID["ALARME_ACTIVE"], {"Function", function() if Lampes == "Non" then return true end end}, {"Function", function() if AlarmeNuit == "Non" then return true end end}}, 3*60, "Alarme nuit activée depuis #duration#. (#date# à#time#)", {{"Inverse"}, {"Time", "22:00", "06:00"}, {"Function", function() AlarmeNuit = "Oui" end}, {"Email", UserID["Vincent"], "INFO - Alarme de Nuit"}})
  -- si une lampe allumée => Alarme_Nuit = Non 
     GEA.add ({DeviceID["ALARME_ACTIVE"], {"Function", function() if Lampes == "Oui" then return true end end}, {"Function", function() if AlarmeNuit == "Oui" then return true end end}}, 1*60, "Alarme nuit désactivée. (#date# à#time#)", {{"Inverse"}, {"Function", function() AlarmeNuit = "Non" end}, {"Email", UserID["Vincent"], "INFO - Alarme de Nuit"}})
  -- à08:00 => Alarme_Nuit = Non
     GEA.add ({DeviceID["ALARME_ACTIVE"], {"Function", function() if AlarmeNuit == "Oui" then return true end end}}, 1, "Alarme nuit désactivée. (#date# à#time#)", {{"Inverse"}, {"Time", "08:00", "09:30"}, {"Function", function() AlarmeNuit = "Non" end}, {"Email", UserID["Vincent"], "INFO - Alarme de Nuit"}})
  -- Porte Extérieure ouverte => message sonos toutes les 30s
     ---GEA.add ({{"Function", function() if AlarmeNuit == "Oui" then return true end end}, {"Function", function() if Ouvrants == "Oui" then return true end end}}, 30, "Une des portes extérieures est ouverte. (#date# à#time#)", {{"VirtualDevice", DeviceID["SONOS_MP3"], 2}, {"Email", UserID["Vincent"], "ALERTE - porte extérieure ouverte"}, {"Repeat"}}) 

-- Garage Annabelle
  -- GA_OPEN => fermer
     local auto_GA_Close = GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_OPEN"]}, 90, "Garage Annabelle ouvert et alarme branchée. \nFermeture automatique. \n(#date# à#time#)", {{"turnOn", DeviceID["BOUTON_GA"]}, {"Email", UserID["Vincent"], "ALARME - Garage ouvert => fermeture automatique"}})
  -- GA_OPEN => pas réussi àla fermer
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_OPEN"]}, 135, "Garage Annabelle ouvert et alarme branchée. \nLa fermeture automatique n a PAS fonctionné. Aller voir sur place. \n(#date# à#time#)", {{"VirtualDevice", DeviceID["SONOS_MP3"], 2}, {"Email", UserID["Vincent"], "ALARME - Garage ouvert et en erreur"}})
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_OPEN"]}, 5*60, "", {{"picture", DeviceID["IPCAM_AVANT"], UserID["Vincent"]}, {"Repeat"}})
  -- GA_Mvt => porte garage mal fermée
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_MVT"]}, 45, "Garage Annabelle mal fermé et alarme branchée. \nAller voir sur place. \n(#date# à#time#)", {{"VirtualDevice", DeviceID["SONOS_MP3"], 2}, {"Email", UserID["Vincent"], "ALARME - Garage mal fermé et en erreur"}})
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_MVT"]}, 5*60, "", {{"picture", DeviceID["IPCAM_AVANT"], UserID["Vincent"]}, {"Repeat"}})

-- Garage Vincent
  -- GV_OPEN => fermer
     local auto_GV_Close = GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GV_OPEN"]}, 45, "Garage Vincent ouvert et alarme branchée. \nFermeture automatique. \n(#date# à#time#)", {{"turnOn", DeviceID["BOUTON_GV"]}, {"Email", UserID["Vincent"], "ALARME - Garage ouvert -> fermeture automatique"}})
  -- GV_OPEN => pas réussi àla fermer
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GV_OPEN"]}, 90, "Garage Vincent ouvert et alarme branchée. \nLa fermeture automatique n a PAS fonctionné. Aller voir sur place. \n(#date# à#time#)", {{"VirtualDevice", DeviceID["SONOS_MP3"], 2}, {"Email", UserID["Vincent"], "ALARME - Garage ouvert et en erreur"}})
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GV_OPEN"]}, 5*60, "", {{"picture", DeviceID["IPCAM_AVANT"], UserID["Vincent"]}, {"Repeat"}})
  -- GV_Mvt => porte garage mal fermée
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GV_MVT"]}, 45, "Garage Vincent mal fermé et alarme branchée. \nAller voir sur place. \n(#date# à#time#)", {{"VirtualDevice", DeviceID["SONOS_MP3"], 2}, {"Email", UserID["Vincent"], "ALARME - Garage mal fermé et en erreur"}})
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GV_MVT"]}, 5*60, "", {{"picture", DeviceID["IPCAM_AVANT"], UserID["Vincent"]}, {"Repeat"}})

-- Check porte fenêtre salon
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["PORTE_COULISS"]}, -1, "La porte fenêtre du salon est ouverte et alarme branchée. (#date# à#time#)", {{"VirtualDevice", DeviceID["SONOS_MP3"], 2}, {"VirtualDevice", DeviceID["IPCAM_LIVING"], 7}, {"Email", UserID["Vincent"], "ALARME - Porte fenêtre coulissante ouverte"}})
     GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["PORTE_COULISS"]}, 5*60, "", {{"picture", DeviceID["IPCAM_LIVING"], UserID["Vincent"]}, {"Repeat"}})

-- Activation alarme
  -- éteindre toutes les lampes
     for _,v in ipairs(groupeLampesInt) do
       GEA.add ({DeviceID["ALARME_ACTIVE"], v}, 1, "", {{"turnOff", v}})
     end
  -- éteindre les SONOS
     -- arrêt des sonos à30 sec d'intervalle, car les VD utilisent tous la même VG
     GEA.add (DeviceID["ALARME_ACTIVE"], 30, "", {{"VirtualDevice", DeviceID["SONOS_MAXIMILIEN"], 9}})
     GEA.add (DeviceID["ALARME_ACTIVE"], 60, "", {{"VirtualDevice", DeviceID["SONOS_PARENTS"], 9}})
     GEA.add (DeviceID["ALARME_ACTIVE"], 3*60, "", {{"VirtualDevice", DeviceID["SONOS_CUISINE"], 9}})
  -- présence simulator ON
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "Alarme activée. (#date# à#time#)", {{"VirtualDevice", DeviceID["PRESENCE_SIMULATOR"], 2}, {"Email", UserID["Vincent"], "INFO - Alarme"}})
  -- auth_LumInterieur = Non
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "", {{"VirtualDevice", DeviceID["VAR_AUTH_LUMINTERIEUR"], 4}})
  -- réactivation tâche fermeture auto porte garage Annabelle
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "", {{"RestartTask", auto_GA_Close}})
  -- réactivation tâche fermeture auto porte garage Vincent
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "", {{"RestartTask", auto_GV_Close}})

-- Désactivation alarme
  -- présence simulator OFF
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "Alarme déactivée. (#date# à#time#)", {{"Inverse"}, {"VirtualDevice", DeviceID["PRESENCE_SIMULATOR"], 3}, {"Email", UserID["Vincent"], "INFO - Alarme"}})
  -- auth_LumInterieur = Oui
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "", {{"Inverse"}, {"VirtualDevice", DeviceID["VAR_AUTH_LUMINTERIEUR"], 3}})
  -- arrêt tâche fermeture auto porte garage Annabelle
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "", {{"Inverse"}, {"StopTask", auto_GA_Close}})
  -- arrêt tâche fermeture auto porte garage Vincent
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "", {{"Inverse"}, {"StopTask", auto_GV_Close}})
  -- remettre caméra living sur salle àmanger
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "", {{"Inverse"}, {"VirtualDevice", DeviceID["IPCAM_LIVING"], 6}})

-- Intrusion
  -- notification
     GEA.add (DeviceID["ALARME_INTRUSION"], -1, "ALERTE - Intrusion. (#date# à#time#)", {{"Email", UserID["Vincent"], "ALARME - Alarme intrusion"}})
  -- message sonos immédiat
     GEA.add (DeviceID["ALARME_INTRUSION"], -1, "", {{"VirtualDevice", DeviceID["SONOS_MP3"], 1}})
  -- message sonos toutes les 30s
     GEA.add (DeviceID["ALARME_INTRUSION"], 30, "", {{"VirtualDevice", DeviceID["SONOS_MP3"], 1}, {"Repeat"}})
  -- le clignottement des lampes intérieures et extérieures est géré par une scène indépendante
  -- Envoi photos
     GEA.add (DeviceID["ALARME_INTRUSION"], -1, "Photos de toutes les caméras (car intrusion). (#date# à#time#)", {{"picture", DeviceID["IPCAM_AVANT"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_JARDIN"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_LIVING"], UserID["Vincent"]}})
     GEA.add (DeviceID["ALARME_INTRUSION"], 30, "Photos de toutes les caméras (car intrusion). (#date# à#time#)", {{"picture", DeviceID["IPCAM_AVANT"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_JARDIN"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_LIVING"], UserID["Vincent"]}, {"Repeat"}})

-------------------
  -- Incendie
-------------------
  -- test si aucun détecteur incendie activé
     GEA.add (true, 1, "", {{"Function", function() IncendieTmp = "Non" end}, {"Repeat"}})
     for _,v in ipairs(groupeIncendie) do
       GEA.add (v, 1, "", {{"Function", function() IncendieTmp = "Oui" end}, {"Repeat"}})
     end 
     GEA.add ({"Function", function() if IncendieTmp == "Non" then return true end end}, 1, "", {{"Global", "Incendie", "0"}})
     GEA.add (pasIncendie, 1, "", {{"VirtualDevice", DeviceID["VAR_INCENDIE"], 4}})
     GEA.add ({"Global!", "Incendie", "0"}, -1, "", {{"VirtualDevice", DeviceID["VAR_INCENDIE"], 3}})
  -- envoi alarme incendie
     GEA.add (DeviceID["FUME_BIBLIOTHEQUE"], -1, "Incendie [FUME_BIBLIOTHEQUE]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_BUREAU"], -1, "Incendie [FUME_BUREAU]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_MAXIMILIEN"], -1, "Incendie [FUME_MAXIMILIEN]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_PAULINE"], -1, "Incendie [FUME_PAULINE]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_HALLNUIT_SDB"], -1, "Incendie [FUME_HALLNUIT_SDB]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_HALLNUIT_SDJ"], -1, "Incendie [FUME_HALLNUIT_SDJ]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_SDJ"], -1, "Incendie [FUME_SDJ]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_SDBETAGE"], -1, "Incendie [FUME_SDBETAGE]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_GARAGE"], -1, "Incendie [FUME_GARAGE]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_HALLENTRE_C"], -1, "Incendie [FUME_HALLENTRE_C]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
     GEA.add (DeviceID["FUME_HALLENTRE_S"], -1, "Incendie [FUME_HALLENTRE_S]. (#date# à#time#)", {{"Global", "Incendie", "inc%"}, {"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
  -- envoi alarme nombre de détecteurs activés
     GEA.add ({"Global+", "Incendie", 0}, -1, "Incendie #value# détecteurs. (#date# à#time#)", {{"Portable", MobileID["V_Nexus5"]}, {"Email", UserID["Vincent"], "ALARME - Alarme Incendie"}})
  -- on allume toutes les lumières si incendie
     for _,v in ipairs(groupeLampesInt) do
       GEA.add ({"Global+", "Incendie", 0}, -1, "On allume toutes les lampes intérieures. (#date# à#time#)", {{"turnOn", v}})
     end
     for _,v in ipairs(groupeLampesExt) do
       GEA.add ({"Global+", "Incendie", 0}, -1, "On allume toutes les lampes extérieures. (#date# à#time#)", {{"turnOn", v}})
     end
  -- ouverture portail
     -- GEA.add ({{"Global+", "Incendie", 0}, {"Value", DeviceID["BARRIERE_CLOSED"], 0}}, -1, "On ouvre le portail s'il est fermé. (#date# à#time#)", {{"turnOn", DeviceID["BOUTON_BARRIERE"]}})
  -- envoi photos de toutes les caméras
     GEA.add ({"Global+", "Incendie", 0}, -1, "Photos de toutes les caméras (car incendie). (#date# à#time#)", {{"picture", DeviceID["IPCAM_AVANT"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_JARDIN"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_LIVING"], UserID["Vincent"]}})
     GEA.add ({"Global+", "Incendie", 0}, 30, "Photos de toutes les caméras (car incendie). (#date# à#time#)", {{"picture", DeviceID["IPCAM_AVANT"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_JARDIN"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_LIVING"], UserID["Vincent"]}, {"Repeat"}})


-------------------
  -- Cameras
-------------------
  -- Activation au passage àla nuit (les caméras sont toujours activées, mais on ne sait jamais)
     GEA.add (estNuit, 1, "Activation de toutes les caméras (car estNuit). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_ALL"], 3}})
  -- Activation lors de activation de l'alarme (les caméras sont toujours activées, mais on ne sait jamais)
     GEA.add (DeviceID["ALARME_ACTIVE"], -1, "Activation de toutes les caméras (car activation alarme). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_ALL"], 3}})
  -- Enregistrement si intrusion
     GEA.add (DeviceID["ALARME_INTRUSION"], -1, "Enregistrement de toutes les caméras (car intrusion). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_ALL"], 1}, {"Email", UserID["Vincent"], "INFO - Cameras"}})
  -- Enregistrement si mvt extérieur et alarme activée
     GEA.add ({DeviceID["MVT_EST_AVANT"], {"Global!", "SurvStation_Avant_Status", "Recording"}, DeviceID["ALARME_ACTIVE"]}, -1, "Enregistrement de caméra avant (car MVT_EST_AVANT). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_AVANT"], 1}})
     GEA.add ({DeviceID["MVT_OUEST_AVANT"], {"Global!", "SurvStation_Avant_Status", "Recording"}, DeviceID["ALARME_ACTIVE"]}, -1, "Enregistrement de caméra avant (car MVT_OUEST_AVANT). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_AVANT"], 1}})
     GEA.add ({DeviceID["MVT_EST_JARDIN"], {"Global!", "SurvStation_Jardin_Status", "Recording"}, DeviceID["ALARME_ACTIVE"]}, -1, "Enregistrement de caméra jardin (car MVT_EST_JARDIN). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_JARDIN"], 1}})
     GEA.add ({DeviceID["MVT_OUEST_JARDIN"], {"Global!", "SurvStation_Jardin_Status", "Recording"}, DeviceID["ALARME_ACTIVE"]}, -1, "Enregistrement de caméra jardin (car MVT_OUEST_JARDIN). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_JARDIN"], 1}})
  -- Enregistrement si mvt extérieur et alarme de nuit
     GEA.add ({DeviceID["MVT_EST_AVANT"], {"Global!", "SurvStation_Avant_Status", "Recording"}, {"Function", function() if AlarmeNuit == "Oui" then return true end end}}, -1, "Enregistrement de caméra avant (car MVT_EST_AVANT). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_AVANT"], 1}})
     GEA.add ({DeviceID["MVT_OUEST_AVANT"], {"Global!", "SurvStation_Avant_Status", "Recording"}, {"Function", function() if AlarmeNuit == "Oui" then return true end end}}, -1, "Enregistrement de caméra avant (car MVT_OUEST_AVANT). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_AVANT"], 1}})
     GEA.add ({DeviceID["MVT_EST_JARDIN"], {"Global!", "SurvStation_Jardin_Status", "Recording"}, {"Function", function() if AlarmeNuit == "Oui" then return true end end}}, -1, "Enregistrement de caméra jardin (car MVT_EST_JARDIN). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_JARDIN"], 1}})
     GEA.add ({DeviceID["MVT_OUEST_JARDIN"], {"Global!", "SurvStation_Jardin_Status", "Recording"}, {"Function", function() if AlarmeNuit == "Oui" then return true end end}}, -1, "Enregistrement de caméra jardin (car MVT_OUEST_JARDIN). (#date# à#time#)", {{"VirtualDevice", DeviceID["SURVSTATION_JARDIN"], 1}})
  -- Arrêt enregistrement après intrusion / mouvement extérieur
     GEA.add ({DeviceID["ALARME_INTRUSION"], {"Value", DeviceID["MVT_EST_AVANT"], 0}, {"Value", DeviceID["MVT_OUEST_AVANT"], 0}, {"Global", "SurvStation_Avant_Status", "Recording"}}, 31, "Arrêt enregistrement de caméra avant. (#date# à#time#)", {{"Inverse"}, {"VirtualDevice", DeviceID["SURVSTATION_AVANT"], 2}})
     GEA.add ({DeviceID["ALARME_INTRUSION"], {"Value", DeviceID["MVT_EST_JARDIN"], 0}, {"Value", DeviceID["MVT_OUEST_JARDIN"], 0}, {"Global", "SurvStation_Jardin_Status", "Recording"}}, 31, "Arrêt enregistrement de caméra jardin. (#date# à#time#)", {{"Inverse"}, {"VirtualDevice", DeviceID["SURVSTATION_JARDIN"], 2}})
     GEA.add ({DeviceID["ALARME_INTRUSION"], {"Value", DeviceID["MVT_EST_AVANT"], 0}, {"Value", DeviceID["MVT_OUEST_AVANT"], 0}, {"Value", DeviceID["MVT_EST_JARDIN"], 0}, {"Value", DeviceID["MVT_OUEST_JARDIN"], 0}, {"Global", "SurvStation_Salon_Status", "Recording"}}, 31, "Arrêt enregistrement de toutes les caméras. (#date# à#time#)", {{"Inverse"}, {"VirtualDevice", DeviceID["SURVSTATION_ALL"], 2}})
  -- envoi photos de toutes les caméras durant les vacances
     GEA.add (estVacances, 24*60*60, "Photos de toutes les caméras (car vacances). (#date# à#time#)", {{"Time", "10:00", "10:30"}, {"picture", DeviceID["IPCAM_AVANT"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_JARDIN"], UserID["Vincent"]}, {"picture", DeviceID["IPCAM_LIVING"], UserID["Vincent"]}, {"Repeat"}})
  -- Détecteurs extérieurs
     -- GEA.add (DeviceID["MVT_EST_AVANT"], -1, "Détection mouvement (MVT_EST_AVANT). (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Détecteurs [MVT_EST_AVANT]"}})
     -- GEA.add (DeviceID["MVT_OUEST_AVANT"], -1, "Détection mouvement (MVT_OUEST_AVANT). (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Détecteurs [MVT_OUEST_AVANT]"}})
     -- GEA.add (DeviceID["MVT_EST_JARDIN"], -1, "Détection mouvement (MVT_EST_JARDIN). (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Détecteurs [MVT_EST_JARDIN]"}})
     -- GEA.add (DeviceID["MVT_OUEST_JARDIN"], -1, "Détection mouvement (MVT_OUEST_JARDIN). (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - Détecteurs [MVT_OUEST_JARDIN]"}})


-------------------
  -- Divers
-------------------
-- Techniques
  -- Redémarrage HC2 ou Save GEA
     GEA.add({"Function", function() return restart(100) end}, 1, "Restart de la HC2 depuis #value# sec. (#date# à#time#)", {{"Email", UserID["Vincent"], "INFO - HC2"}})
     GEA.add({"Function", function() return restart(100) end}, 1, "Save GEA. (#date# à#time#)", {{"Inverse"}, {"Email", UserID["Vincent"], "INFO - HC2"}})
  -- DayPart
     GEA.add (true, 1, "DayPart = Jour. (#date# à#time#)", {{"Time", "Sunrise", "Sunrise + 200"}, {"VirtualDevice", DeviceID["VAR_DAYPART"], 3}})
     GEA.add (true, 1, "DayPart = Nuit. (#date# à#time#)", {{"Time", "Sunset", "Sunset + 300"}, {"VirtualDevice", DeviceID["VAR_DAYPART"], 4}})
  -- Batteries
     GEA.add ({"Batteries", 20}, 1, "", {{"Time", "18:00", "18:30"}, {"Email", UserID["Vincent"], "ALERTE - Batteries faibles : A commander"}})
     GEA.add ({"Batteries", 20}, 24*60*60, "", {{"Time", "18:00", "18:30"}, {"Email", UserID["Vincent"], "ALERTE - Batteries faibles : A commander"}, {"Repeat"}})
     GEA.add ({"Batteries", 5}, 1, "", {{"Time", "18:00", "18:30"}, {"Email", UserID["Vincent"], "ALERTE - Batteries faibles : A remplacer"}})
     GEA.add ({"Batteries", 5}, 24*60*60, "", {{"Time", "18:00", "18:30"}, {"Email", UserID["Vincent"], "ALERTE - Batteries faibles : A remplacer"}, {"Repeat"}})
  -- Température extérieure
     GEA.add (true, 10*60, "Mise àjour de la température extérieure moyenne. (#date# à#time#)", {{"VirtualDevice", DeviceID["TECHNICAL"], 11}, {"Repeat"}})

-- éclairage Noël
  -- Salon
     GEA.add (estNoel, 1, "Sapin ON", {{"Time", "06:00", "06:00"}, {"turnOn", DeviceID["PRISE_PETITSALON"]}, {"Email", UserID["Vincent"], "INFO - Eclairage Noël"}})
     GEA.add (estNoel, 1, "Sapin OFF", {{"Time", "Sunrise", "Sunrise"}, {"turnOff", DeviceID["PRISE_PETITSALON"]}, {"Email", UserID["Vincent"], "INFO - Eclairage Noël"}})
     GEA.add (estNoel, 1, "Sapin ON", {{"Time", "Sunset", "Sunset"}, {"turnOn", DeviceID["PRISE_PETITSALON"]}, {"Email", UserID["Vincent"], "INFO - Eclairage Noël"}})
     GEA.add ({estNoel, {"Global", "Alarme_Nuit", "Oui"}}, 15*60, "Sapin OFF", {{"turnOff", DeviceID["PRISE_PETITSALON"]}, {"Email", UserID["Vincent"], "INFO - Eclairage Noël"}})
  -- Extérieur
     GEA.add (estNoel, 1, "", {{"Time", "06:00", "06:00"}, {"turnOn", DeviceID["PRISE_AVANT"]}})
     GEA.add (estNoel, 1, "", {{"Time", "Sunrise", "Sunrise"}, {"turnOff", DeviceID["PRISE_AVANT"]}})
     GEA.add (estNoel, 1, "", {{"Time", "Sunset", "Sunset"}, {"turnOn", DeviceID["PRISE_AVANT"]}})
     GEA.add (estNoel, 1, "", {{"Time", "01:00", "01:00"}, {"turnOff", DeviceID["PRISE_AVANT"]}})

-- Surveillance de la RAM
     GEA.add({"Global-", "RamFree", 35}, 1, "RAM inférieure à35% (#value#%) - Reboot prévu cette nuit à2h00. (#date# à#time#)", {{"Time", "18:00", "18:01"}, {"Email", UserID["Vincent"], "ALERTE - RAM"}})
     GEA.add({"Global-", "RamFree", 35}, 1, "Reboot HC2 car RAM inférieure à35% (#value#%). (#date# à#time#)", {{"Time", "02:00", "02:01"}, {"Email", UserID["Vincent"], "ALERTE - RAM"}, {"Function", function() fibaro:sleep(1000) end}, {"VirtualDevice", DeviceID["HC2_DIAGNOSTICS"], 15}, {"Function", function() fibaro:sleep(1000) end}, {"VirtualDevice", DeviceID["HC2_DIAGNOSTICS"], 16}})
     GEA.add({"Global-", "RamFree", 10}, 1, "Reboot immédiat de la HC2 car RAM inférieure à10% (#value#%). (#date# à#time#)", {{"Email", UserID["Vincent"], "ALERTE - RAM"}, {"Function", function() fibaro:sleep(1000) end}, {"VirtualDevice", DeviceID["HC2_DIAGNOSTICS"], 15}, {"Function", function() fibaro:sleep(1000) end}, {"VirtualDevice", DeviceID["HC2_DIAGNOSTICS"], 16}})

-- Télécommande rose - Cuisine
     -- click simple sur O plein -> lampe jardin
     GEA.add ({{"SceneActivation", DeviceID["TELEC_CUISINE"], 10}, {"Value", DeviceID["LUM_JARDIN"], 0}}, -1, "", {{"turnOn", DeviceID["LUM_JARDIN"]}})
     GEA.add ({{"SceneActivation", DeviceID["TELEC_CUISINE"], 10}, DeviceID["LUM_JARDIN"]}, -1, "", {{"turnOff", DeviceID["LUM_JARDIN"]}})
     -- double click sur O plein -> lampe terrasse sud
     GEA.add ({{"SceneActivation", DeviceID["TELEC_CUISINE"], 13}, {"Value", DeviceID["LUM_TERRSUD"], 0}}, -1, "", {{"turnOn", DeviceID["LUM_TERRSUD"]}})
     GEA.add ({{"SceneActivation", DeviceID["TELEC_CUISINE"], 13}, DeviceID["LUM_TERRSUD"]}, -1, "", {{"turnOff", DeviceID["LUM_TERRSUD"]}})
     -- click long sur O plein -> lampes extérieures jardin
     GEA.add ({{"SceneActivation", DeviceID["TELEC_CUISINE"], 12}, {"Value", DeviceID["LUM_TERROUEST"], 0}}, -1, "", {{"turnOn", DeviceID["LUM_JARDIN"]}, {"turnOn", DeviceID["LUM_TERREST"]}, {"turnOn", DeviceID["LUM_TERRPAR"]}, {"turnOn", DeviceID["LUM_TERRSUD"]}, {"turnOn", DeviceID["LUM_TERROUEST"]}})
     GEA.add ({{"SceneActivation", DeviceID["TELEC_CUISINE"], 12}, DeviceID["LUM_TERROUEST"]}, -1, "", {{"turnOff", DeviceID["LUM_JARDIN"]}, {"turnOff", DeviceID["LUM_TERREST"]}, {"turnOff", DeviceID["LUM_TERRPAR"]}, {"turnOff", DeviceID["LUM_TERRSUD"]}, {"turnOff", DeviceID["LUM_TERROUEST"]}})
    -- click simple sur O vide -> annonce température piscine
     GEA.add ({"SceneActivation", DeviceID["TELEC_CUISINE"], 30}, -1, "", {{"VirtualDevice", DeviceID["SONOS_MP3"], 7}})
 
-- Télécommande beue - ChParents
     -- click simple sur O plein -> lampes extérieures
     for _,v in ipairs(groupeLampesExt) do
       GEA.add ({{"SceneActivation", DeviceID["TELEC_CHPARENTS"], 10}, {"Value", v, 0}}, -1, "", {{"turnOn", v}})
     end
     for _,v in ipairs(groupeLampesExt) do
       GEA.add ({{"SceneActivation", DeviceID["TELEC_CHPARENTS"], 10}, v}, -1, "", {{"turnOff", v}})
     end
     -- double click sur O plein -> lampes intérieures
     for _,v in ipairs(groupeLampesInt) do
       GEA.add ({{"SceneActivation", DeviceID["TELEC_CHPARENTS"], 13}, {"Value", v, 0}}, -1, "", {{"turnOn", v}})
     end
     for _,v in ipairs(groupeLampesInt) do
       GEA.add ({{"SceneActivation", DeviceID["TELEC_CHPARENTS"], 13}, v}, -1, "", {{"turnOff", v}})
     end

Partager ce message


Lien à poster
Partager sur d’autres sites

je vous laisse créer les 18 posts suivant (pour le mettre en premier post de la page 4)  AVANT de re-proposer du code

Partager ce message


Lien à poster
Partager sur d’autres sites

trop fort jojo !

trop fort jojo !

Partager ce message


Lien à poster
Partager sur d’autres sites

trop fort jojo !

trop fort jojo !

trop fort jojo !

 

Plus qu'a analyser tout ça.

Je t'aurais bien donné un coup de main mais je matais 2 fin de saison 6 de GOT et je n'ai pas vu les alertes  :rolleyes:

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est vrai qu'il est gros ...

Vu toutes les interdépendances, vous comprenez pourquoi tout se trouve dans une instance.

 

Ce qui est réellement énorme, c'est @Steven qui a "inventé" ce language

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×