* GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Jeedom. If not, see <http://www.gnu.org/licenses/>. */ if (!isConnect('admin')) { throw new Exception('{{401 - Accès non autorisé}}'); } if (init('id') == '') { throw new Exception('{{EqLogic ID ne peut être vide}}'); } $eqLogic = eqLogic::byId(init('id')); if (!is_object($eqLogic)) { throw new Exception('{{EqLogic non trouvé}}'); } $device = zwave::devicesParameters($eqLogic->getConfiguration('device')); sendVarToJS('configureDeviceId', init('id')); sendVarToJS('configureDeviceLogicalId', $eqLogic->getLogicalId()); $sameDevices = $eqLogic->getSameDevice(); $info = $eqLogic->getInfo(); ?> <div id='div_configureDeviceAlert' style="display: none;"></div> <ul class="nav nav-tabs" role="tablist"> <li class="active"><a href="#tab_general" role="tab" data-toggle="tab">{{Général}}</a></li> <li><a href="#tab_group" role="tab" data-toggle="tab">{{Groupe}}</a></li> <?php if (file_exists(dirname(__FILE__) . '/../../core/config/devices/' . $eqLogic->getConfiguration('device') . '.php')) { echo '<li><a href="#tab_spe" role="tab" data-toggle="tab">{{Spécifique}}</a></li>'; } ?> </ul>
public function getDeviceConfiguration($_forcedRefresh = false, $_parameters_id = null) { if ($_parameters_id == null) { $device = zwave::devicesParameters($this->getConfiguration('device')); if (!is_array($device) || count($device) == 0) { throw new Exception('Equipement inconnu : ' . $this->getConfiguration('device')); } } else { $device = array('parameters' => array($_parameters_id => array())); } $needRefresh = false; if ($_forcedRefresh) { $needRefresh = true; foreach ($device['parameters'] as $id => $parameter) { $http = new com_http(self::makeBaseUrl() . '/ZWaveAPI/Run/devices[' . $this->getLogicalId() . '].commandClasses[0x70].Get(' . $id . ')'); self::handleError($http->exec()); } sleep(1); } $return = array(); $http = new com_http(self::makeBaseUrl() . '/ZWaveAPI/Run/devices[' . $this->getLogicalId() . '].commandClasses[0x70].data'); $data = json_decode(self::handleError($http->exec()), true); foreach ($device['parameters'] as $id => $parameter) { if (isset($data[$id])) { $return[$id] = array(); $return[$id]['value'] = $data[$id]['val']['value']; $return[$id]['datetime'] = date('Y-m-d H:i:s', $data[$id]['val']['updateTime']); $return[$id]['size'] = $data[$id]['size']['value']; } else { $needRefresh = true; try { $http = new com_http(self::makeBaseUrl() . '/ZWaveAPI/Run/devices[' . $this->getLogicalId() . '].commandClasses[0x70].Get(' . $id . ')'); self::handleError($http->exec()); } catch (Exception $e) { } } } if ($needRefresh) { sleep(1); $http = new com_http(self::makeBaseUrl() . '/ZWaveAPI/Run/devices[' . $this->getLogicalId() . '].commandClasses[0x70].data'); $data = json_decode(self::handleError($http->exec()), true); foreach ($device['parameters'] as $id => $parameter) { if (isset($data[$id])) { $return[$id] = array(); $return[$id]['value'] = $data[$id]['val']['value']; $return[$id]['datetime'] = date('Y-m-d H:i:s', $data[$id]['val']['updateTime']); $return[$id]['size'] = $data[$id]['size']['value']; } } } return $return; }
public function getDeviceConfiguration($_forcedRefresh = false, $_parameters_id = null) { if ($_parameters_id == null) { $device = zwave::devicesParameters($this->getConfiguration('device')); if (!is_array($device) || count($device) == 0) { throw new Exception(__('Equipement inconnu : ', __FILE__) . $this->getConfiguration('device')); } } else { $device = array('parameters' => array($_parameters_id => array())); } $return = array(); if (count($device['parameters']) > 0) { $needRefresh = false; if ($_forcedRefresh) { foreach ($device['parameters'] as $id => $parameter) { self::callRazberry('/ZWaveAPI/Run/devices[' . $this->getLogicalId() . '].commandClasses[0x70].Get(' . $id . ')', $this->getConfiguration('serverID', 1)); } sleep(4); } $data = self::callRazberry('/ZWaveAPI/Run/devices[' . $this->getLogicalId() . '].commandClasses[0x70].data', $this->getConfiguration('serverID', 1)); foreach ($device['parameters'] as $id => $parameter) { if (isset($data[$id])) { $return[$id] = array(); $return[$id]['value'] = $data[$id]['val']['value']; $return[$id]['datetime'] = date('Y-m-d H:i:s', $data[$id]['val']['updateTime']); $return[$id]['size'] = $data[$id]['size']['value']; if ($data[$id]['val']['updateTime'] < $data[$id]['val']['invalidateTime']) { $return[$id]['status'] = 'invalide'; } else { $return[$id]['status'] = 'ok'; } } else { $needRefresh = true; self::callRazberry('/ZWaveAPI/Run/devices[' . $this->getLogicalId() . '].commandClasses[0x70].Get(' . $id . ')', $this->getConfiguration('serverID', 1)); } } if ($needRefresh) { sleep(2); $data = self::callRazberry('/ZWaveAPI/Run/devices[' . $this->getLogicalId() . '].commandClasses[0x70].data', $this->getConfiguration('serverID', 1)); foreach ($device['parameters'] as $id => $parameter) { if (isset($data[$id])) { $return[$id] = array(); $return[$id]['value'] = $data[$id]['val']['value']; $return[$id]['datetime'] = date('Y-m-d H:i:s', $data[$id]['val']['updateTime']); $return[$id]['size'] = $data[$id]['size']['value']; if ($data[$id]['val']['updateTime'] < $data[$id]['val']['invalidateTime']) { $return[$id]['status'] = __('Invalide', __FILE__); } else { $return[$id]['status'] = __('OK', __FILE__); } } } } } return $return; }
$market->install(); } else { if ($market->getStatus('beta') == 1) { nodejs::pushUpdate('jeedom::alert', array('level' => 'warning', 'message' => __('Configuration trouvée en beta : ', __FILE__) . $market->getName() . __(' installation en cours', __FILE__))); sleep(1); $market->install('beta'); } } } } } } catch (Exception $e) { } } $deviceFound = false; foreach (zwave::devicesParameters() as $device_id => $device) { if ($device['manufacturerId'] == $data['manufacturerId']['value'] && $device['manufacturerProductType'] == $data['manufacturerProductType']['value'] && $device['manufacturerProductId'] == $data['manufacturerProductId']['value']) { $deviceFound = true; nodejs::pushUpdate('jeedom::alert', array('level' => 'warning', 'message' => __('Périphérique reconnu : ', __FILE__) . $device['name'] . '!! (Manufacturer ID : ' . $data['manufacturerId']['value'] . ', Product type : ' . $data['manufacturerProductType']['value'] . ', Product ID : ' . $data['manufacturerProductId']['value'] . __('). Configuration en cours veuillez patienter...', __FILE__))); sleep(1); $eqLogic->setConfiguration('device', $device_id); $eqLogic->save(); for ($i = 0; $i < 5; $i++) { nodejs::pushUpdate('jeedom::alert', array('level' => 'warning', 'message' => __('Pause de ', __FILE__) . (5 - $i) . __(' secondes pour synchronisation avec le module', __FILE__))); sleep(1); } nodejs::pushUpdate('jeedom::alert', array('level' => 'warning', 'message' => __('Mise à jour forcée des valeurs des commandes', __FILE__))); $eqLogic->forceUpdate(); break; } }
</div> </fieldset> </form> </div> <div class="col-lg-6"> <form class="form-horizontal"> <fieldset> <legend>Informations</legend> <div class="form-group"> <label class="col-lg-2 control-label">Equipement</label> <div class="col-lg-4"> <select class="eqLogicAttr form-control" data-l1key="configuration" data-l2key="device"> <option value="">Aucun</option> <?php foreach (zwave::devicesParameters() as $id => $info) { echo '<option value="' . $id . '">' . $info['name'] . '</option>'; } ?> </select> </div> <div class="col-lg-6"> <span id="span_marketStatus"></span> <a class="btn btn-default" id="bt_configureDevice"><i class="fa fa-wrench"></i></a> <a class="btn btn-warning" id="bt_shareOnMarket"><i class="fa fa-cloud-upload"></i> Partager</a> <a class="btn btn-success" id="bt_wiewOnMarket"><i class="fa fa-cloud-download"></i> Voir du market</a> </div> </div> <div class="form-group"> <label class="col-lg-2 control-label">Batterie</label>