Aller au contenu
byackee

Détection Personne Avec Smartphone - Testé Et Approuvé Meme Sur Iphone ;)

Recommended Posts

Bonjour a tous,

 

Ci-dessous un petit tuto afin de detecter si vous êtes chez vous ou non, le principe repose comme d'autres tutos sur la connection du smartphone sur le wifi. Il n'y a nul besoin d'avoir une application installé sur le téléphone.

J'ai réalisé des tests avec un smartphone android et iphone4 sous IOS8

 

Fonctions:

1) Identifier si le ou les smartphones se connectent au réseau wifi.

2) Renseigner une variable de la HC2 sur "Absent" ou "Present".

3) A partir des états des variables pouvoir lancer des scènes.

 

Prérequis:

- Linux (genre un raspberry ou ubuntu), fonctionne également sur syno avec la nouvelle fonction docker

- Smartphone android ou iphone

- une HC2   -_-

 

Remerciements:

Merci a sebcbien pour ses icons et ses idées: son post ici

Merci a Tony270570 pour son tuto, la plupart de ce tuto a été un "copier/coller" du sien: son post ici

 

Actions a réaliser sur la HC2:

1/ Créer un variable prédéfini avec le nom de votre choix (ex: presence_vince) avec 2 valeurs, Les majuscules sont importantes:

        - Absent

        - Present

 

2/ Ajouter les icones joint a ce post

 

3/ Créer un virtual device avec le fichier joint a ce post. Modifier dans le main loop les infos suivantes:

    - Modifier le nom de la variable que vous avez défini ci-dessus.

    - Modifier le numéro de l'icone pour la fonction "present" et "absent".

 

Actions a réaliser sur le server linux:

Télécharger l'application ici

wget http://www.overlooksoft.com/getfing4arm 

Installer fing

sudo dpkg -i overlook-fing-2.2.deb

Installer les librairies complémentaires

sudo apt-get install libpcap*

Créer le répertoire hébergent le script

sudo mkdir /home/hc2

Création du script de test de connexion wifi et le paramétrer

Créer le fichier

sudo nano test_presence_vince.sh

vous pouvez biensur remplacer le nom du script, il n'a aucune importance mis a part s'y retrouver

 

copier le script ci-dessous dans le fichier

#!/bin/bash

# Script check IP and update HC2 global variable
# Never ending loop
# version 1.00
# Author: byackee
# Original Author: Tony270570

nomvariable="Presence_vince"
login="admin"
password="votre mot de passe"
hc2ip="192.168.0.3"

while :
 do
 grep -n "<center>UP</TD><TD>192.168.2.83" /var/www/ping/lan.html
if [ $? -eq 0 ]
then
curl -s -X PUT -d '{"value": "Present"}' http://$login:$password@$hc2ip/api/globalVariables/$nomvariable
    echo "present"
sleep 10
else
curl -s -X PUT -d '{"value": "Absent"}' http://$login:$password@$hc2ip/api/globalVariables/$nomvariable
    echo "absent"
sleep 10
fi
done

Il faut modifier les variables en début de script:

nomvariable ==> nom de la variable créé sur la HC2
login ==> login de la HC2
password ==> mot de pass de la HC2
hc2ip ==> adresse ip de la HC2

 

lancer la commande suivante:

sudo chmod 755 « test_presence_vince

Les opérations ci-dessus peuvent etre réalisées autant de fois que de personnes/smartphones a tester

 

Créer un script pour le lancement des scripts au boot

Créer le fichier

sudo nano exec_presence

Copier le code suivant dans le fichier

#! /bin/sh
### BEGIN INIT INFO
# Provides:          exec_presence
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run /home/HC2/test_presence if it exist
### END INIT INFO

# version 1.00
# Author: byackee
# Original 	Author: Tony270570

PATH=/sbin:/usr/sbin:/bin:/usr/bin
. /lib/init/vars.sh
. /lib/lsb/init-functions
scriptpath="/home/hc2/"

do_start() {
	for i in $scriptpath"/"* ; do
		echo "lancement du script: "$i
		$i &
		sleep 2
	done
}

case "$1" in
    start)
        do_start
        ;;
    restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
    stop)
        ;;
    *)
        echo "Usage: $0 start|stop" >&2
        exit 3
        ;;
esac

donner les droits et l'autorisation de lancement du script au démarrage

sudo chmod 755 exec_presence
update-rc.d -f exec_presence defaults

7/ créer un script de demarrage de fing

Créer le fichier

sudo nano startfing

et y copier le code suivant

#! /bin/sh
### BEGIN INIT INFO
# Provides:          startfing
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run fing with unlimited loop
### END INIT INFO

# version 1.00
# Author: byackee
# Original Author: Tony270570

PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start() {
            fing -n 192.168.2.0/24 -o table,html,/var/www/ping/lan.html &
}

case "$1" in
    start)
        do_start
        ;;
    restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
esac

Il faut simplement modifier l'adresse IP de votre reseau.

 

donner les droits et l'autorisation de lancement du script au démarrage

sudo chmod 755 startfing
update-rc.d -f startfing defaults

Voila maintenant votre/vos smartphone sont détectés lors de la connexion au wifi. Le délai peut varié mais il est en générale de 20 a 30s.

 

icons:

gallery_61_200_1890.pnggallery_61_200_8053.pnggallery_61_200_13628.pnggallery_61_200_7532.png

Presence_So.vfib

  • Upvote 5

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

j'utilise effectivement cette solution depuis plusieurs mois en ayant suivit le post de Tonny,

quelle est la différence, ou variante de ce sujet, en regardant rapidement je n'ai vu que du c/c du post de tonny.

Partager ce message


Lien à poster
Partager sur d’autres sites

Le tuto de Tony ne fonctionnait que quelques temps et après plus aucune mise a jour.

Que du C/C, tu as du mal regardé les scripts alors :)

J ai modifié le code et l avantage est que si tu veux tester plusieurs téléphone, tu ajoute un script dans le répertoire /home/hc2 et il ne lancera a la prochaine boucle.

J'ai bien noté en début de post que j avais repris beaucoup de chose et je les aient améliorés.

Envoyé de mon PE-TL10 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Je te remercie pour éclaircissement, car oui je n'est pas examiner chaque ligne de code, est il possible de connaitre les améliorations, simplement par curiosité et envie d'apprendre et comprendre  :P

Et ainsi voir si je prends le temps de changer de solutions, enfin de la modifier.

Partager ce message


Lien à poster
Partager sur d’autres sites

sympa merciii.

 

Toujours le meme prob avec la mise en veille des tels a la pomme :-(

Partager ce message


Lien à poster
Partager sur d’autres sites

@Byackee, merci d'avoir mis àjour le script!! j'ai fait ce petit dev juste avant la v4, puis j'ai tellement galèré avec cette v4 que j'ai mis de côté cette fonctionnalité, mais aussi pour quelques raisons personnelles ...

@pepite, cette approche fonctionne parfaitement malheureusement pas avec tous les routeurs, j'ai une livebox et ça marche très bien avec mes iphones et autres droïds qui se trouvent àla maison, par contre avec par exemple une box sfr dès que ton tel passe en veille plus rien. En résumé, l'avantage de cette approche est de fonctionner avec de l' ios; l'inconvénient c'est que pour cela, il te faut aussi un routeur qui soit compatible :( au passage peux tu nous dire quel est le modèle de ton routeur?

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour ma part j'utilise un routeur WRT1900AC de linksys et ca fonctionne parfaitement avec apple et android.

Partager ce message


Lien à poster
Partager sur d’autres sites

En effet, dans les équipements que j'ai vu fonctionner il y avait du lynksys ou cisco (non exhaustif). Mais par exemple un membre du fofo avec qui j'ai pas mal échangé (mon ami Diuck pour ne pas le sité :) ) a une sfr en equipement principal ça ne marchait pas il y a collé un lynksys derrière acheté pour cette occasion, ben ça ne marchait pas mieux :( il faut que a priori que l'equipement principal soit compatible ce qui doit être ton cas Byackee.

Partager ce message


Lien à poster
Partager sur d’autres sites

Routeur de la freebox pour moi ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai un modem/routeur sfr sur le reseau 192.168.1.x et mon linksys est sur le reseau 192.168.2.x.

 

C'est le linksys qui gere l'atribution DHCP et du coup le routeur sfr sert juste de modem. Si vous avez un nas synology vous pouvez aussi lui confier l'atribution des adresse IP car il fait office de server DHCP.

 

Je pense que le différence entre routeur sont liés a la bonne qualité du server DHCP.

Partager ce message


Lien à poster
Partager sur d’autres sites

Sympa tout ça, mais cela sous-entend que l'iPhone ait toujours la même IP en se connectant au wifi. Si le DHCP lui attribue une autre adresse, c'est foutu...

(Ou alors j'ai mal lu les scripts....)

Partager ce message


Lien à poster
Partager sur d’autres sites

Il suffit de lui donner une IP fixe...

Sent from my phone

Partager ce message


Lien à poster
Partager sur d’autres sites

On peut le faire aussi avec une adresse mac. Il suffit d apporter une petite modif dans le script

Envoyé de mon PE-TL10 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci, je vais tester cette enième solution possible à  ce problème.

 

Une petite remarque déjà , remplacer dans le script les lignes genre :

curl -s -X PUT -d '{"value": "Present"}' http://$login:$password@$hc2ip/api/globalVariables/$nomvariable

Par :

curl -s -X PUT -d '{"value": "Present"}' -u $login:$password http://$hc2ip/api/globalVariables/$nomvariable

Cela peut éviter des soucis avec les mots de passe complexes.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

juste une petite astuce pour l'adressage IP à  la maison, je vous conseil de laisser vos devices en DHCP et d'utiliser des réservations.

Vous aurez l'avantage de l'IP fixe mais la flexibilité du DHCP avec une centralisation des infos et des modifications si nécessaires.

La plupart des box/routeurs vous offre ce service alors n'hésitez pas à  l'utiliser.

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas d'accord :)

Si la box est en panne, ou quand on change d'opérateur, alors on perd tout le réseau dès le bail DHCP dépassé.

A mon avis, le mieux est de cumuler adressage forcé par le DHCP, plus adressage fixe sur les machines.

Comme ça, si la box domotique (ou tout autre équipement) reboote en mode Recovery, alors elle reprendra la même IP qu'elle avait lors de son fonctionnement normal.

Idem pour le PC, si on le réinstalle, il sera en Dhcp donc reprendra la même IP.

Si c'est la box adsl qui est HS, mais alors tout le réseau continue de fonctionner.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je d'accord avec lazer je viens de changer de fournisseur internet il a fallu que je me retape toutes les adresses mac et en attendant rien ne fonctionnait correctement en plus je suis con je pourrais faire cela avec la arp de mon switch lol

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

Je dois reconnaitre que ta réponse, Lazer, fait sens toutefois l'utilisation de l'adressage fixe te fait perdre la flexibilité du DHCP

Pour le pb de DHCP suite au changement d'opérateur, j'ai pas ce pb car mon DHCP est sur mon syno  :-)

 

Toutefois je suis pas sur que ton réseau continuera de fonctionner meme localement si t'as box est down, enfin peut etre une partie mais pas tout, car par défaut les réseaux wifi et filaires sont sur des réseaux d'adressages différents et sans box pour faire le routage ton réseau wifi ne parle plus à  ton réseau filaire.

 

J'avais mis ma freebox sur un plug fibaro afin de la faire rebootez facilement mais kan je l'ai éteinte, je ne pouvais plus pioter mon HC2 avec mobile. Donc en gros si ta box est down t auras de plus gros pb que juste la partie DHCP.

Partager ce message


Lien à poster
Partager sur d’autres sites

Mes équipements sont connectés sur un switch, donc le réseau survie au reboot/panne de la box.

J'ai une passerelle SMS pour communiquer avec l'extérieur.

Le seul souci, c'est le Wi-Fi qui utilise actuellement le point d'accès de la box, mais j'ai en projet de le remplacer par un point d'accès indépendant (Ubiquiti pour les connaisseurs).

A noter qu'en entreprise, les serveurs sont toujours en adressage statique. Il n'y a que pour les postes de travail que le DHCP est utilisé, et encore, pas toujours.

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

je valide la solution ubiquiti que j'ai installé chez moi

 

encore une fois tout ce que tu dis est correct, néanmoins, il faut multiplier les solutions et savoir maitriser chacune d'entre elles

 

ma remarque était principalement pour mettre en avant la felxibilité et la simplicité de gestion du plan d'adressage au travers du DHCP

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut messieurs,

 

vous mettriez quoi comme point d'accès ubiquiti messieurs ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Pareil que lazer j'ai un switch manageable donc mon réseau et toujours ok sans box internet je n'utilise pas le wifi de la box car tout est dans une armoire réseau au frais dans mon vide sanitaire j'ai un point d'accès wfi au centre de la maison pour que j'ai du réseau wifi au rdc et étage. Mais bon j'avais fais des modifs et pour le moment tout est sur ma box internet

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

tu peux regarder sur ce topic car on en avait déja parlé avec lazer notamment :

http://www.domotique-fibaro.fr/index.php/topic/1306-choix-point-daccès-wifi-pour-remplacer-wifi-freebox/?p=19734

 

 

mais pour résumer la marque ubiquiti est très bien mais peu connue/distribuée en france

Les 2 produits qui ressortent selon moi sont la picostation qui est une AP avec une couverture impressionnante mais qui ne permet pas la romaing

ou les bornes UAP qui permettent le roaming facile et qui sont d'une simplicité enfantine à  configurer

Partager ce message


Lien à poster
Partager sur d’autres sites

Cisco ton pseudo a un rapport avec la marque de produits réseau?

Envoyé de mon SM-G900F

Partager ce message


Lien à poster
Partager sur d’autres sites

oui plus ou moins car je bosse dans les réseaux/télécom et je m'appel Francis

donc assez naturellement les gens m'ont appelé Cisco  ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

×