iPhone Detector est un plugin pour Vera disponible sur l’appStore MioS Marketplace . Ce plugin permet de mettre en oeuvre une géolocalisation de vos équipements iOS (iPhone, iPad …). Sans tambour ni trompette, ce plugin est apparu discrètement et sans presse. Alexis Mermet-Grandfille est l’auteur de ce plugin Vera. Questions à son auteur :
Domotique-Info : Quel est ton parcours professionnel ?
Alexis Mermet-Grandfille : Ingénieur ENSIMAG 1988, j’ai travaillé 3 ans pour HP a Grenoble en tant qu’ingénieur de développement logiciel dans les réseaux. Je suis ensuite parti travailler 3 ans en Californie, Menlo Park, pour une société qui s’appelait « Network General » et qui faisait un produit d’analyse de protocole sur les réseau LAN (Sniffer). De retour chez HP pour près de 20 ans dans diverses fonctions d’ingénieur, de manager logiciel, de conception de PC HP Vectra, je suis passé dans le monde du « service/infogérance » pour finalement finir dans l’IT global avec la stratégie et la gestion des développements autour des terminaux mobiles du monde « Corporate ». Enfin, récemment je viens de passer chez ATOS comme directeur du développement des outils « gestion de service ». Beaucoup de management, donc le WE je code un peu pour garder la main…
Domotique-Info : Qu’est ce qui t’a amené à la domotique ?
Alexis Mermet-Grandfille : J’ai acheté une maison il y a 2 ans et je voulais la moderniser un peu. Je savais que la domotique existait mais je ne m’y étais pas intéressé avant. J’avais vaguement entendu parler de X10. Avec différents sites j’ai arrêté mon choix sur la plateforme qui me semblait la moins chère et la plus ouverte. L’aspect réseau maillé du zWave m’a aussi intéressé car la maison est grande et je me suis dit qu’avec cette solution je pourrais grossir mon réseau et améliorer ma couverture. J’ai aussi essayé Control4 pour une installation audio-visuelle mais finalement j’étais assez déçu du côté propriétaire et fermé de cette solution. La Vera au contraire semblait permettre de faire (trop) de choses, et les aspects « communautaire » et « extensions » donnaient des perspectives d’évolutions, donc ça m’allait bien. De plus étant à l’époque dans les technologies de mobilité, les web-services, la convergence des médias, les avancées objets communicants m’intéressaient déjà… Donc un terrain fertile pour Vera. Je galère bien sur l’aspect électricité car je ne suis pas bricoleur, mais je me suis fait aider par un pro sur les trucs compliqués et mon installation commence a être sérieuse… J’ai aussi rajouté une IPX800 pour contrôler pompe et robot de la piscine. J’ai dans mes idées futures un plugin IPX800 pour intégrer ça proprement avec la Vera
Je vous propose donc avec cet article de découvrir le fonctionnement du plugin, et une mise en application domotique pour la gestion d’ouverture d’un portail électrique.
1 – Découverte d’iPhoneLocator
1.1 – Principe de fonctionnement
Le plugin permet de vérifier la présence de l’iPhone dans un périmètre (radius) définissable dans les paramètres en comparant le statut antérieur de la position.
- Si la localisation antérieure est extérieure au périmètre de la position actuelle, un statut entrant est défini.
- Si la localisation antérieure est intérieure au périmètre de la position actuelle, un statut sortant est défini.
1.2 – Configuration du plugin
- Aller sur l’onglet « Setting »,
- Saisir l’adresse mail de votre activation iPhone,
- Saisir le mot de passe de votre activation iPhone,
- Sélectionner l’iDevice que vous voulez suivre,
- Déterminer une période de rafraîchissement de la position,
- Définir la latitude et longitude en degrés décimaux du WGS 84 (World Geodetic System 1984),
- Définir le périmètre (radius) et sélectionner l’unité,
- Sauvegarder.
Télécharger la documentation d’installation
3 – Fonctions avancées
3.1 – Polling Map
Interaction de la fréquence de polling avec la distance de la base est configurable. Ces éléments de configuration avancés permettent d’affiner la fréquences de communication avec iCloud en fonction de distances concentriques de la base. Il est possible d’ajuster ces éléments à votre situation. Exemple, ceux vivant en ville seront impactés par la circulation (traffic) et à la campagne pas vraiment. Il est donc possible de personnaliser la configuration du polling.
En activant la coche (checkbox) « Dynamic » en 9 et/ou en remplissant le champ « Map », 2 modes de fonctionnement sont possibles :
- On n’utilise pas la « polling map », dans ce cas l’asservissement est très simple : si (Distance>100) la période est 10 x la période de base, si Distance>10 la période est 3 x la période de base.
- On utilise la « polling map » lorsque l’on veut asservir plus finement : dans ce cas, c’est très libre. le paramètre Polling Period n’est plus utilisé du tout (5). D’ailleurs si la « polling map » est définie et que la checkbox « dynamic » est coché, le paramètre « polling period » est grisé. La polling map permet d’asservir la fréquence de polling avec la distance de manière libre. Il s’agit d’une séquence séparée par des « , » de paires de nombre séparé par un « : ».
Exemple, ma configuration « Polling Map » est composée de 8 zones : [0:600,0.1:60,0.3:10,0.6:15,1:30,2:60,4:120,10:180,100:600] Dans chaque paire, le premier nombre est la distance et le second la fréquence de polling en seconde. Ainsi, cette polling map se lit de la façon suivante (cette configuration n’est pas forcement la meilleure car en tests) :
- De 0 à 0.1 km , le polling sera toutes les 600 secondes
- De 0.1 à 0.3 km , le polling sera toutes les 60 secondes
- De 0.3 à 0.6 km, le polling sera toutes les 10 secondes
- De 0.6 à 1 km, le polling sera toutes les 15 secondes
- De 1 à 2 km, le polling sera toutes les 30 secondes
- De 2 à 4 km, le polling sera toutes les 60 secondes
- De 4 à 10 km, le polling sera toutes les 120 secondes (3′)
- De 10 à 100 km, le polling sera toutes les 600 secondes (5′)
- Au dela de 100km, le polling sera de 1800 secondes (30′)
3.2 – Interaction de plugins (PingSensor), et les scènes
Configuration de la Vera, pour activer ou désactiver la collecte de position avec un PingSensor et 2 scènes pour déclencher Mute ou Unmute suivant la réponse au ping sur réseau local.
3 – Exemple d’usage
3-1 – Description
Voici l’usage que j’ai personnellement mis en oeuvre dans mon quotidien. La portée de la télécommande étant limitée à une centaine de mètres du portail, et vu la configuration de mon quartier, j’ai souhaité pouvoir déclencher l’ouverture de ce portail électrique de manière à ne pas avoir de temps mort (20 secondes) devant le portail à mon arrivée.
- Mon iPhone met à jour sa localisation vers l’iCloud ;
- La Vera vérifie toutes les 10 secondes la localisation de l’iPhone ;
- Si la position se trouve dans un périmètre de 300 mètres de mon domicile, la Vera ordonne à l’IPX800v3 par requête HTTP la fermeture furtive d’un canal de sortie ;
- La télécommande reçoit la pression du bouton A par la fermeture furtive de l’IPX800V3 ;
- La télécommande effectue l’ouverture du portail.
3.2 – Intégration de la télécommande RF
Intégration de la télécommande sur le canal de sortie 8 de IPX800v3 (en mode furtif) actionnable par requête HTTP dans une scène.
3.3 – Création de la scène
Paramétrage du déclencheur : Voici le code Lua à intégrer dans le scène :
1 2 3 | -- Modifier adresse IP de votre IPX800 luup.inet.wget("http://192.168.xxx.xxx/preset.htm?RLY8=1") return true |
4 – Avantages et inconvénients
4.1 – Les plus
- Pas d’application nécessaire sur l’ iPhone ;
- Pas de surconsommation liée à une application en tâches de fond ;
- Facile à mettre en place ;
- Gratuit.
4.2 Les moins
- Seulement pour iOS ;
- Quelques petits détails qui sont souvent rapidement corrigés.
5 – Conclusion
C’est de loin pour moi, la meilleure solution jamais testée dans un environnement iPhone/Vera. Pas de surconsommation constatée ou légèrement. Cela ouvre enfin de vraies perspectives de scénarios proactifs et transparents. En effet, je pourrais ajouter à l’exemple d’usage ci-dessus un allumage de la lumière extérieur si une condition crépusculaire est respectée. Lancer la musique, un message d’annonce dans la maison « Sébastien arrive bientôt »…
Propositions d’évolutions : Faites nous vos remarques et demandes d’évolutions au travers des commentaires ou directement sur le forum Micasaverde (Suivre le développement d’iPhone Detector sur le forum MCV).
Personnellement, j’aurai souhaité avoir la possibilité de mettre en place plusieurs seuils de déclenchements. Plusieurs radius pour plusieurs types de scénarios.
24 Comments
Fabien
Un plugin qui m’a l’air fort interressant, comme tu le dis pour automatiser des taches lorsqu’on approche de chez sois !
Par contre je me pose une question : est-il possible d’intégrer deux iPhone (ou plus) avec ce plugin ? Pour permettre de prendre les position d’un couple, et pas avantager qu’un seul des deux 😀
Sébastien Joly
@Fabien
Oui c’est possible !
– Soit il existe un compte itunes et tous les iDevices sont vus par le plugin.
– Soit on installe plusieurs plugin.
Hotfirenet
Encore un article complet bravo sebastien.
Et si tout simplement tu n’as plus de batterie sur ton iphone ?
que ce passe t’il ?
Alexis Mermet
Merci pour cet article et la publicité. c’est promis pour Noel je commande un tambour et des trompettes.
Sébastien Joly
@Hotfirenet
En théorie l’iCloud garde ta dernière position connue.
Comme il ne répond pas au ping, la Vera collecte donc toujours la même position.
Donc ce qui se passe dépend à priori de la position.
Sébastien Joly
Mais de rien @Alexis, c’était un plaisir de correspondre avec toi et ta méga-disponibilité. De plus ton plugin est un exemple d’interconnexion de web-service (API iCloud + API GoogleMaps).
Chapeau bas l’amis … J’attends avec impatience ton plugin IPX800v3.
mvar64
Bonjour,
très intéressant, et utile,
A quand un « Android Detector »
Merci
Sébastien Joly
C’était Google Latitudes.
pascal
bonjour
Bravo et merci pour cette appli, tres utile pour gérer la maison sans utiliser de telecommande zwave souvent perfectibles.
Installée sur ma vera lite, cela fonctionne tres bien. J’ai créé 2 modules, pour l’iphone de ma femme et le mien. Je me heurte cependant à une difficulté: comment déclencher un autre module dans un scénario par exemple, si et seulement si ces 2 modules iphone detector passent en away ?
merci
Maikinoki
Je me joint à tous pour féliciter le créateur de ce fantastique plugin. De plus le guide rédigé ici est très bien fait (perso j’ai tout fait « au nez » et je m’en suis sorti sans trop de problèmes).
@Pascal : comme ça pour ta solution je pense qu’il faut un switch virtuel et un peu de LUA.
– Un scénar pour chaque plugin qui se déclenche quand il est away. LUA: test de l’état de l’autre plugin, si away alors on passe le switch virtuel sur « ON »
– Un scénar qui se déclenche pour les deux plugins quand ils passent en above : on passe le switch virtuel sur « OFF »
Comme ça ton switch est à ON seulement si les deux sont away.
Alexis Mermet
Pascal, je fais quelque chose de similaire avec un plug in PLEG. si et seulement si les 2 sont a la maison et qu’il est entre 21h et 6hm du mat, je met les plugin en mute.
Voici ma config PLEG pour cela
SCHEDULE
MutePhoneTime Weekly 21:00:00 1,2,3,4,5,6,7 None Weekly 06:00:00 1,2,3,4,5,6,7 None false 2013-11-23 21:00:00.100
PROPERTIES
iPhoneAlexis (*)iPhone de Alexis Present 2013-11-23 19:56:43.213 1
iPhoneFrede Frederique Guede iPhone Present 2013-11-23 16:04:22.707 1
CONDITIONS
EverybodyAbsent (iPhoneAlexis==0 and iPhoneFrede==0) 2013-11-23 13:57:00.682 false
NotEverybodyAbsent not EverybodyAbsent 2013-11-23 15:11:00.850 true
EverybodyPresent (iPhoneAlexis==1 and iPhoneFrede==1) 2013-11-23 19:56:43.235 true
MutePhoneSet (EverybodyPresent and MutePhoneTime) 2013-11-23 21:00:00.117 false
MutePhoneUnset not MutePhoneTime 2013-11-24 06:00:00.116 true
ACTIONS
Actions for Condition: MutePhoneSet
Device Action Arguments
(*)iPhone de Alexis SetMute newMuteStatus=1
Frederique Guede iPhone SetMute newMuteStatus=1
Actions for Condition: MutePhoneUnset
Device Action Arguments
(*)iPhone de Alexis SetMute newMuteStatus=0
Frederique Guede iPhone SetMute newMuteStatus=0
pascal
Merci 🙂
Je vais cela de suite 🙂
pascal
erratum : Je vais regarder cela de suite 🙂
pascal
bonsoir
Depuis ce soir le plugin m’affiche une erreur étrange:
« Google quota exceeded » alors que je n’utilise aucune notification sur ce module ??? Du coup, l’adresse de localisation de l’iphone ne s’affiche plus.
Merci pour votre aide.
Sébastien Joly
@Pascal,
Oui, c’est normal, c’est aussi mon cas. Ceci étant le géocodage (position vers adresse) n’a dans l’absolu pas d’intérêt me semble-t’il, sauf pour traquer sa femme ;).
La raison, est me semble-t’il un dépassement de la limite de requêtes Google Maps. Alexis, m’avait parlé d’une modification à venir pour résoudre le problème.
Cela n’affecte pas le fonctionnement en tous cas.
Alexis Mermet
oui, l’api google map reverse geocoding a une limite de 2500 requête en 24h a moins d’utiliser un contrat business sur l’api ce que je n’ai pas fait. chaque refresh du device creera un appel a google donc une requête toute les 35s épuisera le crédit en 24h. si plusieurs comptes iCloud / device sont configures, ils partagent la même limite.
Ce msg d’erreur partira de lui même au bout de 24h mais il est recommandé de: 1) configurer le dynamic polling et la polling map afin d’avoir une stratégie de polling intelligente ( l’article explique bien cela , pas besoin de ‘poller’ toutes les 10 s si vous êtes a 50km) et éventuellement placer le device en mode MUTE lorsque ce n’est pas utile ( genre pendant la nuit comme explique ci dessus avec un plugin PLEG ou équivalent a base de scène et schedule )
J’ai 2 devices /2 comptes icloud avec la polling map: 0:600,0.03:60,10:300,100:1800 et je met mes devices en mute la nuit et ne touche pas la limite de google par exemple.
pascal
bonjour
et merci !
J’ai donc egalement corrigé le polling.
Je pensais que ce message était lié aux notifications 😉
pascal
bonjour
Décidemment je joue de malchance avec cette appli pourtant prometteuse 🙁
Impossible de dédoubler le module, sans que le 2e créé ne vienne en créer un 3e, avec une config bancale entre le 2 et le 3.
Je m’explique
J’installe l’appli, qui génère un module M1.
Je configure le module M1 sans probleme. le module se renomme en « (*) iphone de Pa… »
Puis je crée, pour l’iphone de ma femme, un 2e module, soit en allant dans !
mes applications -> clic sur l’appli -> créer un autre
ou par:
« onglet avancé du module M1, et je copie les nom des fichiers qui sont a coté de device_file et impl_file
apres dans application ==> Développer des application == créer un module avec les noms de fichiers adéquats »
dans les 2 cas, un 2e module est bien créé avec pour nom (automatique) « (*)Iphone de e… »
Je le configure egalement, pas de souci ça fonctionne
Puis apres un temps aléatoire de quelques mn à quelques dizaines de minutes, apparait un 3e module, copie du 2e, avec pour nom « Iphone de e… » sans le « (*) » !
Le 2e module apparait alors en erreur dans les logs. Et si je vais voir la config du module 2 et du module 3, celle-ci est tronquée, le module 3 n’a qu’une moitié de paramétrage ! Si je supprime le module 3, il réapparait de maniere automatque quelques minutes après.
Le module 2 apparait comme non apramétré, alors que si je vais voir, toutes les infos y sont bien.
C’est comme ci le module 2 créait de par lui même un module 3, et déportait une partie de sa config vers celui-ci……….
Du coup, ça devient inutilisable 🙁
voici un screenshot:
http://www.casimages.com/img.php?i=131127104739195490.jpg
Sébastien Joly
Bonjour Pascal,
Pour un même compte itunes, vous avez probablement eu plusieurs iDevices. En théorie, il faut sélectionner seulement le device voulut dans le champ de sélection. Sinon par défaut, *^ le filtre all va récupérer tous les devices pour le même compte.
pascal
bonjour
oui tout à fait 😉
Mais nous avons chacun notre propre compte itunes, séparé, avec un seul device dedans.
pascal
bonjour
A priori, j’ai trouvé le probleme !
Pour une raison inconnue, l’iphone de ma femme a été dupliqué dans icloud.
Même référence, même nom, même appareil !
j’ai supprimé le doublon, l’application semble apprécier ! 🙂
Merci pour votre aide, probleme résolu.
Alexis Mermet
Effectivement. quelques mots sur la gestion des comptes iCloud. Lorsqu’un compte iCloud possède plusieurs iDevices, l’application va créer autant de device VERA que de iDevices dans le compte iCloud *et* qui sont conformes a la liste de nom choisis par l’utilisateur. L’utilisateur fait ce choix dans la listbox a droite de la liste numéro 4 dans l’écran de l’article ou bien avec une chaine pattern du genre .* (tout) ou ^iPhone*(tous les iDevices dont le nom commence par iPhone…)
Depuis la version 1.63 (toute fraîche) l’ordre compte et l’on peut donc aussi choisir lequel de ces iDevices sera pris comme device parent (nom prefixé par (*) ) . Doc mise a jour sur http://forum.micasaverde.com/index.php/topic,16907.msg130221.html#msg130221
Alexis Mermet
La v1.67 tiens compte des routes et du mode de deplacement (voiture, pied, velo, ou direct comme avant) pour le calcul de distance . de plus, un seul appel a google pour une hiérarchie de iDevices… En beta test pour le moment.
Yves
Bonjour Sébastien,
Je suis en train d’utiliser ton plugin pour indiquer à mon amie quand je quitte le travail en modifiant la couleur de la led ventrale du Karotz.
J’ai installé et configurer les plugin Ping Sensor et Iphone Detector. Par contre, je ne connais pas la commande à mettre dans les scènes iPhoneDetectorMute et iPhoneDetectorUnMute.
Pourrais tu m’aider ?