Détection de présence avec la Freebox   Surveillance d'équipements réseaux connectés (smartphone, etc)     Prérequis : Freebox v6 Revolution en mode routeur (par défaut) Module virtuel Freebox Server de @Krkroff en version 0.1.1 minimum Des appareils connectés sur le réseau IP (en Wi-Fi ou câble Ethernet)   Installation :   Télécharger le module virtuel Freebox et suivre les instructions de @Krikroff pour son installation : https://www.domotique-fibaro.fr/topic/328-plugin-freebox-v6/La dernière version connue à ce jour est la v0.1.1 : https://www.domotique-fibaro.fr/topic/328-plugin-freebox-v6/?page=9#comment-101866     Sur l'interface Web d'administration de Freebox OS, il faut aller dans la fenêtre Périphériques réseaux pour découvrir les adresses MAC des appareils à surveiller.    
Modifier la Main Loop du module virtuel Freebox afin d'ajouter la surveillance d'équipements réseaux, voici la syntaxe (vous pouvez ajouter autant d'éléments que désiré) _lanDevice = { { mac = "00:00:00:00:00:00", -- Sony Xperia Z2 (ether-00:00:00:00:00:00) vg = "FbxV6_LAN_XperiaZ2" }, { mac = "00:00:00:00:00:00", -- Samsung Galaxy S4 Mini vg = "FbxV6_LAN_S4mini" } }, mac : adresse MAC relevée sur la Freebox vg : variable globale qui contient le timestamp Unix de la dernière fois que l'appareil a été vu sur le réseau... cela concerne donc aussi bien le Wi-Fi (sans-fil) que l'Ethernet (câble).   Sur la HC2, dans le panneau de variables, Pensez à créer vous-même les variables globales FbxV6_LAN_XXX choisies précédemment, ce n'est pas pris en charge automatiquement par le module virtuel Freebox.
    Créer également une autre variable prédéfinie PresenceXXX qui contiendra le statut de la présence, soit 0 ou 1 :     Sauvegarder le module virtuel Freebox, qui va se connecter sur la Freebox et récupérer les informations de dernière connexion des périphériques réseaux surveillés. Les timestamps (valeur numérique) doivent apparaitre automatiquement dans les variables globales.     Sur la HC2, créer une scène contenant le code LUA suivant, à adapter en fonction de vos besoins : --[[ %% autostart %% properties %% globals FbxV6_LAN_XperiaZ2 FbxV6_LAN_S4mini --]] function Check() local delay = 3600*12 local timestamp = os.time() local FbxV6_LAN_XperiaZ2 = tonumber(fibaro:getGlobalValue("FbxV6_LAN_XperiaZ2")) local FbxV6_LAN_S4mini = tonumber(fibaro:getGlobalValue("FbxV6_LAN_S4mini")) local PresenceChristophe = fibaro:getGlobalValue("PresenceChristophe") if FbxV6_LAN_XperiaZ2 < timestamp - delay and FbxV6_LAN_S4mini < timestamp - delay then if PresenceChristophe == "1" then fibaro:debug(os.date('%d/%m/%Y').." : Absence détectée") fibaro:setGlobal("PresenceChristophe", "0") end else if PresenceChristophe == "0" then fibaro:debug(os.date('%d/%m/%Y').." : Présence détectée") fibaro:setGlobal("PresenceChristophe", "1") end end end local trigger = fibaro:getSourceTrigger() if trigger["type"] == "autostart" then fibaro:debug(os.date('%d/%m/%Y').." : Autostart infinite loop...") while true do Check() fibaro:sleep(300*1000) -- 5 minutes end elseif trigger["type"] == "global" then fibaro:debug("Global variable change : "..trigger['name']) Check() elseif trigger["type"] == "other" then fibaro:debug(os.date('%d/%m/%Y').." : Started manually") Check() elseif trigger["type"] == "property" then fibaro:debug(os.date('%d/%m/%Y').." : Property changed : ".. trigger['deviceID'].." => "..trigger['propertyName']) else fibaro:debug(os.date('%d/%m/%Y').." : Unknown trigger : "..trigger["type"]) end Dans l'en-tête, en trigger, on positionne les variables globales FbxV6_LAN_XXX Pensez à modifier le code en fonction du nom des variables globales que vous avez choisi. Comme on peut le voir, je monitore 2 téléphones, ce qui me permet d'améliorer la fiabilité de détection. Il faut juste modifier légèrement le code pour ne surveiller qu'un seul ou plusieurs appareils.   J'ai configuré un délai de détection de 12h, car cette scène me permet de détecter si je suis absent plus de 12h de la maison, donc que je suis en déplacement professionnel, c'est à dire que je ne passerai pas la nuit au domicile. Cela est très fiable.   Mais je considère qu'il n'est pas possible de faire de la détection de présence de courte durée par monitoring des smartphones, pour plusieurs raisons : - le smartphone peut avoir été laissé à la maison pendant une absence, temporairement - le smartphone peut être en panne de batterie temporairement - le smartphone peut avoir le Wi-Fi désactivé temporairement Donc ce type de détection de présence n'est pas adapté à des scénarios de mise en marche/arrêt d'alarme par exemple.   Ensuite, on peut utiliser la variable globale PresenceXXX dans des scénarios (Scènes, VD, GEA, etc)   Si on veut gérer la présence de plusieurs personnes, il suffit de créer plusieurs scènes et autant de variables globales correspondantes.