예제 #1
0
 public function execute($_options = null)
 {
     $value = $this->getConfiguration('value');
     switch ($this->getType()) {
         case 'action':
             switch ($this->getSubType()) {
                 case 'slider':
                     $value = str_replace('#slider#', $_options['slider'], $value);
                     break;
                 case 'color':
                     $value = str_replace('#color#', $_options['color'], $value);
                     return $this->setRGBColor($value);
                     break;
             }
             break;
     }
     $request = zwave::makeBaseUrl() . '/ZWaveAPI/Run/';
     $request .= 'devices[' . $this->getEqLogic()->getLogicalId() . ']';
     if ($this->getConfiguration('instanceId') != '') {
         $request .= '.instances[' . $this->getConfiguration('instanceId') . ']';
     }
     $request .= '.commandClasses[' . $this->getConfiguration('class') . ']';
     $request .= '.' . $value;
     $http = new com_http($request);
     $result = zwave::handleError($http->exec(1, 3, true));
     if (is_json($result)) {
         $result = json_decode($result, true);
         $value = self::handleResult($result);
         if (isset($result['updateTime'])) {
             $this->setCollectDate(date('Y-m-d H:i:s', $result['updateTime']));
         }
     } else {
         $value = $result;
         if ($value === true || $value == 'true') {
             return 1;
         }
         if ($value === false || $value == 'false') {
             return 0;
         }
         if (is_numeric($value)) {
             return round($value, 1);
         }
     }
     return $value;
 }