Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'présence'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Bienvenue
    • Annonces et suggestions
    • Nouveau ? Présentez-vous
    • Le bistrot
    • Mon installation domotique
    • Autres Solutions Domotiques
  • La HC2 et ses périphériques
    • La Home Center pour les nuls
    • Home Center 2 & Lite
    • Modules Fibaro
    • Modules Z-wave
    • Périphériques et matériels autres
    • Plugins
    • Alarme & Vidéo-surveillance
    • Multimédia
    • Chauffage et Energie
    • Actionneurs & Ouvrants (Portail, volets...)
    • Eclairage
    • Applications Smartphones et Tablettes
    • English Section
  • Les objets connectés
    • Les Assistants Vocaux
  • Fibaro's Awards
    • Membre du mois
    • Jeux concours & Cadeaux
  • Les bonnes affaires
    • Sites internet
    • Petites annonces

Rechercher les résultats dans…

Rechercher les résultats qui…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


Jabber


Skype


Ville :


Intéret :


Version

2 résultats trouvés

  1. bencol

    Réplicateur De Présence

    => publication d'une version 2.0 plus efficace, plus simple et avec un meilleur debug + commentaires en français Le principe de ce bout de code est le suivant : simuler une présence dans votre logement en s'appuyant sur votre mode de vie des mêmes journées les précédentes semaines. Le programme analyse le comportement des lumières des 2 dernières semaines (à partir de l'historique de consommation) et simule par réplication une vraie vie (la vôtre !) dans votre logement. 3 prérequis : - il est nécessaire de vérifier que les modules de type lampe sont bien déclarés comme lampe. Pour cela il faut aller dans la configuration avancée des modules concernées et sélectionner dans appareil commandé : Eclairage ou Lampe de chevet ou Lampe de jardin,.... - ajouter pour les modules qui le permettent le suivi de la consommation électrique (attention, il faudra attendre au moins 2-3 semaines que cela soit efficace) - créer une variable globale "Simu_presence" avec comme possibilité ON ou OFF Le code ci-dessous peut être placé dans la boucle principale dans un module virtuel. En pièce jointe le module à importer. ----------------------- -- fonction d'arrondi -- ------------------------ function math.round(num, idp) return tonumber(string.format("%."..idp.."f", num )); end -------------------- -- Debug function -- -------------------- function Debug(message, color) if (color == nil) then color = "white";end; fibaro:debug(string.format("<font color=" .. color .. ">" .. message .. "</font>")); return; end ------------------------------------------------------------------------------------------------------------------ -- Fonction de récupération de l'historique de l'allumage d'une lampe -- ------------------------------------------------------------------------------------------------------------------ local function CollecteStatus(DureeHistorique, Device) local TimeStart = DureeHistorique + 300; -- à la date de l'historique plus 5 min local TimeEnd = DureeHistorique - 300; -- à la date de l'historique moins 5 min -- init tableaux et variables local TabMeasure = {}; -- tableau de mesures timestamp/activité local HC2 = Net.FHttp("127.0.0.1",11111); if (Device ~= nil) then Response, status, errorCode = HC2:GET("/api/energy/now-" .. TimeStart .. "/now-" .. TimeEnd .. "/summary-graph/devices/power/" .. Device); end; if (tonumber(errorCode)==0 and tonumber(status)==200) then TabMeasure = json.decode(Response); -- chargement des données dans une table Debug("Nb mesures : " .. table.getn(TabMeasure) .. " (historique il y a " .. DureeHistorique/86400 .. " jours)","yellow"); local State = 0; -- scan la période concernée les semaines précédente for i = 1, table.getn(TabMeasure) do local Heure = tonumber(TabMeasure[i][1])/1000; -- collecte de l'heure et conversion des millisecondes en secondes if (tonumber(TabMeasure[i][2]) > 0) -- il y a une activité then State = 1; end Debug("Mesure " .. i .. " : " .. os.date("%A %d/%m/%y %H:%M",Heure) .. " => " .. State); end return State; -- retour de la fonction else Debug("fail : ".. status .. " - error : ".. errorCode); end end -- Scan de tous les devices si alarme active if (fibaro:getGlobalValue("Simu_presence") == "ON") then Debug("START REPLICATOR...."); fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 1062); fibaro:log('Simulation active'); Debug("Alarme active => Scan...."); for device=1, 1000, 1 do if (fibaro:getValue(device, "isLight") == '1') -- si type lampe then -- lancement de la fonction de collecte des informations d'allumage ou d'extinction Debug("***** Collecte de la consommation électrique pour la lampe " .. device .. " " .. " *****", "yellow"); local StateSem1 = CollecteStatus(7 * 86400, device); -- appel de la fonction => 1 semaine avant local StateSem2 = CollecteStatus(14 * 86400, device); -- appel de la fonction => 2 semaines avant -- si lampe active les dernières semaines et lampe actuellement éteinte => allumage if (StateSem1 == 1 or StateSem2 == 1) then if (tonumber(fibaro:getValue(device, "value")) == 0) -- la lampe est éteinte then fibaro:call(device, "turnOn"); -- allumage fibaro:call(device, "setValue", "50"); Debug("Allumage Lampe : " .. device, "green"); else Debug("Pas d'action, lampe : " .. device .. " déjà allumée", "green"); end end -- si lampe inactive les dernières semaines et lampe actuellement allumée => extinction if (StateSem1 == 0 and StateSem2 == 0) then if (tonumber(fibaro:getValue(device, "value")) > 0) -- si le device est allumé then fibaro:call(device, "turnOff"); -- extinction Debug("Extinction Lampe : " .. device, "red"); else Debug("Pas d'action, lampe : " .. device .. " déjà éteinte","red"); end end end end else fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", 1061); fibaro:log('Simulation inactive'); Debug('Simulation inactive'); end fibaro:sleep(120000); -- temporise 2 minutes Presence_Replicator v1.vfib Presence_Replicator v2.vfib
  2. lionel

    Simulation de Présence

    Script de Clarkkent609 posté ici : http://forum.fibaro.com/viewtopic.php?t=3009 1ere étape: Créer une variable prédéfinie :"Simu_presence" avec les valeurs "On" and "Off" 2eme étape: créer un module virtuel 3eme étape: copier et coller ce code: --[[ %% properties %% globals --]] fibaro:setGlobal("Simu_presence", "On"); --fibaro:debug("Simulation de présence activée"); fibaro:log("Simulation de présence activée"); fibaro:call(30, "setProperty", "ui.status.value", "activée"); --fibaro:debug(fibaro:getValue(30, "ui.status.value")) 30 =ID du module virtuel coller ce code dans le second bouton: --[[ %% properties %% globals --]] fibaro:setGlobal("Simu_presence", "Off"); --fibaro:debug("Simulation de présence désactivée"); fibaro:log("Simulation de présence désactivée"); fibaro:call(30, "setProperty", "ui.status.value", "désactivée"); --fibaro:debug(fibaro:getValue(30, "ui.status.value")) 30 =ID module virtuel. Attention : ID du Label doit contenir "status" : voir photo: 4eme étape copier et coller ce code dans le MAIN LOOP et remplacer par vos valeurs utilisateur --[[ %% properties %% globals --]] -- LUA - Presence Simulator V1.0.0 -- -- simulate a presence when you're on vacation. -- A part of code is reused, it can found here. Thanx to Richo: http://forum.fibaro.com/viewtopic.php?t=1892&postdays=0&postorder=asc&highlight=presence&start=15 and here thx to Krikroff http://forum.fibaro.com/viewtopic.php?t=1656 -- USER SETTINGS : local start_hour = 19; --hour to start simulation local start_minute = 30; --minute to start simulation, example 19:30 local rndmaxtime = 20 --random time of light change in minutes --> here each device is on max 20min local runtime = 90 --how long to run simulation in minutes local ID_devices_lights = {17, 13} --IDs of lights to use in simulation local numbers_lights = #ID_devices_lights --numbers of light devices listed above local activated_push = true; --activate push when simulation starts and stops local ID_Smartphone = 7; --ID of your smartphone local simu = fibaro:getGlobal("Simu_presence"); --value of the global value: simulation is on or off local debug = true; --activate the debug mode -- DO NOT EDIT THE CODE BELOW (except to suit your needs) -- local minute = 60000 --in milliseconds local currentDate = os.date("*t"); SimulatorPresenceEngine = { version = "1.0.0" }; -- function to switch off devices in the list function SimulatorPresenceEngine:TurnOff(group) local name, id; local ID_devices_group = group; for i=1, #ID_devices_group do id = tonumber(ID_devices_group[i]); fibaro:call(id, "turnOff"); if (debug) then name = fibaro:getName(id); if (name == nil or name == string.char(0)) then name = "Unknown" end fibaro:debug("Device:" .. name .. " On "); end end end -- function to simulate a presence function SimulatorPresenceEngine:Launch() local start = os.time() local endtime = start + runtime*minute/1000 -- after how many minutes exit simulation if (activated_push) then fibaro:call(ID_Smartphone, 'sendPush', "Lights simulation started") ; --send push notification if (debug) then fibaro:debug("push start sent") end end while ((os.time() < endtime) and (simu == "On")) do 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 if (debug) then fibaro:debug('light ID:'..random_light..' status:'..lightstatus) end local sleeptime = math.random(rndmaxtime*minute) --random sleep fibaro:sleep(sleeptime) local sleeptimemin = math.abs(sleeptime/60000) if (debug) then fibaro:debug('sleeptime:'..sleeptimemin) end simu = fibaro:getGlobal("Simu_presence"); --verify the global value, if the virtual device is deactivated, the scene stops. end --turn Off all lights SimulatorPresenceEngine:TurnOff(ID_devices_lights); fibaro:call(ID_Smartphone, 'sendPush', "Lights simulation stopped") ; --send push notification if (debug) then fibaro:debug("push stop sent") end fibaro:sleep(60000); end -- Condition to start simulation if ((simu == "On")and (currentDate.hour == start_hour ) and (currentDate.min == start_minute))then SimulatorPresenceEngine:Launch(); --launch the simulation when virtual device is on, and the current time is triggered. end
×