Actualités | Audio/Vidéo | Evènements | DIY | Domotique | Informatique | Maison | Mobile | Sécurité

Géolocalisez vos proches sur l'eedomus

Envoyer Imprimer PDF
Note des utilisateurs: / 11
MauvaisTrès bien 
Index de l'article
Géolocalisez vos proches sur l'eedomus
Configuration Latitude
Configuration eeDomus
Script Php
Dans l'eeDomus
En conclusion
Toutes les pages

Ces derniers temps, je vous parle beaucoup de l'eeDomus de Connected Object. Aujourd'hui, je vous propose un article pour illustrer comment l'intégrer au service Google Latitude.

L'eeDomus permet de créer des périphériques GPS. Ces périphériques prennent des valeurs "latitude,longitude" que vous renseignez à partir de son API. Si vous avez un smartphone 3G, vous pouvez souscrire gratuitement au service Google Latitude et moyennant un petit script, vous indiquez à l'eeDomus votre position Google Latitude.

Mais alors, à quoi ça sert ? Diverses utilisations sont envisageables :

1/ Suivre vos enfants et dormir tranquille; 2/ Suivre votre voiture; 3/ votre femme; 4/ votre belle mère ! Bref à vous de voir ... On peut aussi imaginer des scénarios ou 5/ votre domotique réagit différemment selon si vous êtes plus ou moins proche de votre domicile.

Le principe

Le principe est simple, Google Latitude prend régulièrement la position du téléphone 3G. Votre téléphone devient le GPS dont vous avez besoin pour charger votre eeDomus. Je vous propose ici un script php que vous pouvez installer sur un PC, un NAS, un routeur ou sur votre hébergement web. Ce script interrogera régulièrement Google Latitude et enverra les coordonnées de votre position sur votre eeDomus.

Au final, l'eeDomus, vous résuméra les différentes positions, jour après jour. Ces informations sont confidentielles et ne seront connues que des utilisateurs eeDomus.

Regardons les différentes configurations à mettre en place ...


Configuration Google Latitude

Pour commencer, il vous faut un compte Google Latitude. C'est un service entièrement gratuit. Inscrivez vous et installez l'application proposée sur votre mobile (iOS ou Android ou Blackberry). Ensuite, connectez vous sur http://www.google.fr/latitude pour configurer votre compte.

A gauche de votre écran, il y a un menu. Sélectionnez "Paramètres de l'application".

Vous arrivez ensuite sur une page qui permet d'obtenir votre UserID. Cette clé est nécessaire pour pourvoir télécharger régulièrement votre position.

Dans la section "Badge Public Google Latitude", sélectionnez "Activez les informations de localisation...". Google latitude va vous proposer une portion de code à destination de votre site. Vous pouvez effectivement utiliser cette portion de code et la mettre dans vos pages HTML. Mais je vous déconseille d'utiliser cette portion de code sur un site public car alors n'importe qui pourra la réutiliser pour vous suivre ...

Dans le cadre de cet article, je ne vais pas utiliser cette portion de code, mais nous avons besoin:

  1. de laisser l'option "Activez les informations de localisation..." pour utiliser l'API Latitude
  2. de récupérer votre UserID (numéro que j'ai colorié en orange sur l'image ci-dessus) pour lire vos coordonnées

Récupérez ce UserID et continuez la lecture de cet article.

C'est fini pour Google Latitude. Vous pouvez fermer le site et continuer la lecture de l'article ...

 


Configuration eeDomus

Sur l'eeDomus, vous devez aller dans le panneau de configuration puis cliquer sur "Ajouter un périphérique". Puis cliquez sur le bouton ci-dessous "Ajouter un autre type de périphérique".

Il faut ensuite sélectionner "Traceur GPS Expérimental" afin de créer votre périphérique.

Sur la page de configuration du périphérique, vous devez entrer un nom, un numéro de mobile. Le numéro de mobile est facultatif pour notre exemple. En revanche, il vous faudra noter le Code API. C'est ce que j'appelle plus loin le PeriphID. C'est le numéro que nous allons utiliser via l'API pour charger les coordonnées dans l'eeDomus.

N'oubliez pas de sauver pour continuer ...

Voilà, à ce stade votre eeDomus est prête à recevoir les coordonnées.


Comment récupérer la position

Google Latitude propose une url pour télécharger les informations de position (coordonnées, ville, etc).

Si vous avez votre UserId, en tapant l'url suivante vous obtiendrez l'information:

http://www.google.com/latitude/apps/badge/api?user=votre-userid8&type=json

L'url vous renverra une information de ce type:

{ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": {"type": "Point", "coordinates": [ma longitude, ma latitude]},
"properties": {
"id": "mon userid latitude",
"accuracyInMeters": 1869,
"timeStamp": 1330254523,
"reverseGeocode": "Blagnac, France",
"photoUrl": "http://www.google.com/latitude/apps/badge/api?type=photo&photo=yrKBuTUBAAA.CAf6OpTELUrnR200epjFHQ.BPlEkmVG_z6TXxqcvQD_FQ",
"photoWidth": 96,
"photoHeight": 96,
"placardUrl": "http://www.google.com/latitude/apps/badge/api?type=photo_placard&photo=yrKBuTUBAAA.CAf6OpTELUrnR200epjFHQ.BPlEkmVG_z6TXxqcvQD_FQ&moving=false&stale=true&lod=1&format=png",
"placardWidth": 56,
"placardHeight": 59
}
}
]
}

Il s'agit d'un format JSON qui est directement utilisable dans la plupart des langages Php, Javascript. Je vous explique plus bas comme le lire avec l'eeDomus.

 

Comment charger l'eeDomus

Pour charger l'eeDomus, il faut utiliser son API. L'aide eeDomus est très bien faite. Je ne vais pas vous expliquer comment faire, car j'ai déjà décrit celà dans plusieurs de mes articles précédents. Je vous propose de vous y reporter si vous avez des difficultés.

Dans le script que je vous propose, j'utilise cette url de l'API eeDomus:

http://api.eedomus.com/set?action=periph.value&api_user=votre_api_user&api_secret=votre_api_secret&value=lat,lon&periph_id=votre_periphId

Les informations en rouge doivent être remplacées pour que la coordonnée soit bien chargée.

 

Un script Php pour automatiser le transfert

Finalement, j'ai tout mis dans un script Php. La première partie vérifie vos paramètres. La seconde partie lit vos coordonnées Google Latitude et la dernière partie charge l'eeDomus.

Avant d'utiliser ce script, n'oubliez pas de changer les valeurs en rouge par vos propres paramètres. Ensuite, il vous faudra installer ce script sur une machine (PC, serveur, etc) avec Php. Ce script devra être appelé régulièrement afin que l'eeDomus ait l'information la plus fraiche possible.

<?php
//                                           -
// Domotics
// DHAS-getposition v1
// 24 Feb 2012
//                                           -
// Changes 
// v1.0 - get json from latitude and push it to eedomus
//                                           -

header('Content-Type: text/plain');

echo "Parametres : En cours ...\n";
$api_user	= "mon api user eedomus";
$api_secret	= "mon api secret eedomus";

if ($api_user == "") {
	echo 'API_USER attendu ...\n';
	exit('API_USER attendu ...');
}

if ($api_secret == "") {
	echo 'API_SECRET attendu ...\n';
	exit('API_SECRET attendu ...');
}

if ( is_numeric( $argv[1] ) )
	$userId = $argv[1];
else {
	echo 'Param 1 non valide ... UserId attendu ( Rappel : php dhas-position-latitude2eedomus.php UserId PeripId )\n';
	exit('Param 1 non valide ... UserId attendu');
}
	
if ( is_numeric( $argv[2] ) )
	$periphId = $argv[2];
else {
	echo 'Param 2 non valide ... PeriphId attendu ( Rappel : php dhas-position-latitude2eedomus.php UserId PeripId )\n';
	exit('Param 2 non valide ... PeriphId attendu');
}

echo "Parametres : OK.\n";

// Telechargement de la position
echo "Position : En cours ...\n";
$url = 'http://www.google.com/latitude/apps/badge/api?user='.$userId.'&type=json';
 
$content = file_get_contents( $url );
 
$json = json_decode( $content );
 
$coord = $json--->features[0]->geometry->coordinates;
$timeStamp = $json->features[0]->properties->timeStamp;
 
if ( ! $coord ) {
	echo 'Utilisateur inconnu dans Google Latitude ...\n';
	exit('Utilisateur inconnu dans Google Latitude ...');
}

$date = date( 'd/m/Y H:i:s', $timeStamp );
$lat = $coord[1];
$lon = $coord[0];
 
echo "Derniere position = ".$date." : ".$lat." x ".$lon." \n";
echo "Position : OK.\n";

// Chargement de la position das l'eedomus
echo "Chargement eeDomus : En cours ...\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.eedomus.com/set?action=periph.value&api_user=".$api_user."&api_secret=".$api_secret."&value=".$lat.",".$lon."&periph_id=".$periphId);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
echo "Chargement eeDomus : OK.\n";
?>

J'ai installé ce script sur mon PC linux. Pour l'exécuter régulièrement, j'ai placé l'appel dans la crontab de la machine. J'utilise la crontab suivante:

*/5 * * * * /usr/bin/php /home/domotics/scripts/dhas-position-latitude2eedomus.php monuseridlatitude 4309 >> /home/domotics/log/dhas-position-latitude2eedomus.log 2>> /home/domotics/log/dhas-position-latitude2eedomus.log

La crontab s'active toutes les 5 minutes. Il ne faut pas oublier de changer les deux valeurs en rouges:

  • monuseridlatitude à remplacer par votre UserId Google Latitude (voir au début de l'article)
  • 4309 à remplacer par votre Code API de votre périphérique eeDomus

C'est terminé, tout est en place. Regardons ce que ça donne ...

 


Ca donne quoi dans l'eedomus

Dans l'eeDomus, il ya une nouvelle section qui s'appelle Geolocalisation. Si vous cliquez dessus, vous verrez tous vos périphériques GPS. En haut de chaque carte, il y a un filtre qui permet de visualiser une journée. L'eeDomus vous permet donc de revenir sur les lieux visités la veille.

Chaque position est matérialisée par un cercle rouge. Les différentes positions sont reliées par un trait qui montre le déplacement à vol d'oiseau.

Le filtre est simple à utiliser. Il n'est pas possible de cumuler l'affichage de plusieurs journées. Sur la droite, vous avez une loupe qui permet d'accéder aux coordonnées sous forme d'un tableau.

Enfin, je n'ai pas réussi à visualiser plusieurs périphériques GPS en même temps. Je pense qu'il s'agit d'un bug car la seconde carte ne s'affiche pas. Les équipes de développement de Connected Object le corrigeront probablement bientot.

 


Les points qui pourraient être améliorés

Après quelques jours d'utilisation, je constate quelques points qui pourraient être améliorés du coté de l'eeDomus:

  1. Les cartes sont trop petites, il faudrait pouvoir changer la taille selon notre besoin
  2. Les fonctions de zoom et de recherche Google Maps pourraient être ajoutées
  3. Il n'est pas possible de faire "des règles eeDomus" basées sur la position
  4. Il n'est pas possible de gérer plusieurs périphériques GPS. A partir du second, l'eeDomus n'affiche plus la carte.
  5. Il est dommage d'avoir à utiliser un script php pour réaliser cette intégration. Si l'eeDomus savait lire des requêtes http de type json, on aurait une intégration directe. Le json ne servirait pas que pour cet exemple, c'est à mon avis une évolution essentielle pour l'intégration de toutes requêtes http.

Ces points seront certainement améliorés dans les semaines à venir. Laissons eeDomus prioriser leur développement en fonction des différentes demandes.

 

En conclusion

Je trouve cette fonctionnalité intéressante. A l'heure actuelle, c'est assez expérimental car les cartes ne sont pas utilisables (trop petites), et on ne peut pas créer de règles sur la localisation. Mais j'espère que très bientot, on profitera de ces fonctions.

Personnellement, je voudrais m'en servir pour suivre mes enfants. Grâce à Free mobile, on commence à avoir des forfait low costs, on peut donc imaginer des scénarios pour savoir s'ils restent à la maison le mercredi après midi, ... Ce qui est génial, c'est que les enfants ne sortent pas sans leur téléphone :-) Il me tardent vraiment qu'on puisse programmer des règles sur la localisation. Je vous en reparlerais à ce moment là.

Par contre, la géolocalisation n'est pas très précise. Il vous faudra activer le GPS du téléphone pour améliorer la précision ...

D'autres photos sont disponibles sur l'album Picasa de cet article.

 

Cet article vous est proposé par Domotics: Domotics habite dans la région Toulousaine. Il est ingénieur en informatique et électronicien amateur. La domotique est pour lui une passion qu'il pratique depuis 1999. En 2003, il décide de partager ses expériences sur le magazine et le forum de touteladomotique.com.

En 2014, il crée sa société de conseils en Domotique ID2domotique.com et sa boutique en ligne laboutiquededomotique.com pour promouvoir la domotique sur mesure ... Profitez de l'expérience et l'expertise de Domotics en faisant appel à ses nouveaux services.

 

Ils en parlent aussi

Mise à jour le Mercredi, 15 Août 2012 15:32  

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Recherche

Les Flux RSS de TLD
Instagram

Produits Partenaires

GCE Electronics est partenaire de Touteladomotique.com RFXCOM.com est partenaire de Touteladomotique.com



Liens Utiles

Boutiques Partenaires

Liens Utiles

Un don pour TLD ?

Pourquoi faire un don ?

Publicité

Espaces publicitaires à louer
Contactez-nous

Connexion