Page 1 sur 1

[LUA] Ma detection de presence

Publié : 11 août 2017, 14:50
par landaisbenj
Bonjour a tous.

Je crois que je viens de finir ma propre détection de présence. Tout du moins jusqu’où je voulais en venir. Il me restera la veille et l'intrusion, mais je n'ai pas prévu de me lancer dedans tout de suite.

Je souhaitais vous le poster ici a toute fin utile pour ceux qui comme moi, se lance a monter leur système, ainsi que dans l'optique d'avoir vos retours tant en terme de simplification qu'en terme d'ajout.
Je précise que je ne suis pas du tout développeur, que je n'ai pas trop regarder les scripts existants (vu que les besoins et les devices a dispo sont jamais les même) et que ça fait bien 6 mois que j’écris, test et modifie ce petit script.

J’espère que vous aurez des idées a me proposer:

Code : Tout sélectionner

commandArray = {}
dofile('/home/limabravo/domoticz/scripts/lua/modules.lua')
local debug = true  -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir

od = otherdevices
dc = devicechanged
uv = uservariables
vc = uservariablechanged

--Detection absence-----------------------------------------------------
--Si les deux smartphone passe OFF et qu'il y a eu ouverture des portes il y a moins de 10 min (TODO: Detection de sortie avec les motions: si porte Open et motion On dans la minute precedente= sortie)

if dc['Presence 1'] == 'Off' or dc['Presence 2'] == 'Off' and (lastSeen('Contact garage') < 600 or lastSeen('Contact entree') < 600) then
    if od['Absence'] == 'Off' and od['Presence 1'] == 'Off' and od['Presence 2'] == 'Off' and od['Television'] == 'Off' and od['Contact baie'] == 'Closed' then
        if od['Absence'] == 'Off' then
            warn('********* Script Auto Absence: On')
            commandArray['SendNotification']='Script Auto Absence#Absence: On'
        
--          commandArray['Security']='Armed'
            switchOn('Absence')
            switchOn('Camera')
        end
    end
end

--Detection presence------------------------------------------------------
--Presence sur tout utilisation d'appareil dans la maison (Smartphone, tele) et d'ouverture des portes en cas d'absence ON

if dc['Contact entree'] == 'Open' or dc['Contact garage'] == 'Open' or dc['Presence 1'] == 'On' or dc['Presence 2'] == 'On' or dc['Television'] == 'On' then
    if od['Absence'] == 'On' then  
        warn('********* Script Auto Absence: Off')
        commandArray['SendNotification']='Script Auto Absence#Absence: Off'
        
--      commandArray['Security']='Disarmed'
        switchOff('Absence')
        switchOff('Camera')

        if od['Soleil'] == 'Off' and od['Bouton 5'] == 'Off' then
            switchOn('Bouton 5')
        end
    end
end
--[[TODO
--Detection veille-----------------------------------------------------------------------------------------------------------
--Apres 22h et pas de lumiere et pas de tele et aucune sortie depuis l'exctinction de ceux-ci et pas de mouvement
--commandArray['Security']='Armed Home'


--Detection intrusion a integré dans la detection de presence--------------------------------------------------------
--Si il y a veille et et qu'il y a ouverture des portes (Detection d'entrée avec les motions: si motion On et porte Open dans la minute precedente= entrée)
--Si il y a absence mais que les smartphones, la lumiere, la tele ou le code securté ne sont pas bon
--]]

Re: Ma detection de presence.

Publié : 11 août 2017, 15:40
par cyberbob
Slt,
J'ai un script Lua qui détecte ma présence avec un ping sur l'IP en wifi de ou des smartphones, sa fonctionne très bien mais comment ton script détecte t'il la présence du smartphone ?

Re: Ma detection de presence.

Publié : 11 août 2017, 15:54
par landaisbenj
cyberbob a écrit :Slt,
J'ai un script Lua qui détecte ma présence avec un ping sur l'IP en wifi de ou des smartphones, sa fonctionne très bien mais comment ton script détecte t'il la présence du smartphone ?
J'ai un script en shell sur le raspberry qui se connecte à la freebox toutes les deux minutes et qui l'interroge pour savoir si le smartphone est connecté ou non. Si il l'est, il envoi une commande pour mettre un device à On sur domoticz, si il ne l'est pas, à Off.

Au début j'ai voulu le faire en ping aussi. Mais les iphones d’Apple ne gère pas très bien les réponses au ping quand ils sont en veille. (wifi éteins ou autre en veille, le téléphone ne fais des requêtes que de temps en temps).
Comme j'ai pas voulu me prendre la tête a faire des calcul de pings et des essaies et que la freebox a toujours été bonne sur ce coup (peut être qu'ils ont les infos nécessaire d’Apple pour bien faire le job) alors j'ai adapter un des script présent sur le forum pour ça.

Re: Ma detection de presence.

Publié : 25 août 2017, 14:20
par jmv75013
Bonjour,

Est-il possible que tu postes le script shell de connexion à la freebox ?
Merci

Re: Ma detection de presence.

Publié : 25 août 2017, 14:32
par papoo
un tres bon script de connexion à la freebox en LUA pour la détection de présence des Iphones notamment.
c'est celui que j'utilise et qui fonctionne très bien pour moi https://sites.google.com/site/au66bis/d ... ork_status

Re: Ma detection de presence.

Publié : 25 août 2017, 17:19
par landaisbenj
jmv75013 a écrit :Bonjour,

Est-il possible que tu postes le script shell de connexion à la freebox ?
Merci
Moi j'ai utilisé ce lien sur le forum. Il y a deux script un pour la récupération du token et des ID et l'autre pour faire les requêtes et mettre a jour domoticz.

En dernière page j'ai posté mes modifs pour récupérer le statu des téléphones. En y reflechissant je pense que je vais voir pour modifier les parametres de la freebox suivant domoticz (fermer ou ouvrir les ports de domoticz si je suis a la maison ou pas par exemple) (je ne sais pas si la freebox accepte les modif via json?)

Re: Ma detection de presence.

Publié : 28 août 2017, 11:51
par jmv75013
Bonjour,

Merci à vous deux pour les liens.