public function actionCommand($id)
 {
     //get Scene Devices by Scene ID
     $sceneDevices = SceneDevices::model()->findAll('tbl_scene_idtbl_scene=:sceneID', array(':sceneID' => $id));
     foreach ($sceneDevices as $node) {
         //get node details and get device type
         $device = Devices::model()->find('idtbl_device=:deviceID', array(':deviceID' => $node["tbl_devices_idtbl_device"]));
         if ($_GET['state'] == "100") {
             $nodeLevel = $node["tbl_scene_device_level"];
         } else {
             $nodeLevel = 0;
         }
         $nodeID = $device["tbl_device_nodeid"];
         $nodeType = $device["tbl_device_type"];
         $url = Yii::app()->params['serverurl'] . "/server.php?command=control&node=" . $nodeID . "&type=" . urlencode($nodeType) . "&level=" . $nodeLevel;
         echo $url;
         // create a new cURL resource
         $ch = curl_init();
         // set URL and other appropriate options
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_HEADER, 0);
         // grab URL and pass it to the browser
         curl_exec($ch);
         // close cURL resource, and free up system resources
         curl_close($ch);
     }
     $this->redirect(array('index'));
 }
 private function getEventDetails($id, $state)
 {
     $model = $this->loadModel($id);
     //$model = new Scheduler();
     //get devices for the current scene
     $devices = SceneDevices::model()->findAll("tbl_scene_idtbl_scene=" . $model->tbl_scenes_idtbl_scene);
     $time = "";
     if ($state == 'off') {
         $time = $model->tbl_schedule_time_off;
     } else {
         $time = $model->tbl_schedule_time_on;
     }
     $hr = intval(substr($time, 0, 2));
     $min = intval(substr($time, 3, 2));
     $day = "";
     $month = "";
     if ($model->tbl_schedule_date) {
         $date = explode('-', $model->tbl_schedule_date);
         $month = $date[1];
         $day = $date[2];
     } else {
         $month = 0;
         $day = 0;
     }
     //get day/s
     if (count($model->tbl_schedule_recurring)) {
         $recurring = true;
     } else {
         $recurring = false;
     }
     $jobs = array();
     if ($recurring) {
         //generate crojob for every recurring day
         $recurringdays = explode(',', $model->tbl_schedule_recurring);
         foreach ($recurringdays as $dayofweek) {
             $dayofweek_map = array('Sun' => '0', 'Mon' => '1', 'Tue' => '2', 'Wed' => '3', 'Thu' => '4', 'Fri' => '5', 'Sat' => '6');
             array_push($jobs, $this->generateCronJob($min, $hr, '*', '*', $dayofweek_map[$dayofweek], $devices, $state));
         }
     } else {
         //generate one time event on a particular day
         $jobs = $this->generateCronJob($min, $hr, $day, $month, '*', $devices, $state);
     }
     return $jobs;
 }
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer the ID of the model to be loaded
  */
 public function loadModel($id)
 {
     $model = SceneDevices::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }