-
Compteur de contenus
4 189 -
Inscription
-
Dernière visite
-
Jours gagnés
85
Tout ce qui a été posté par sebcbien
-
pour faire un ou, il suffit de faire deux lignes gea avec des conditions différentes mais des actions identiques
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
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 !!!!!!!!!! -------------
-
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"}}) -----------------------------------------------
-
Hé les gars... Ho... Dites... Franchement... La dernière contribution au showroom GEA date du ... 18 octobre 2015 à‡a m'étonnerais que personne ici n'aie de trucs intéressants à poster... Allez, hop on contribue SVP, ça fait avancer le schmilblick Si vous n'avez rien à partager, m'ferez 20 pompes !
- 12 330 réponses
-
- 2
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
PHP fait le pont entre la hc2 et les serveurs netatmo pour rapatrier les données... Maintenant ce vd avait été écrit du temps où il n'y avait pas de plugin Netatmo officiel fibaro... Il y a peut-être moyen de récupérer les infos de ces modules et les afficher et les pousser sur emoncms. Il y aura probablement moins de données récupérables par rapport àce script ci qui peut tout récupérer. Sent from my Note4
-
Tu ne te trompe pas. Sent from my Note4
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Heuuu... Tout est écrit dans les premiers posts... Sans le PHP, ce module ne fonctionne pas... Comme je l'ai déjàdit, il faut un certain niveau de compétences en scripting car il faut modifier les scripts en fonction de ton installation netatmo. Je pense que énormément d'infos sont déjàdisponibles sur ce fil et tu devrais pouvoir t'en sortir. Si tu as un problème précis, un bug, n'hésite pas àle poster. Sent from my Note4
-
t'a gagné ton j'aime ;-)
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
tu as vérifié si tes id d'entêtes sont toutes bonnes ? je parie 1 j'aime que c ça A mon avis si tu prends ton ancienne en^te et que tu la met dans ton nouveau code, ça fonctionnera plus
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@flesh ... ça fait deux jours que l'on te dit de vérifier les id et les espaces...
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Merci pour ton retour ! :-) Que veux tu dire par plusieurs scan en parallèle ? Sent from my Note4
-
@Nico c'est un gars sérieux ... http://www.domotique-fibaro.fr/index.php/topic/2613-detection-de-pr%C3%A9sence/page-13#entry121599
-
perso ma hc2 est branchée sur un netgear GS110TP (switch manageable) qui est branché au cul de mon modem/routeur (BBox3 de Belgacom). Sur ce switch GS110TP, j'ai un hub 16 ports et sur ce hub 16 ports j'ai mes ap wifi... Bah malgré ces couche, je n'ai pas de déconnexion, même avec les ap wifi qui sont le 3e device derrière le routeur principal, (4e depuis la HC2).. Ca semble fonctionner pas mal les réplications arp entre les appareils réseau.
-
Il me semble que j'avais déjàvu des solutions similaires, mais tout le monde n'a pas une freebox, surtout en Belgique ;-)Sent from my Note4
-
Le code de la première page est basé sur le ping, ça n'a rien àvoir...Sent from my Note4
-
Pour ceux qui ont des problèmes avec les iDevices, @gomba777 suggère d'activer le push mail, ça aide àgarder l'iPhone connecté en permanence... Sent from my Note4
-
Tu peux simplement copy paste le code du main loop. Je l'ai publié quelques pages avant. Attention àl'ordre, s tu as ajouté un label ou un autre bouton avant ça n'ira plus Sent from my Note4
-
regarde si les id dans l'entète sont toutes bonnes...
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Tu veux dire v 2.1 ? Le bouton est cliqué par le mainloop àintervalles régulières normalement...
-
"LE" problème de -1 c'est pour la 4.081 si je ne me trompe... Sent from my Note4
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
- 12 330 réponses
-
- 5
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Lol, on dirait que ça te rends triste
-
il y a une autre méthode pour toi, la méthode raspberry avec fing... ceci dit, je me demande comment fing fait si l'iPhone n'est pas connu sur le réseau...
-
à‡a quand on utilise du matos bon marché ... Sent from my Note4
-
1) ce qu'il faut c'est que la mac soit dans la table arp de l'HC2... 2) tu veux dire 2m43 pour détecter que l'iphone EST sur le réseau je suppose ? chez moi ça prends 5 secondes...