-
Compteur de contenus
4 189 -
Inscription
-
Dernière visite
-
Jours gagnés
85
Tout ce qui a été posté par sebcbien
-
Le mode pour créer/gérer les scènes, soit en lua soit en mode blocks ;-) Sent From my Vic20
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Un Nouveau Pas Encore Convaincu :)
sebcbien a répondu à un(e) sujet de Vipecs dans Nouveau ? Présentez-vous
Bienvenue ! Sent From my Vic20 -
Interface Fibaro/ Arduino
sebcbien a répondu à un(e) sujet de mhollamby dans Nouveau ? Présentez-vous
Bienvenue ! Moi je trouve l'idée très bonne. Les capteurs pour arduino sont légion et pas chers. Un arduino peut aussi servir de compteur d'impulsions (eau/gaz) de compteur inductif (électricité) etc. Avec un arduino bien place on peut remplacer une dizaine de capteurs zwave pour une fraction du prix. Et je ne parle même pas des actionneurs... Sent From my Vic20 -
Oui c'est la même chose. Les variables prédéfinies, c'est surtout pratique pour le mode blocks, car le dialogue peut afficher un choix. Sent From my Vic20
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
vu leur "maitrise" de la sécurité sous linux rapporté par certains experts... je n'ouvrirais pas un port directement sur la box. Par contre faire un vpn sur son nas et de là"attaquer" la HC2 me semble plus "sécure" enfin ça dépend aussi de ce que vous avez sur la box (caméras, alarme ?)
-
nouvelle version 2.2: ajout de la liste pour mobiles ajout du mode manual_stop --[[ %% autostart %% properties %% globals Simu_presence --]] -------------------------------- -- YAPS Presence Simulator V2.2 -- SebcBien -- Janvier 2015 -------------------------------- -- Added Manual Stop variable -- added list of mobiles if (fibaro:countScenes() > 1) then fibaro:debug("More than one scene active, exiting!"); fibaro:abort(); end --------------------- USER SETTINGS -------------------------------- local id = { LAMPE_SDB = 16, LAMPE_CH_AMIS = 24, LAMPE_SALON = 45, LAMPE_BUREAU = 49, LAMPE_HALL = 52, LAMPE_CELLIER = 56, LAMPE_CH_EMILIEN = 58, PHONE_NEXUS_5 = 53, PHONE_NEXUS_4 = 104 } local stop_hour = "01"; -- Hour when you want simulation to stop local stop_minute = "10"; -- Minute of the hour you want simulation to stop -- note 1: the script will not exit while waiting the random time of the last light turned on. So end time can be longer than specified end time -- note 2: if the global variable changes during the same wait time as above, it will exit immediately (when back home while simulation runs) local rndmaxtime = 15 -- random time of light change in minutes --> here each device is on maximum 30min local ID_devices_lights = {id["LAMPE_SDB"],id["LAMPE_BUREAU"],id["LAMPE_HALL"],id["LAMPE_CELLIER"],id["LAMPE_CH_AMIS"]} -- IDs of lights to use in simulation --local ID_devices_lights = {id["LAMPE_HALL"],id["LAMPE_BUREAU"],id["LAMPE_CELLIER"]} -- IDs of lights to use in simulation local activatePush = true; -- activate push when simulation starts and stops local ID_Smartphone = 53; -- ID of your smartphone local ID_Smartphones = {id["PHONE_NEXUS_5"],id["PHONE_NEXUS_4"]}; local ID_On_After_Simu = id["LAMPE_HALL"] -- Only One ID of a lamp to turn on after simulation ends (set 0 to disable) local Manual_Stop = 1 -- 0 will not turn on the lamp "ID_On_After_Simu" at the end of the script. Replace this variable by a global value if you want to automate --------------------- USER SETTINGS END ---------------------------- ----------------------ADVANCED SETTINGS----------------------------- local showStandardDebugInfo = true; -- Debug shown in white local showExtraDebugInfo = true; -- Debug shown in orange local numbers_lights = #ID_devices_lights -- numbers of light devices listed above local manualOveride = fibaro:getGlobal("overideSimuSunset"); -- if = 1 then the simulation is forced -------------------------------------------------------------------- ----------------------------------- ----- Do not change code below ---- ----------------------------------- local simu = fibaro:getGlobal("Simu_presence"); --value of the global value: simulation is on or off local start_simu = fibaro:getValue(1, "sunsetHour"); --Start simulation when sunset --local start_simu = "22:28" -- uncomment this line when testing to force a start hour 1 min after saving the scene. local endtime version = "2.2" SimulatorPresenceEngine = {}; -- debug function Debug = function ( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); end ExtraDebug = function (debugMessage) if ( showExtraDebugInfo ) then Debug( "orange", debugMessage); end end StandardDebug = function (debugMessage) if ( showStandardDebugInfo ) then Debug( "white", debugMessage); end end -- function push message to mobile pushMessage = function (sendPush) if (activatePush) then for i=1, #ID_Smartphones do fibaro:call(tonumber(ID_Smartphones[i]), 'sendPush', sendPush); ExtraDebug("Push message ("..sendPush..") sent to mobile: "..tonumber(ID_Smartphones[i])); end end end -- function to switch off devices in the list function SimulatorPresenceEngine:TurnOff(group) Debug("red","TurnOff All lights!") local name, id2; local ID_devices_group = group; for i=1, #ID_devices_group do id2 = tonumber(ID_devices_group[i]); fibaro:call(id2, "turnOff"); name = fibaro:getName(id2); if (name == nil or name == string.char(0)) then name = "Unknown" end StandardDebug("Device:" .. name .. " Off "); end if (ID_On_After_Simu ~= 0 and Manual_Stop == 1) then fibaro:call(ID_On_After_Simu, "turnOn"); end end -- function to calculate endtime function SimulatorPresenceEngine:EndTimeCalc() local start = os.date("%H:%M") local time = os.time() local date = os.date("*t", time) local year = date.year local month = date.month local day = date.day endtime = os.time{year=year, month=month, day=day, hour=stop_hour, min=stop_minute, sec=sec} --ExtraDebug ("CurrentTime" ..os.time()) --ExtraDebug ("Original EndTime " ..endtime) if endtime < os.time() then endtime = endtime + 24*60*60 -- ExtraDebug ("Modified Endtime " ..endtime) end end -- function to simulate a presence function SimulatorPresenceEngine:Launch() ExtraDebug( "Simulation will stop: "..stop_hour..":"..stop_minute ); if (os.time() >= endtime) or (simu == "0") or (manualOveride == "0") then ExtraDebug("Simulation stopped") SimulatorPresenceEngine:TurnOff(ID_devices_lights) end pushMessage("Lights simulation started") while ((os.time() <= endtime) and (simu == "1")) or ((manualOveride == "1")) do -- original code: while ((os.time() <= endtime) and (simu == "1")) or ((os.time() <= endtime) and (simu == "1") and (manualOveride == "1")) do if time == endtime then StandardDebug("time and endtime same value -> end") end local random_light = tonumber(ID_devices_lights[math.random(numbers_lights)]) --choose a random light in the list local lightstatus = fibaro:getValue(random_light, 'value') --get the value of the random light in the list -- turn on the light if off or turn off if on if tonumber(lightstatus) == 0 then fibaro:call(random_light, 'turnOn') else fibaro:call(random_light, 'turnOff') end fibaro:sleep(1000) ; --necessary to get back the new status, because HC2 is too fast :-) lightstatus = fibaro:getValue(random_light, 'value') --get the value of the random light after his update StandardDebug('light ID:'..random_light..' status:'..lightstatus) local sleeptime = math.random(rndmaxtime*60000) --random sleep fibaro:debug("entering loop of " .. sleeptime/60000 .. "minutes") -- This modification allows to exit the scene if the Simu_presence global var changes to 0 during the random sleep local counterexitsimu = 200 while (counterexitsimu > 0) do counterexitsimu = counterexitsimu - 1; test_presence_state = fibaro:getGlobal("Simu_presence") simu = tonumber(test_presence_state); --verify the global value, if the virtual device is deactivated, the scene stops. --fibaro:debug("simu var state : " .. simu) if simu == 0 then counterexitsimu = 0 end fibaro:sleep(sleeptime/200) end fibaro:debug("exiting loop of " .. sleeptime/60000 .. "minutes") local sleeptimemin = math.abs(sleeptime/60000) StandardDebug('sleeptime:'..sleeptimemin) simu = fibaro:getGlobal("Simu_presence"); --verify the global value, if the virtual device is deactivated, the scene stops. manualOveride = fibaro:getGlobalValue("overideSimuSunset") end end -- Main Script beginning SimulatorPresenceEngine:EndTimeCalc(); if (simu == "1") then Debug("green", "Simulate Presence at Home | v" .. version ); Debug( "green", "--------------------------------------------------"); ExtraDebug("Today's sunset: "..fibaro:getValue(1, "sunsetHour")) end if (simu == "1") then Debug("grey", "Simulate Presence will start at "..start_simu) pushMessage("Simulate Presence will start at "..start_simu) end -- Main Loop while (simu=="1") do -- Condition to start simulation simu = fibaro:getGlobal("Simu_presence"); manualOveride = fibaro:getGlobal("overideSimuSunset"); if (os.date("%H:%M") >= start_simu) then sunset = 1 else sunset = 0 end if ((simu == "1") and os.time() <= endtime and sunset == 1 ) or ((simu == "1") and manualOveride == "1" ) then SimulatorPresenceEngine:Launch(); --launch the simulation. if manualOveride == "1" and sunset == 0 then Debug("grey", "Manual override activated") elseif sunset == 1 then Debug("grey", "It's sunset time, starting simulation") end if sunset == 0 and manualOveride == "0" then Debug("grey", "Not manual override so Presence Simulation will not be activated"); elseif os.time() >= endtime then Debug("grey", "Time is now after:"..stop_hour..":"..stop_minute.."deactivating"); SimulatorPresenceEngine:TurnOff(ID_devices_lights); Debug("red","Simulation is deactivated") pushMessage("Lights simulation stopped") end end end -- Condition to end simulation if (simu == "0") then SimulatorPresenceEngine:TurnOff(ID_devices_lights); Debug("red","Simulation is deactivated") pushMessage("Lights simulation stopped") end Debug("red","Exit from scene")
-
en fait chez moi la lumière que j'allume en fin de script est une lumière qui s'allume et s'éteint avec un capteur de mouvement. L'allumer d'office n'est donc pas un problème vu qu'elle s'éteint automatiquement après 3 minutes. Maintenant en modifiant la ligne 103 comme ci-dessous (ajout de la condition qui vérifie variable_a_tester) le script choisira de rallumer ou non la lampe if (ID_On_After_Simu ~= 0 and variable_a_tester == "1") then
-
C'est déjà prévu ;-) Dans le premier post: "J'ai ajouté la possibilité d'allumer une lampe en fin de script" local ID_On_After_Simu = id["LAMPE_HALL"] -- Only One ID of a lamp to turn on after simulation ends (set 0 to disable)
-
ça m'intéresse aussi, si quelqu'un a un tuyau pour du matos avec un bon rapport qualité/prix, je suis preneur ! Merci
-
Je ne comprends pas, Si tu met la simulation de présence et l'alarme c'est que tu n'est pas chez toi ? si ? De toute façon le script n'éteint que les lampes de la simulation. Donc si l'alarme retentit et que tu dors, si tu allume la lumière de ta chambre elle restera allumée...
-
C'est le comportement voulu, c'est l'heure du coucher de soleil. il change de jour en jour, mais pas d'heure en heure
-
pour exit sur plusieures VG: il suffit d'ajouter un test dans cette boucle: test_presence_state = fibaro:getGlobal("Simu_presence") simu = tonumber(test_presence_state); --verify the global value, if the virtual device is deactivated, the scene stops. --fibaro:debug("simu var state : " .. simu) if simu == 0 then counterexitsimu = 0 end ajouter par exemple juste après: test_alarm_state = fibaro:getGlobal("Alarm_State") simu = tonumber(test_alarm_state); --verify the global value, if the virtual device is deactivated, the scene stops. --fibaro:debug("simu var state : " .. simu) if simu == 0 then counterexitsimu = 0 end et doubler les vérifications de sortie du script de la même manière... un peu lourd... Personnellement, je ne toucherais pas au simulateur, mais en fin d'alarme, je mettrais simu présence à 0 puis un sleep 1,2 ou 3 secondes (le temps que la simulation s’arrête) et ensuite rallumer les lampes que l'on veut. ainsi la gestionde l'alarme ne "polue" pas la simulation de présence et les gestions restent séparées
-
quelqu'un a posté ce code sur le forum fibaro officiel pour plusieurs devices a notifier: Je n'ai pas testé personnellement car je n'ai pas envie de bombarder ma femme : à la place de ce code: local ID_Smartphone = 53; -- ID of your smartphone Mettez celui-ci: local ID_Smartphones = {iPhone=4,iPad=5}; et à la place de ceci: pushMessage = function (sendPush) if (activatePush) then ExtraDebug("Push info sent to mobile") fibaro:call(ID_Smartphone, 'sendPush', sendPush); end end Mettez ce code ci: pushMessage = function (sendPush) if (activatePush) then for i, j in pairs(ID_Smartphones) do fibaro:call(j, 'sendPush', sendPush); ExtraDebug("Push message ("..sendPush..") sent to mobile: "..i); end end end Si ça fonctionne je l’inclurai dans le code principal
-
Mon avis c'est que: - Habituellement, l'extinction des feux est +- fixe dans une habitation, il faut se lever le lendemain - Si quelqu'un s'amuse à "tracer" jusqu'à 4h du matin, il remarquera aussi que personne ne rentre ni ne sors de la maison ... - Une maison ce n'est pas une banque et un scénario style la grande évasion me semble peu plausible Maintenant si tu veux mettre une durée ce n'est pas difficile, il suffit d'ajouter XX heures et XX minutes à la variable endtime... mais vu l'écart entre hiver et été, ça risque de couper la simulation a 6h du matin en été et a 11h en hiver... Sent From my Vic20
-
Heure d'arrêt, ici 3h40 du matin :-) Sent From my Vic20
-
Un problème reçurent avec les fgk, c'est le switch anti sabotage a l'arrière, qui peut être ouvert si pas bien fixé car le jeu est minimum... Sent From my Vic20
-
Quoi on accepte des zipabox sur ce forum ??!? Oh mon dieu, je n'aurais pas cru que ce forum descendrait aussi bas ;-) Bienvenue quand même hein ;-) Sent From my Vic20
-
Moi je ne suis pas pressé pour la v4 ;-) ... Sent From my Vic20
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
il y a toujours moyen d'améliorer. -----------------LAMPE GARAGE------------------ -- Cas d'utilisation et besoins: -- Besoin de longues durées d'allumage via action manuelle (1h30). -- Détection de mouvement disponible que sur une partie du garage. -- Besoin d'allumer la lampe lorsque on ouvre la porte du garage pour rentrer la voiture -- Via interupteur manuel LAMPE_GARAGE -- Allumage de la lumière manuellement (dimmer à99%, via double click ou dernière valeur d'extinction) -- On clignotte la lampe après 1h30 et on set le dimer à97% (passe la main au script d'extinction et de détection de mouvement) -- Dans tous les cas, après un clignottement, Un double click ramènera le dimmer à99% et relancera un cycle de 1h30 GEA.add({"Value", id["LAMPE_GARAGE"],99}, 90*60, "Garage était 1h30 à99%, set 97% (Gea Mvt Garage)",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 97}}) -- Allumage Via Porte_Gar_Action -- Gestion de la lumière lorsque l'on rentre la voiture (stockage du scénario dans la valeur du dimmer ->98% -- Si demande d'ouverture et porte fermée et lampe éteinte, Allume lampe à98% La 3e condition permet de ne pas renvoyer d'ordre d'allumage inutile GEA.add({{"Global", "Porte_Gar_Action", "Demande_Ouverture"}, estClosed, {"Value", id["LAMPE_GARAGE"], 0}}, -1, "Lampe garage on pour 7 min à97", {{"Value", id["LAMPE_GARAGE"], 98}}) -- On clignotte la lampe après 7 min et on set le dimer à97% (passe la main au script d'extinction et de detection de mouvement) ou on passe en manuel via double click GEA.add({"Value", id["LAMPE_GARAGE"],98}, 7*60, "Garage était 7 min à98%, set 97% (Gea Mvt Garage)",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 97}}) -- via DETECTEUR Mouvement GARAGE -- Allumage à97% dès que détection mouvement. La 2e condition permet de ne pas renvoyer d'ordre d'allumage inutile GEA.add({id["DETECTEUR_GARAGE"],{"Value", id["LAMPE_GARAGE"], 0}}, -1, "",{{"Value", id["LAMPE_GARAGE"], 97}}) GEA.add({id["DETECTEUR_GARAGE"],{"Value", id["LAMPE_GARAGE"],96}}, -1, "",{{"Value", id["LAMPE_GARAGE"], 97}}) -- On clignotte la lampe après 2mn + le blind time du FGM (parameter 2) + cancel time (parameter 6) et on la passe à96% ensuite on l'éteint après 1mn si toujours pas de mouvement local malampegarage = GEA.add({"Value", id["LAMPE_GARAGE"],97},2*60, "Garage depuis 2 min à97% set 96% 1min puis 0FF",{{"turnOff", id["LAMPE_GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id["LAMPE_GARAGE"], 96}}) GEA.add({id["DETECTEUR_GARAGE"],{"Value", id["LAMPE_GARAGE"],97}}, 30, "", {{"RestartTask", malampegarage},{"repeat"}}) -- Si la lampe est à96%, après 1 min on met la lampe à99% (prète pour prochain allumage manuel) puis on éteint GEA.add({"Value", id["LAMPE_GARAGE"],96}, 1*60, "Extinction Garage",{{"Value", id["LAMPE_GARAGE"], 99},{"Function", function() fibaro:sleep(500) end},{"turnOff", id["LAMPE_GARAGE"]}}) -----------------------------------------------
-
Bien sur, tu as vu mon post #1600 ?
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
A toi de trouver la bonne manière de déclencher maintenant. Sent From my Vic20
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
ceci est le plus simple: GEA.add(true, 30, "", {{"Value", 153, 20}}) si ça ne marche pas après 30 secondes, alors je ne vois pas
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
aloers ça devrait aller pour l'action avec ceci: {"Value", id["ThermostaNoe"], 20} reste à voir le déclencheur... remplace le par true et met la ligne ci-dessus dans les options et teste. si ça marche tu doit trouver pourquoi le déclencheur ne fonctionne pas
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
pour moi ce script ne fait rien. malheureusement, GEA n'est pas magique, tu utilise une fonction faite pour un dimmer et tu voudrais que ça marche pour un thermostat...
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
quel est le code lua pour passer une température à ton thermostat ?
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :