public function preSave() { $this->setDatetime(date('Y-m-d H:i:s')); if ($this->getId() == '') { $connection = connection::byIp($this->getIp()); if (is_object($connection)) { $this->setId($connection->getId()); } } if ($this->getLocalisation() == '' && !netMatch('192.*.*.*', $this->getIp()) && !netMatch('127.0.0.1', $this->getIp()) && !netMatch('10.*.*.*', $this->getIp())) { try { $http = new com_http('http://ipinfo.io/' . $this->getIp()); $http->setLogError(false); $details = json_decode($http->exec(1, 2), true); $localisation = ''; if (is_array($details)) { if (isset($details['country'])) { $localisation .= $details['country'] . ' - '; } if (isset($details['region'])) { $localisation .= $details['region'] . ' - '; } if (isset($details['postal'])) { $localisation .= ' (' . $details['postal'] . ') '; } if (isset($details['city'])) { $localisation .= $details['city'] . ' - '; } $this->setLocalisation($localisation); if (isset($details['loc'])) { $this->setInformations('coordonate', $details['loc']); } if (isset($details['org'])) { $this->setInformations('org', $details['org']); } if (isset($details['hostname'])) { $this->setInformations('hostname', $details['hostname']); } } } catch (Exception $e) { $this->setLocalisation('Unknow'); } } }
public function pushUrl($_value) { $url = $this->getConfiguration('jeedomPushUrl'); if ($url == '') { $url = config::byKey('cmdPushUrl'); } if ($url == '') { return; } $replace = array('#value#' => $_value, '#cmd_name#' => $this->getName(), '#cmd_id#' => $this->getId(), '#humanname#' => $this->getHumanName()); $url = str_replace(array_keys($replace), $replace, $url); log::add('event', 'event', __('Appels de l\'URL de push pour la commande ', __FILE__) . $this->getHumanName() . ' : ' . $url); $http = new com_http($url); $http->setLogError(false); try { $http->exec(); } catch (Exception $e) { log::add('cmd', 'error', __('Erreur push sur : ', __FILE__) . $url . ' => ' . $e->getMessage()); } }