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; }