ma gestion de porte de garage mise à  jour :-) ça marche au quart de mililipoil de Cxx   info: id2["MODE_GARAGE"] est un simple switch qui me permet de passer le mode de fermeture de la porte de garage de automatique à  manuel ... et vice-versa oui, je n'aime pas sortir mon téléphone de ma poche pour changer de mode  local estAt_Home = {"Global", "PresentState", "At_Home"} local estAway = {"Global", "PresentState", "Away"} local estNotAway = {"Global!", "PresentState", "Away"} local estNight_All_Off = {"Global", "PresentState", "Night_All_Off"} local estNotNight_All_Off = {"Global!", "PresentState", "Night_All_Off"} local estAwayOrNigh_All_Off = {"Global", "PresentState", "Night_All_Off|Away"} local estNotAwayOrNigh_All_Off = {"Global!", "PresentState", "Night_All_Off|Away"} local estKids_Sleeping = {"Global", "PresentState", "Kids_Sleeping"} local est_House_Sleeping = {"Global", "PresentState", "Kids_Sleeping|Night_All_Off"} local est_AtHome_Or_Kids_Sleeping = {"Global", "PresentState", "Kids_Sleeping|At_Home"} local estNotKids_Sleeping = {"Global!", "PresentState", "Kids_Sleeping"} local estHouse_Manuel = {"Global", "House_Mode", "Manual"} local estNotHouse_Manuel = {"Global", "House_Mode", "Auto|Scheduler"} local cond_pres_GG_Alarme_off = {"Global", "PresentState", "Away"},{"Global", "Lock_Away", "Unlocked"},{"Global", "Phone_GG_Present", "1"} local cond_pres_Seb_Alarme_off = {"Global", "PresentState", "Away"},{"Global", "Lock_Away", "Unlocked"}, {"Global", "Phone_Seb_Present", "1"} -- Périodes local estWinter = {"Global", "Season", "Winter"} local estSummer = {"Global", "Season", "Summer"} local PeriodeSunSetSAM = {"Time", "Sunset-45", "21:30"} local PeriodeSunRiseSAM = {"Time", "06:00", "Sunrise+45"} -- Garage local Porte_Gar_En_Attente = {"Global", "Porte_Gar_Action", "En_Attente"} local Porte_Gar_Demande_Ouverture = {"Global", "Porte_Gar_Action", "Demande_Ouverture"} local Porte_Gar_Demande_Fermeture = {"Global", "Porte_Gar_Action", "Demande_Fermeture"} local Porte_Gar_Demande_Actionner = {"Global", "Porte_Gar_Action", "Actionner"} local estClosed = {"Global", "Porte_Garage", "^Closed$"} local estOpen = {"Global", "Porte_Garage", "^Open$"} local estNot_Closed = {"Global", "Porte_Garage", "Not_Closed"} local estClosed_Or_Not_Closed = {"Global", "Porte_Garage", "^Closed$|Not_Closed"} local estOpen_Or_Not_Closed = {"Global", "Porte_Garage", "Open|Not_Closed"} local estNotOpen_Or_Not_Closed = {"Global!", "Porte_Garage", "Open|Not_Closed"} local SetClosed = {"Global", "Porte_Garage", "Closed"} local SetOpen = {"Global", "Porte_Garage", "Open"} local SetNot_Closed = {"Global", "Porte_Garage", "Not_Closed"} --------------------KEYFOB--------------------- -- maison est pas away et demande ouverture porte garage via keyfob - demander ouverture GEA.add({{"Value", id2["KEY_DISARM_OPEN"],1}, estNotAwayOrNigh_All_Off}, -1, "Demande KEY_DISARM_OPEN -> Actionner Porte Gar. à  #time# le #date#", {Porte_Gar_Demande_Actionner} ) --{Porte_Gar_Demande_Ouverture,Porte_Gar_En_Attente} ou {Porte_Gar_Demande_Actionner} -- maison est away et demande ouverture porte garage via keyfob - mettre est at home, demander ouverture PG et armer Part Tag Keypad (for outside notification) GEA.add({{"Value", id2["KEY_DISARM_OPEN"],1}, estAwayOrNigh_All_Off}, -1, "Demande KEY_DISARM_OPEN -> Set At_Home & Open à  #time# le #date#", {Porte_Gar_Demande_Ouverture, estAt_Home}) ------------------PORTE GARAGE----------------- ---------NOTIFICATION PORTE OUVERTE---------- -- Le scénario enverra un push toutes les 30mn tant que la porte sera ouverte GEA.add(id2["GARAGE_BAS"], 30*60, "La porte du garage est ouverte depuis plus de #duration# à  #time#", {{"Repeat"},{"Global", "Karotz", ". Bonjour, jattire votre attention que la porte du garage est ouverte depuis plus de #duration# minutes"}, {"VirtualDevice", id2["KAROTZ"],"1"}}) -----COMMANDE PORTE VIA S2 LAMPE GARAGE---- GEA.add({{"SceneActivation", id2["GARAGE"], 26}}, -1, "",{Porte_Gar_Demande_Actionner}) -------GESTION AUTO CLOSE PORTE GARAGE----- -- si mode auto et porte ouverte et pas de mouvement pendant 10 minutes, alors push et demande fermeture isLongNoMoveGar = false -- ATTENTION, NE FONCTIONNE PAS EN INSTANTANNE !!! GEA.add({{"Value", id2["GARAGE_MVT"],0},{"Value", id2["MODE_GARAGE"],0},estOpen_Or_Not_Closed}, 10*60, "Mode Porte Garage:AUTO. Porte non fermée et pas de mouvement depuis #duration# #time#",{{"Repeat"},{"function",function() isLongNoMoveGar = true end}}) GEA.add({estOpen_Or_Not_Closed,{"Value", id2["MODE_GARAGE"],0},{"function",function() return isLongNoMoveGar end}}, 31, "Auto close Porte Garage at #time#",{{"function",function() isLongNoMoveGar = false end},Porte_Gar_Demande_Fermeture}) -- notification porte ouverte en mode manuel GEA.add({"Value", id2["MODE_GARAGE"],1}, 2*60*60, "Mode Porte Garage:MANUEL depuis #duration# #time#",{{"Repeat"}}) -------------ECRITURE DES ETATS-------------- -- Msg à  la fermeture du garage GEA.add(id2["GARAGE_BAS"], -1, "Porte du garage Fermée à  #time# le #date#", { SetClosed, {"Inverse"}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 1}, -- Garage set Shots to 1 }) GEA.add({id2["GARAGE_BAS"],Porte_Gar_Demande_Fermeture }, -1, "", {Porte_Gar_En_Attente,{"Inverse"}}) -- Avertissement push si la porte du garage s'ouvre -- Porte du garage en Ouverture à  #time# le #date# GEA.add(id2["GARAGE_BAS"], -1, "", { SetNot_Closed, {"Global", "Karotz", "Bonjour, ouverture de la porte du garage"}, {"VirtualDevice", id2["KAROTZ"],"1"}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 12}, -- Garage set Shots to 12-10=2 }) -- send pic garage après 30 60 et 90secondes après ouverture GEA.add(id2["GARAGE_BAS"], 30, "", { {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 30}, -- Garage set Freq to 30s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 14}, -- Garage set Shots to 14-10=4 }) -- Avertissement push si la porte du garage ouverte GEA.add(id2["GARAGE_HAUT"], -1, "Porte du garage complètement ouverte à  #time# le #date#", {SetOpen}) GEA.add({id2["GARAGE_HAUT"],Porte_Gar_Demande_Ouverture}, -1, "", {Porte_Gar_En_Attente}) -- Avertissement push si la porte du garage plus en position ouverte -- Porte du garage en Fermeture à  #time# le #date# GEA.add(id2["GARAGE_HAUT"], -1, "Porte du garage complètement ouverte à  #time# le #date#", { SetNot_Closed, {"Inverse"}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 1}, -- Garage set Shots to 1 }) -- Si demande Actionner, then push, actionne remote et reset global à  en_attente -- Demande Action Porte Garage à  #time# le #date# GEA.add({Porte_Gar_Demande_Actionner}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]},Porte_Gar_En_Attente}) --------------DEMANDE OUVERTURE-------------- -- Si demande d'ouverture et porte fermée, then push et ouvre porte -- #value# à  #time# le #date# GEA.add({Porte_Gar_Demande_Ouverture, estClosed_Or_Not_Closed}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]}}) -- Si demande d'ouverture et porte Ouverte, then push et reset global à  en_attente -- #value# Inutile à  #time# le #date# GEA.add({Porte_Gar_Demande_Ouverture, estOpen}, -1, "",{Porte_Gar_En_Attente}) -- Si demande d'ouverture et porte Not Closed, then push, actionne porte --GEA.add({{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estNot_Closed}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]}}) -- si se ferme alors que demande ouverture -> on relance GEA.add({id2["GARAGE_BAS"],Porte_Gar_Demande_Ouverture}, -1, "Mauvais sens pour #value#. Ré-essai à  #time# le #date#", {{"Inverse"},{"Function", function() fibaro:sleep(1000) end},{"turnOn",id2["REMOTE_GARAGE"]}}) --------------DEMANDE FERMETURE-------------- -- Si demande de fermeture et porte ouverte, then push et ferme porte -- #value# à  #time# le #date# GEA.add({Porte_Gar_Demande_Fermeture, estOpen_Or_Not_Closed}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]}}) -- Si demande de fermeture et porte Fermée, then push et reset global à  en_attente -- #value# Inutile à  #time# le #date# - ,{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA ALARME ET GARAGE"} GEA.add({Porte_Gar_Demande_Fermeture, estClosed}, -1, "",{Porte_Gar_En_Attente}) -- Si demande de fermeture et porte Not Closed, then push, actionne porte --GEA.add({Porte_Gar_Demande_Fermeture, estNot_Closed}, -1, "", {{"turnOn",id2["REMOTE_GARAGE"]}}) -- si s'ouvre alors que demande fermeture -> on relance GEA.add({id2["GARAGE_HAUT"],Porte_Gar_Demande_Fermeture}, -1, "Mauvais sens pour #value#. Ré-essai à  #time# le #date#", { {"Function", function() fibaro:sleep(1000) end}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 1}, -- Garage set Shots to 1 {"turnOn",id2["REMOTE_GARAGE"]} }) --{"turnOn",id2["REMOTE_GARAGE"]}, --------------GESTION ERREUR----------------- -- si pas fermé après 90 sec, on relance - normalement déjà  pris en charge par les lignes ci=dessus ? (mauvais sens pour...) GEA.add({{"Global", "Porte_Gar_Action", "Demande_Fermeture|Demande_Ouverture"}, estNot_Closed}, 120, "#value# ratée pendant #duration#. Réessai à  #time# le #date#", { {"turnOn",id2["REMOTE_GARAGE"]}, {"Slider", id2["SEND_PHOTO__5_CAM_"], "16", 10}, -- Garage set Freq to 10s {"Slider", id2["SEND_PHOTO__5_CAM_"], "17", 1}, -- Garage set Shots to 1 {"Repeat"} }) c'est tout pour aujourd'hui    A vos copy/paste 
    • Upvote
    1