Accueil > Uncategorized > Détecter la présence grâce au WIFI du téléphone avec Domoticz

Détecter la présence grâce au WIFI du téléphone avec Domoticz

Un petit article pour expliquer comment détecter la présence d’une personne dans la maison grâce au WIFI de son téléphone.

La première chose à effectuer est de fixer des adresses IP fixes aux différents téléphones qui se connectent à la box Internet. Pour cela il faut configurer le DHCP de la box pour attribuer toujours les mêmes adresses IP en fonction de la Mac-address. Je vous conseille de vous plonger dans la documentation de votre box.

Je voulais simplement détecter la présence du téléphone en effectuant un ping mais j’ai constaté que certains téléphones non utilisés passent le WIFI en veille et ne répondent pas à une requête ping. Afin de remédier à ce problème j’ai décidé d’utiliser la commande ‘arping’ qui va permettre de forcer le téléphone à répondre.

Pour cela il faut installer le paquet sur le Raspberry : sudo apt-get install arping

Ensuite on va ajouter un matériel dans Domoticz :

image

Choisir le menu ‘Réglages’ puis ‘Matériel’ :

image

Entrer un nom de matériel, choisir le type ‘Dummy’ et cliquer sur ‘Ajouter’ :

image

Ensuite sélectionner le matériel et cliquer sur ‘Créer capteurs virtuels’ :

image

Entrer un nom de capteur (si possible sans accents) et sélectionner le type ‘Interrupteur’ et cliquer sur ‘OK’ ; ensuite sélectionner l’onglet ‘Interrupteurs’ vous voyez apparaitre le nouveau capteur :

image

On va modifier l’icône (par défaut une ampoule) et choisir un téléphone (beaucoup plus parlant) en sélectionnant le bouton ‘Editer’ :

image

On sauvegarde et on se retrouve dans cet écran :

image

Voilà pour l’interface graphique maintenant passons au script qui va permettre de détecter la présence de nos téléphones ou pas. Il est possible de scripter des tâches dans Domoticz, pour cela il faut utiliser le langage LUA; le script doit être mis dans le dossier domoticz/scripts/lua; ensuite il faut absolument nommer le script comme ceci script_time_xxx.lua (xxx ce que vous voulez) afin d’indiquer à Domoticz qu’il sera exécuté chaque minute.

Attention pour prendre en compte un nouveau script il faut attendre un dizaine de minutes.

Le contenu du script sera le suivant :

commandArray = {}

ping_success=os.execute(‘sudo arping -q -c3 192.168.1.76 -W 1’)
if ping_success then
    if ( otherdevices[‘Presence Fabrice’] == ‘Off’) then
           commandArray[‘Presence Fabrice’]=’On’
    end

else
    if (otherdevices[‘Presence Fabrice’] == ‘On’) then
           commandArray[‘Presence Fabrice’]=’Off’
    end
end
ping_success=os.execute(‘sudo arping -q -c5 192.168.1.22 -W 1’)
if ping_success then
    if ( otherdevices[‘Presence Valerie’] == ‘Off’) then
           commandArray[‘Presence Valerie’]=’On’
    end

else
    if (otherdevices[‘Presence Valerie’] == ‘On’) then
           commandArray[‘Presence Valerie’]=’Off’
    end
end
return commandArray

J’ai mis 3 test d’Arping pour mon téléphone Nexus 6P car il répond au maximum au bout de 3 tentatives alors qu’il est en veille alors que le second téléphone un HTC il répond au maximum au bout de 5 fois. Attention à ne pas dépasser 10 secondes pour l’exécution du script !!!

Voilà maintenant Domoticz détecte votre présence grâce à votre téléphone. On verra plus tard comment utiliser ces switchs.

Publicités
Catégories :Uncategorized
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :