コード例 #1
0
 public static function runDeamon($_debug = false)
 {
     if (config::byKey('allowStartDeamon', 'openzwave', 1) == 0) {
         return;
     }
     try {
         self::stopDeamon();
     } catch (Exception $e) {
     }
     log::add('openzwave', 'info', 'Lancement du démon openzwave');
     $port = config::byKey('port', 'openzwave');
     if ($port != 'auto') {
         $port = jeedom::getUsbMapping($port, true);
         if (@(!file_exists($port))) {
             throw new Exception(__('Le port : ', __FILE__) . print_r($port, true) . __(' n\'existe pas', __FILE__));
         }
         exec('sudo chmod 777 ' . $port . ' > /dev/null 2>&1');
     }
     $port_server = config::byKey('port_server', 'openzwave', 8083);
     $openzwave_path = realpath(dirname(__FILE__) . '/../../ressources/zwaveserver');
     $config_path = realpath(dirname(__FILE__) . '/../../ressources/openzwave/config');
     $log = $_debug ? 'Debug' : 'Info';
     $cmd = '/usr/bin/python ' . $openzwave_path . '/openZWave.py --pidfile=/tmp/openzwave.pid --device=' . $port . ' --log=' . $log . ' --port=' . $port_server . ' --config=' . $config_path;
     log::add('openzwave', 'info', 'Lancement démon openzwave : ' . $cmd);
     $result = exec($cmd . ' >> ' . log::getPathToLog('openzwave') . ' 2>&1 &');
     if (strpos(strtolower($result), 'error') !== false || strpos(strtolower($result), 'traceback') !== false) {
         log::add('openzwave', 'error', $result);
         return false;
     }
     $i = 0;
     while ($i < 30) {
         if (self::deamonRunning()) {
             break;
         }
         sleep(1);
         $i++;
     }
     if ($i >= 30) {
         log::add('openzwave', 'error', 'Impossible de lancer le démon openzwave, vérifiez le port', 'unableStartDeamon');
         return false;
     }
     message::removeAll('openzwave', 'unableStartDeamon');
     log::add('openzwave', 'info', 'Démon openzwave lancé');
 }
コード例 #2
0
				<label class="col-lg-4 control-label">{{Dépendance OpenZwave locale}}</label>
				<div class="col-lg-3">
					<a class="btn btn-warning bt_installDeps"><i class="fa fa-check"></i> {{Installer/Mettre à jour}}</a>
				</div>
			</div>';
} else {
    echo '<div class="alert alert danger">{{Jeedom n\'a pas les droits sudo sur votre système, il faut lui ajouter pour qu\'il puisse installer le démon openzwave, voir <a target="_blank" href="https://jeedom.fr/doc/documentation/installation/fr_FR/doc-installation.html#autre">ici</a> partie 1.7.4}}</div>';
}
?>
		<div class="form-group">
			<label class="col-sm-4 control-label">{{Port clé Z-Wave}}</label>
			<div class="col-sm-4">
				<select class="configKey form-control" data-l1key="port">
					<option value="none">{{Aucun}}</option>
					<?php 
foreach (jeedom::getUsbMapping('', true) as $name => $value) {
    echo '<option value="' . $name . '">' . $name . ' (' . $value . ')</option>';
}
?>
				</select>
			</div>
		</div>
		<div class="form-group">
			<label class="col-sm-4 control-label">{{Port du Serveur (laisser vide par défault)}}</label>
			<div class="col-sm-2">
				<input class="configKey form-control" data-l1key="port_server" placeholder="8083" />
			</div>
		</div>
		<div class="form-group">
			<label class="col-sm-4 control-label">{{Mode "direct push" (recommandé)}}</label>
			<div class="col-sm-2">
コード例 #3
0
 public static function runDeamon($_debug = false)
 {
     if (config::byKey('allowStartDeamon', 'openzwave', 1) == 0) {
         return;
     }
     try {
         self::stop();
         self::stopDeamon();
     } catch (Exception $e) {
     }
     log::add('openzwave', 'info', 'Lancement du démon openzwave');
     $port = config::byKey('port', 'openzwave');
     if ($port != 'auto') {
         $port = jeedom::getUsbMapping($port, true);
         if (@(!file_exists($port))) {
             throw new Exception(__('Le port : ', __FILE__) . print_r($port, true) . __(' n\'existe pas', __FILE__));
         }
         exec('sudo chmod 777 ' . $port . ' > /dev/null 2>&1');
     }
     if (config::byKey('jeeNetwork::mode') == 'slave') {
         $serverId = config::byKey('jeeNetwork::slave::id');
         $callback = config::byKey('jeeNetwork::master::ip') . '/plugins/openzwave/core/php/jeeZwave.php';
         $apikey = config::byKey('jeeNetwork::master::apikey');
     } else {
         $serverId = 0;
         $callback = network::getNetworkAccess('internal', 'proto:127.0.0.1:port:comp') . '/plugins/openzwave/core/php/jeeZwave.php';
         $apikey = config::byKey('api');
     }
     $port_server = config::byKey('port_server', 'openzwave', 8083);
     $openzwave_path = dirname(__FILE__) . '/../../ressources/zwaveserver';
     $config_path = dirname(__FILE__) . '/../../ressources/openzwave/config';
     $data_path = dirname(__FILE__) . '/../../data';
     if (!file_exists($data_path)) {
         exec('mkdir ' . $data_path . ' && chmod 775 -R ' . $data_path . ' && chown -R www-data:www-data ' . $data_path);
     }
     $log = $_debug ? 'Debug' : 'Error';
     $cmd = '/usr/bin/python ' . $openzwave_path . '/openZWave.py ';
     $cmd .= ' --pidfile=/tmp/openzwave.pid';
     $cmd .= ' --device=' . $port;
     $cmd .= ' --log=' . $log;
     $cmd .= ' --port=' . $port_server;
     $cmd .= ' --config_folder=' . $config_path;
     $cmd .= ' --data_folder=' . $data_path;
     $cmd .= ' --callback=' . $callback;
     $cmd .= ' --apikey=' . $apikey;
     $cmd .= ' --serverId=' . $serverId;
     log::add('openzwave', 'info', 'Lancement démon openzwave : ' . $cmd);
     $result = exec($cmd . ' >> ' . log::getPathToLog('openzwave') . ' 2>&1 &');
     if (strpos(strtolower($result), 'error') !== false || strpos(strtolower($result), 'traceback') !== false) {
         log::add('openzwave', 'error', $result);
         return false;
     }
     $i = 0;
     while ($i < 30) {
         if (self::deamonRunning()) {
             break;
         }
         sleep(1);
         $i++;
     }
     if ($i >= 10) {
         log::add('openzwave', 'error', 'Impossible de lancer le démon openzwave, vérifiez le port', 'unableStartDeamon');
         return false;
     }
     message::removeAll('openzwave', 'unableStartDeamon');
     log::add('openzwave', 'info', 'Démon openzwave lancé');
 }
コード例 #4
0
ファイル: jeeApi.php プロジェクト: GaelGRIFFON/core
 if ($jsonrpc->getMethod() == 'message::removeAll') {
     message::removeAll();
     $jsonrpc->makeSuccess('ok');
 }
 if ($jsonrpc->getMethod() == 'message::all') {
     $jsonrpc->makeSuccess(utils::o2a(message::all()));
 }
 /*             * ************************Interact*************************** */
 if ($jsonrpc->getMethod() == 'interact::tryToReply') {
     $jsonrpc->makeSuccess(interactQuery::tryToReply($params['query']));
 }
 /*             * ************************USB mapping*************************** */
 if ($jsonrpc->getMethod() == 'jeedom::getUsbMapping') {
     $name = isset($params['name']) ? $params['name'] : '';
     $gpio = isset($params['gpio']) ? $params['gpio'] : false;
     $jsonrpc->makeSuccess(jeedom::getUsbMapping($name, $gpio));
 }
 /*             * ************************Plugin*************************** */
 if ($jsonrpc->getMethod() == 'plugin::install') {
     try {
         $market = market::byId($params['plugin_id']);
     } catch (Exception $e) {
         $market = market::byLogicalId($params['plugin_id']);
     }
     if (!is_object($market)) {
         throw new Exception(__('Impossible de trouver l\'objet associé : ', __FILE__) . $params['plugin_id']);
     }
     if (!isset($params['version'])) {
         $params['version'] = 'stable';
     }
     $market->install($params['version']);
コード例 #5
0
 public static function deamon_start($_debug = false)
 {
     self::deamon_stop();
     $deamon_info = self::deamon_info();
     if ($deamon_info['launchable'] != 'ok') {
         throw new Exception(__('Veuillez vérifier la configuration', __FILE__));
     }
     log::remove('openzwavecmd');
     $port = config::byKey('port', 'openzwave');
     if ($port != 'auto') {
         $port = jeedom::getUsbMapping($port);
     }
     if (config::byKey('jeeNetwork::mode') == 'slave') {
         $serverId = config::byKey('jeeNetwork::slave::id');
         $callback = config::byKey('jeeNetwork::master::ip') . '/plugins/openzwave/core/php/jeeZwave.php';
         $apikey = config::byKey('jeeNetwork::master::apikey');
     } else {
         $serverId = 0;
         $callback = network::getNetworkAccess('internal', 'proto:127.0.0.1:port:comp') . '/plugins/openzwave/core/php/jeeZwave.php';
         $apikey = config::byKey('api');
     }
     $port_server = config::byKey('port_server', 'openzwave', 8083);
     $openzwave_path = dirname(__FILE__) . '/../../ressources/zwaveserver';
     $config_path = dirname(__FILE__) . '/../../ressources/openzwave/config';
     $data_path = dirname(__FILE__) . '/../../data';
     if (!file_exists($data_path)) {
         exec('mkdir ' . $data_path . ' && chmod 775 -R ' . $data_path . ' && chown -R www-data:www-data ' . $data_path);
     }
     $log = $_debug ? 'Debug' : 'Error';
     $cmd = '/usr/bin/python ' . $openzwave_path . '/openZWave.py ';
     $cmd .= ' --pidfile=/tmp/openzwave.pid';
     $cmd .= ' --device=' . $port;
     $cmd .= ' --log=' . $log;
     $cmd .= ' --port=' . $port_server;
     $cmd .= ' --config_folder=' . $config_path;
     $cmd .= ' --data_folder=' . $data_path;
     $cmd .= ' --callback=' . $callback;
     $cmd .= ' --apikey=' . $apikey;
     $cmd .= ' --serverId=' . $serverId;
     log::add('openzwavecmd', 'info', 'Lancement démon openzwave : ' . $cmd);
     $result = exec($cmd . ' >> ' . log::getPathToLog('openzwavecmd') . ' 2>&1 &');
     if (strpos(strtolower($result), 'error') !== false || strpos(strtolower($result), 'traceback') !== false) {
         log::add('openzwavecmd', 'error', $result);
         return false;
     }
     $i = 0;
     while ($i < 30) {
         $deamon_info = self::deamon_info();
         if ($deamon_info['state'] == 'ok') {
             break;
         }
         sleep(1);
         $i++;
     }
     if ($i >= 30) {
         log::add('openzwavecmd', 'error', 'Impossible de lancer le démon openzwave, relancer le démon en debug et vérifiez la log', 'unableStartDeamon');
         return false;
     }
     message::removeAll('openzwave', 'unableStartDeamon');
     log::add('openzwavecmd', 'info', 'Démon openzwave lancé');
 }
コード例 #6
0
 public static function runDeamon()
 {
     log::add('mySensors', 'info', 'Lancement du démon mySensors');
     $modem_serie_addr = config::byKey('usbGateway', 'mySensors');
     if ($modem_serie_addr == "serie") {
         $usbGateway = config::byKey('modem_serie_addr', 'mySensors');
     } else {
         $usbGateway = jeedom::getUsbMapping(config::byKey('usbGateway', 'mySensors'));
     }
     if ($modem_serie_addr == "network") {
         $gateMode = "Network";
         $netAd = explode(":", config::byKey('gateway_addr', 'mySensors'));
         $usbGateway = $netAd[0];
         $gatePort = $netAd[1];
     } else {
         $gateMode = "Serial";
         $gatePort = "";
     }
     if ($usbGateway == '') {
         throw new Exception(__('Le port : ', __FILE__) . $port . __(' n\'éxiste pas', __FILE__));
     }
     if (config::byKey('jeeNetwork::mode') == 'slave') {
         //Je suis l'esclave
         $url = 'http://' . config::byKey('jeeNetwork::master::ip') . '/core/api/jeeApi.php?api=' . config::byKey('jeeNetwork::master::apikey');
     } else {
         if (stripos(config::byKey('internalAddr'), 'jeedom') !== FALSE) {
             //on est pas sur une Mini
             $jeeurl = "http://127.0.0.1/jeedom";
         } else {
             $jeeurl = "http://127.0.0.1";
         }
         $url = $jeeurl . '/core/api/jeeApi.php?api=' . config::byKey('api');
     }
     $sensor_path = realpath(dirname(__FILE__) . '/../../node');
     $cmd = 'nice -n 19 node ' . $sensor_path . '/mysensors.js ' . $url . ' ' . $usbGateway . ' ' . $gateMode . ' ' . $gatePort;
     log::add('mySensors', 'info', 'Lancement démon mySensors : ' . $cmd);
     $result = exec('nohup ' . $cmd . ' >> ' . log::getPathToLog('mySensors') . ' 2>&1 &');
     if (strpos(strtolower($result), 'error') !== false || strpos(strtolower($result), 'traceback') !== false) {
         log::add('mySensors', 'error', $result);
         return false;
     }
     sleep(2);
     if (!self::deamonRunning()) {
         sleep(10);
         if (!self::deamonRunning()) {
             log::add('mySensors', 'error', 'Impossible de lancer le démon mySensors, vérifiez le port', 'unableStartDeamon');
             return false;
         }
     }
     message::removeAll('mySensors', 'unableStartDeamon');
     log::add('mySensors', 'info', 'Démon mySensors lancé');
 }