function openzwave_update() { log::add('openzwave', 'error', __('Après toute installation/mise à jour pensez bien à mettre à jour les dépendances Openzwave (voir documentation)', __FILE__)); if (!file_exists(dirname(__FILE__) . '/../data')) { mkdir(dirname(__FILE__) . '/../data'); } shell_exec('cp -R /opt/python-openzwave/xml_backups ' . dirname(__FILE__) . '/../data'); shell_exec('cp -R /opt/python-openzwave/zwcfg_*.xml ' . dirname(__FILE__) . '/../data'); shell_exec('rm -rf /opt/python-openzwave/xml_backups'); shell_exec('rm -rf /opt/python-openzwave/zwcfg_*.xml'); config::save('allowStartDeamon', 0, 'openzwave'); echo 'Stop zwave network...'; openzwave::stop(); openzwave::stopDeamon(); echo "OK\n"; echo 'Stop cron...'; $cron = cron::byClassAndFunction('openzwave', 'pull'); if (is_object($cron)) { $cron->remove(); } echo "OK\n"; echo 'Check zwave system...'; if (count(eqLogic::byType('zwave')) > 0) { log::add('openzwave', 'error', 'Attention vous etes sur la nouvelle version d\'openzwave, des actions de votre part sont necessaire merci d\'aller voir https://jeedom.fr/blog/?p=1576'); } if (config::byKey('port', 'openzwave', 'none') != 'none') { if (method_exists('openzwave', 'getVersion')) { if (version_compare(config::byKey('openzwave_version', 'openzwave'), openzwave::getVersion('openzwave'), '>')) { if (jeedom::getHardwareName() == 'Jeedomboard') { openzwave::updateOpenzwave(false); } else { log::add('openzwave', 'error', __('Attention votre version d\'openzwave est dépassée sur le démon local, il faut ABSOLUMENT la mettre à jour', __FILE__)); } } } } if (config::byKey('jeeNetwork::mode') == 'master') { foreach (jeeNetwork::byPlugin('openzwave') as $jeeNetwork) { try { if ($jeeNetwork->configByKey('port', 'openzwave', 'none') != 'none') { if (version_compare($jeeNetwork->sendRawRequest('getVersion', array('plugin' => 'openzwave', 'module' => 'openzwave')), openzwave::getVersion('openzwave'), '>')) { log::add('openzwave', 'error', __('Attention votre version d\'openzwave est dépassée sur', __FILE__) . ' ' . $jeeNetwork->getName() . ' ' . __('il faut ABSOLUMENT la mettre à jour', __FILE__)); } } } catch (Exception $e) { } } } echo "OK\n"; echo 'Redemarrage zwave network...'; try { config::save('allowStartDeamon', 1, 'openzwave'); openzwave::runDeamon(); } catch (Exception $e) { } echo "OK\n"; }
echo 'Clef API non valide, vous n\'etes pas autorisé à effectuer cette action (jeeZwave)'; die; } if (isset($_GET['test'])) { echo 'OK'; die; } if (isset($_GET['stopOpenzwave'])) { config::save('allowStartDeamon', 0, 'openzwave'); openzwave::stopDeamon(); die; } if (isset($_GET['startOpenzwave'])) { log::add('openzwave', 'debug', 'Restart Zwave deamon'); config::save('allowStartDeamon', 1, 'openzwave'); openzwave::runDeamon(); openzwave::getVersion(); die; } $results = json_decode(file_get_contents("php://input"), true); if (!is_array($results)) { die; } if (isset($results['device'])) { foreach ($results['device'] as $node_id => $datas) { $eqLogic = openzwave::getEqLogicByLogicalIdAndServerId($node_id, $results['serverId']); if (is_object($eqLogic)) { if (strpos($eqLogic->getConfiguration('fileconf'), 'fibaro.fgs221.fil.pilote') !== false) { foreach ($eqLogic->getCmd('info', '0&&1.0x0', null, true) as $cmd) { if ($cmd->getConfiguration('value') == 'pilotWire') { $cmd->event($cmd->getPilotWire());
$jsonrpc = $jeeNetwork->getJsonRpc(); if (!$jsonrpc->sendRequest('runDeamon', array('plugin' => 'openzwave', 'debug' => init('debug', 0)))) { throw new Exception($jsonrpc->getError(), $jsonrpc->getErrorCode()); } } else { config::save('allowStartDeamon', 1, 'openzwave'); $port = config::byKey('port', 'openzwave', 'none'); if ($port == 'none') { ajax::success(); } openzwave::stopDeamon(); if (openzwave::deamonRunning()) { throw new Exception(__('Impossible d\'arrêter le démon', __FILE__)); } log::clear('openzwave'); openzwave::runDeamon(init('debug', 0)); } ajax::success(); } if (init('action') == 'rewriteNginxAndRestartCron') { openzwave::removeNginxRedirection(); openzwave::listServerZwave(); $cron = cron::byClassAndFunction('openzwave', 'pull'); if (is_object($cron)) { $cron->stop(); } ajax::success(); } if (init('action') == 'syncEqLogicWithOpenZwave') { foreach (openzwave::listServerZwave() as $serverID => $server) { if (isset($server['name'])) {
} $params = $jsonrpc->getParams(); if ($jsonrpc->getMethod() == 'deamonRunning') { $jsonrpc->makeSuccess(openzwave::deamonRunning()); } if ($jsonrpc->getMethod() == 'runDeamon') { config::save('allowStartDeamon', 1, 'openzwave'); $port = config::byKey('port', 'openzwave', 'none'); if ($port == 'none') { ajax::success(); } openzwave::stopDeamon(); if (openzwave::deamonRunning()) { throw new Exception(__('Impossible d\'arrêter le démon', __FILE__)); } log::clear('openzwave'); $params['debug'] = !isset($params['debug']) ? 0 : $params['debug']; openzwave::runDeamon($params['debug']); $jsonrpc->makeSuccess('ok'); } if ($jsonrpc->getMethod() == 'stopDeamon') { config::save('allowStartDeamon', 0, 'openzwave'); $jsonrpc->makeSuccess(openzwave::stopDeamon()); } if ($jsonrpc->getMethod() == 'getVersion') { $jsonrpc->makeSuccess(openzwave::getVersion($params['module'])); } if ($jsonrpc->getMethod() == 'compilationOk') { $jsonrpc->makeSuccess(openzwave::compilationOk()); } throw new Exception(__('Aucune methode correspondante pour le plugin openzwave : ' . $jsonrpc->getMethod(), __FILE__));