Beispiel #1
0
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";
}
Beispiel #2
0
    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__));