Skip to content

Commit e59f01b

Browse files
authored
Merge pull request #41 from jeedom/beta
Add Geoloc
2 parents f072719 + 7b7cc6b commit e59f01b

2 files changed

Lines changed: 63 additions & 0 deletions

File tree

core/api/mobile.api.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,5 +167,24 @@
167167
$jsonrpc->makeSuccess(mobile::getSaveJson($params['Iq'], $params['type']));
168168
}
169169

170+
if ($jsonrpc->getMethod() == 'geoloc'){
171+
log::add('mobile', 'debug', 'Geoloc '. $params['id'] .' > ' . $params['name'] .' > ' .$params['value']);
172+
mobile::EventGeoloc($params);
173+
$jsonrpc->makeSuccess();
174+
}
175+
176+
if ($jsonrpc->getMethod() == 'geolocSave'){
177+
log::add('mobile', 'debug', 'Geoloc ADD '. $params['id'] .' > ' . $params['name']);
178+
mobile::SaveGeoloc($params);
179+
$jsonrpc->makeSuccess();
180+
}
181+
182+
if ($jsonrpc->getMethod() == 'geolocDel'){
183+
log::add('mobile', 'debug', 'Geoloc DEL '. $params['id'] .' > ' . $params['name']);
184+
mobile::DelGeoloc($params);
185+
$jsonrpc->makeSuccess();
186+
}
187+
188+
170189
throw new Exception(__('Aucune demande', __FILE__));
171190
?>

core/class/mobile.class.php

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,50 @@ public static function notification($arn, $os, $titre, $message, $badge = 'null'
470470
curl_close($ch);
471471
log::add('mobile', 'debug', 'notification resultat > ' . $server_output);
472472
}
473+
474+
public function SaveGeoloc($geoloc){
475+
log::add('mobile', 'debug', '|-----------------------------------');
476+
log::add('mobile', 'debug', '|--debut de la fonction SaveGeoLoc--');
477+
log::add('mobile', 'debug', '|-----------------------------------');
478+
log::add('mobile', 'debug', '|');
479+
$eqLogicMobile = eqLogic::byLogicalId($geoloc['iQ'], 'mobile');
480+
log::add('mobile', 'debug', '| iQ = '.$geoloc['iQ']);
481+
if(isset($eqLogicMobile)){
482+
log::add('mobile', 'debug', '| Mobile bien trouvé dans cette Jeedom');
483+
log::add('mobile', 'debug', '| Objet > '.$eqLogicMobile->getId());
484+
}
485+
$cmdgeoloc = cmd::byEqLogicIdAndLogicalId($eqLogicMobile->getId(),'geoId_'.$geoloc['id']);
486+
if(!is_object($cmdgeoloc)){
487+
$cmdgeoloc = new mobileCmd();
488+
$cmdgeoloc->setLogicalId('geoId_'.$geoloc['id']);
489+
$cmdgeoloc->setEqLogic_id($eqLogicMobile->getId());
490+
$cmdgeoloc->setType('info');
491+
$cmdgeoloc->setSubType('binary');
492+
$cmdgeoloc->setIsVisible(1);
493+
}
494+
$cmdgeoloc->setName(__($geoloc['name'], __FILE__));
495+
$cmdgeoloc->setConfiguration('latitude', $geoloc['latitude']);
496+
$cmdgeoloc->setConfiguration('longitude', $geoloc['longitude']);
497+
$cmdgeoloc->setConfiguration('subtitle', $geoloc['subtitle']);
498+
$cmdgeoloc->setConfiguration('radius', $geoloc['radius']);
499+
$cmdgeoloc->save();
500+
}
501+
502+
public function DelGeoloc($geoloc){
503+
$eqLogicMobile = eqLogic::byLogicalId($geoloc['iQ'], 'mobile');
504+
$cmdgeoloc = cmd::byEqLogicIdAndLogicalId($eqLogicMobile->getId(),'geoId_'.$geoloc['id']);
505+
if(isset($cmdgeoloc)){
506+
$cmdgeoloc->remove();
507+
}
508+
}
509+
510+
public function EventGeoloc($geoloc){
511+
$eqLogicMobile = eqLogic::byLogicalId($geoloc['iQ'], 'mobile');
512+
$cmdgeoloc = cmd::byEqLogicIdAndLogicalId($eqLogicMobile->getId(),'geoId_'.$geoloc['id']);
513+
if(isset($cmdgeoloc)){
514+
$cmdgeoloc->event($geoloc['value']);
515+
}
516+
}
473517

474518
public function postInsert() {
475519
$key = config::genKey(32);

0 commit comments

Comments
 (0)