public static function health() { $return = array(); $demon_state = self::deamonRunning(); $return[] = array('test' => __('Démon local', __FILE__), 'result' => $demon_state ? __('OK', __FILE__) : __('NOK', __FILE__), 'advice' => $demon_state ? '' : __('Peut être normal si vous êtes en déporté', __FILE__), 'state' => $demon_state); $version = openzwave::getVersion('openzwave'); $return[] = array('test' => __('Version d\'openzwave', __FILE__), 'result' => $version, 'advice' => $demon_state ? '' : __('Mettez à jour les dépendances', __FILE__), 'state' => version_compare(config::byKey('openzwave_version', 'openzwave'), $version, '<=')); $compilation = openzwave::compilationOk(); $return[] = array('test' => __('Compilation', __FILE__), 'result' => $compilation ? __('OK', __FILE__) : __('NOK', __FILE__), 'advice' => $compilation ? '' : __('Mettez à jour les dépendances', __FILE__), 'state' => $compilation); if (config::byKey('jeeNetwork::mode') == 'master') { $cron = cron::byClassAndFunction('openzwave', 'pull'); $running = false; if (is_object($cron)) { $running = $cron->running(); } $return[] = array('test' => __('Tâche Z-Wave', __FILE__), 'result' => $running ? __('OK', __FILE__) : __('NOK', __FILE__), 'advice' => $running ? '' : __('Allez sur la page du moteur des tâches et vérifiez lancer la tache openzwave::pull', __FILE__), 'state' => $running); foreach (jeeNetwork::byPlugin('openzwave') as $jeeNetwork) { try { $demon_state = $jeeNetwork->sendRawRequest('deamonRunning', array('plugin' => 'openzwave')); } catch (Exception $e) { $demon_state = false; } $return[] = array('test' => __('Démon sur ', __FILE__) . $jeeNetwork->getName(), 'result' => $demon_state ? __('OK', __FILE__) : __('NOK', __FILE__), 'advice' => '', 'state' => $demon_state); $version = $jeeNetwork->sendRawRequest('getVersion', array('plugin' => 'openzwave', 'module' => 'openzwave')); $return[] = array('test' => __('Version d\'openzwave sur ', __FILE__) . $jeeNetwork->getName(), 'result' => $version, 'advice' => $demon_state ? '' : __('Mettez à jour les dépendances', __FILE__), 'state' => version_compare(config::byKey('openzwave_version', 'openzwave'), $version, '<=')); $compilation = $jeeNetwork->sendRawRequest('compilationOk', array('plugin' => 'openzwave')); $return[] = array('test' => __('Compilation sur', __FILE__) . $jeeNetwork->getName(), 'result' => $compilation ? __('OK', __FILE__) : __('NOK', __FILE__), 'advice' => $compilation ? '' : __('Mettez à jour les dépendances', __FILE__), 'state' => $compilation); } } return $return; }
function openzwave_update() { if (openzwave::deamonRunning()) { echo 'Stop zwave network...'; openzwave::stopDeamon(); echo "OK\n"; } echo 'Stop cron...'; $cron = cron::byClassAndFunction('openzwave', 'pull'); if (config::byKey('jeeNetwork::mode') != 'slave') { if (!is_object($cron)) { $cron = new cron(); } $cron->setClass('openzwave'); $cron->setFunction('pull'); $cron->setEnable(1); $cron->setDeamon(1); $cron->setDeamonSleepTime(0.5); $cron->setTimeout(1440); $cron->setSchedule('* * * * *'); $cron->save(); $cron->stop(); } else { 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') { config::save('allowStartDeamon', 0, 'openzwave'); openzwave::updateOpenzwave(false); config::save('allowStartDeamon', 1, 'openzwave'); } 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"; }
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"; }
<input type="checkbox" class="configKey bootstrapSwitch" data-l1key="directPush" /> </div> </div> <div class="form-group"> <label class="col-sm-4 control-label">{{Gestion du démon}}</label> <div class="col-sm-8"> <a class="btn btn-success" id="bt_startopenZwaveDemon"><i class='fa fa-play'></i> {{(Re)démarrer}}</a> <a class="btn btn-danger" id="bt_stopopenZwaveDemon"><i class='fa fa-stop'></i> {{Arrêter}}</a> <a class="btn btn-warning" id="bt_launchOpenZwaveInDebug"><i class="fa fa-exclamation-triangle"></i> {{Lancer en mode debug}}</a> </div> </div> </fieldset> </form> <?php if (config::byKey('jeeNetwork::mode') == 'master') { foreach (jeeNetwork::byPlugin('openzwave') as $jeeNetwork) { ?> <form class="form-horizontal slaveConfig" data-slave_id="<?php echo $jeeNetwork->getId(); ?> "> <fieldset> <legend>{{Démon sur l'esclave}} <?php echo $jeeNetwork->getName(); ?> </legend> <div class="form-group"> <label class="col-lg-4 control-label">{{Port clé Z-Wave}}</label> <div class="col-lg-4"> <select class="slaveConfigKey form-control" data-l1key="port"> <option value="none">{{Aucun}}</option>
echo '</select> </div> </div> <div class="form-group"> <label class="col-lg-4 control-label">Mode Debug, cela peut ralentir le systeme</label> <div class="col-lg-4"> <input type="checkbox" class="configKey" data-l1key="enableLogging" /> </div> </div> </fieldset> </form> <form class="form-horizontal"> <fieldset>'; foreach (jeeNetwork::byPlugin('bluetooth') as $jeeNetwork) { $id_sat = $jeeNetwork->getId(); $jsonrpc = $jeeNetwork->getJsonRpc(); echo '<div class="config-remote" id=' . $jeeNetwork->getId() . '>'; echo '<u>Configuration pour le serveur distant : <b>' . $jeeNetwork->getName() . '</b></u>'; echo '<div class="form-group"> <label class="col-lg-4 control-label">Port Bluetooth</label> <div class="col-lg-4"> <select class="configKey form-control portusb" data-l1key="port' . $id_sat . '"> <option value="">Aucun</option>'; foreach ($jeeNetwork->sendRawRequest('jeedom::getUsbMapping') as $name => $value) { echo '<option value="' . $name . '">' . $name . ' (' . $value . ')</option>'; } echo '</select> </div> </div>
public static function syncconfOpenzwave($_background = true) { if (config::byKey('jeeNetwork::mode') == 'master') { foreach (jeeNetwork::byPlugin('openzwave') as $jeeNetwork) { try { $jeeNetwork->sendRawRequest('syncconfOpenzwave', array('plugin' => 'openzwave')); } catch (Exception $e) { } } } log::remove('openzwave_syncconf'); $cmd = 'sudo /bin/bash ' . dirname(__FILE__) . '/../../ressources/syncconf.sh'; if ($_background) { $cmd .= ' >> ' . log::getPathToLog('openzwave_syncconf') . ' 2>&1 &'; } log::add('openzwave_syncconf', 'info', $cmd); shell_exec($cmd); }
<div class="col-lg-4"> <select class="configKey form-control" id="select_mode" data-l1key="externalDeamon"> <option value="0">Local</option> <option value="2">Gateway sur un Jeedom Esclave</option> <option value="1">Jeedom Esclave (Envoyer les données sur le jeedom Master)</option> </select> </div> </div> <div id="div_slave" class="form-group"> <label class="col-lg-4 control-label">Esclave Jeedom :</label> <div class="col-lg-4"> <select id="select_slave" class="configKey form-control" data-l1key="jeeSlave"> <option value="">Aucun</option> <?php foreach (jeeNetwork::byPlugin('mySensors') as $jeeNetwork) { echo '<option value="' . $jeeNetwork->getId() . '">' . $jeeNetwork->getName() . ' (' . $jeeNetwork->getId() . ')</option>'; } ?> </select> </div> </div> <div id="div_local" class="form-group"> <label class="col-lg-4 control-label">Port Gateway :</label> <div class="col-lg-4"> <select id="select_port" class="configKey form-control" data-l1key="usbGateway"> <option value="">Aucun</option> <?php foreach (jeedom::getUsbMapping() as $name => $value) { echo '<option value="' . $name . '">' . $name . ' (' . $value . ')</option>';