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

Géolocalisez vos proches sur l'eedomus - Script Php

Envoyer Imprimer PDF
Note des utilisateurs: / 9
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

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 ...

 



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