Ejemplo n.º 1
0
 * 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>
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
                         $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;
     }
 }
Ejemplo n.º 5
0
                        </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>