Пример #1
0
 public function index()
 {
     $seconds = 2;
     $micro = $seconds * 1000000;
     $this->load->model('analog_model');
     $myFile = "/var/www/relay_framework/daemontest1.txt";
     $fh = fopen($myFile, 'a') or die("Can't open file");
     $stringData = "File updated at: " . $sResponse . "\n";
     fwrite($fh, $stringData);
     fclose($fh);
     $this->load->model('home_model');
     list($sIpAddress, $sPortNo) = $this->home_model->getSettings();
     if ($sIpAddress == '') {
         if (IP_ADDRESS) {
             $sIpAddress = IP_ADDRESS;
         }
     }
     //Check for Port Number constant
     if ($sPortNo == '') {
         if (PORT_NO) {
             $sPortNo = PORT_NO;
         }
     }
     if ($sIpAddress == '' || $sPortNo == '') {
     } else {
         $sResponse = get_rlb_status();
         $aAP = array($sResponse['AP0'], $sResponse['AP1'], $sResponse['AP2'], $sResponse['AP3']);
         $aAP = array(0, 1, 0, 1);
         $sValves = $sResponse['valves'];
         $sRelays = $sResponse['relay'];
         $sPowercenter = $sResponse['powercenter'];
         $aResult = $this->analog_model->getAllAnalogDevice();
         $iResultCnt = count($aResult);
         for ($i = 0; $i < $iResultCnt; $i++) {
             if ($aResult[$i] != '') {
                 $aDevice = explode('_', $aResult[$i]);
                 if ($aDevice[1] != '') {
                     if ($aDevice[1] == 'R') {
                         $sNewResp = replace_return($sRelays, $aAP[$i], $aDevice[0]);
                         onoff_rlb_relay($sNewResp);
                     }
                     if ($aDevice[1] == 'P') {
                         $sNewResp = replace_return($sPowercenter, $aAP[$i], $aDevice[0]);
                         onoff_rlb_powercenter($sNewResp);
                     }
                     if ($aDevice[1] == 'V') {
                         $sNewResp = replace_return($sValves, $aAP[$i], $aDevice[0]);
                         onoff_rlb_valve($sNewResp);
                     }
                 }
             }
         }
         usleep($micro);
     }
 }
Пример #2
0
 public function changeMode()
 {
     $aViewParameter['sucess'] = '0';
     $aViewParameter['err_sucess'] = '0';
     $aViewParameter['page'] = 'home';
     $this->load->model('home_model');
     if ($this->input->post('iMode') != '') {
         $iMode = $this->input->post('iMode');
         $this->home_model->updateMode($iMode);
         $sResponse = get_rlb_status();
         $sValves = $sResponse['valves'];
         $sRelays = $sResponse['relay'];
         $sPowercenter = $sResponse['powercenter'];
         if ($iMode == 3 || $iMode == 1) {
             //1-auto, 2-manual, 3-timeout
             //off all relays
             if ($sRelays != '') {
                 $sRelayNewResp = str_replace('1', '0', $sRelays);
                 onoff_rlb_relay($sRelayNewResp);
             }
             //off all valves
             if ($sValves != '') {
                 $sValveNewResp = str_replace(array('1', '2'), '0', $sValves);
                 onoff_rlb_valve($sValveNewResp);
             }
             //off all power center
             if ($sPowercenter != '') {
                 $sPowerNewResp = str_replace('1', '0', $sPowercenter);
                 onoff_rlb_powercenter($sPowerNewResp);
             }
         }
         $aViewParameter['sucess'] = '1';
     }
     $aViewParameter['iMode'] = $this->home_model->getActiveMode();
     $this->load->view("Mode", $aViewParameter);
 }
Пример #3
0
 public function changeActiveMode()
 {
     // Set default HTTP response of 'ok'
     $aResponse = array();
     $aResponse['code'] = 0;
     $aResponse['status'] = 404;
     $aResponse['data'] = NULL;
     $sformat = isset($_REQUEST['format']) ? $_REQUEST['format'] : '';
     // Get response Format (json,xml,html etc.)
     $sAuth = isset($_REQUEST['auth']) ? $_REQUEST['auth'] : '';
     // Check if Authentication is required.
     $this->isAuthenticationRequired = $sAuth;
     //INPUTS
     $iMode = trim($_REQUEST['md']);
     $iTime = trim($_REQUEST['mt']);
     //Manual Time in Minute
     // Optionally require connections to be made via HTTPS
     if ($this->isHTTPSRequired && $_SERVER['HTTPS'] != 'on') {
         $aResponse['code'] = 2;
         $aResponse['status'] = $aApiResponseCode[$aResponse['code']]['HTTP Response'];
         $aResponse['data'] = $aApiResponseCode[$aResponse['code']]['Message'];
         // Return Response to browser. This will exit the script.
         $this->webResponse($sformat, $aResponse);
     }
     if ($this->isAuthenticationRequired) {
         //START : Authorisation
         $sUsername = isset($_REQUEST['username']) ? $_REQUEST['username'] : '';
         // Get the username of webservice
         $sPassword = isset($_REQUEST['password']) ? $_REQUEST['password'] : '';
         // Get the password of webservice
         $this->webAuthorisation($sUsername, $sPassword, $sformat);
         // Check if username and password is valid.
         // END : Authorisation
     }
     $aResult = array();
     $aResult['msg'] = "";
     $aResult['response'] = 0;
     $aResult['status'] = 0;
     $this->load->model('home_model');
     //Get the mode from Database.
     $iActiveMode = $this->home_model->getActiveMode();
     if ($iMode != '') {
         if ($iMode != $iActiveMode) {
             $this->home_model->updateMode($iMode);
             //If mode is manual then add the manual start time and end time calculated using the manual time(in minute) added on settings page.
             if ($iMode == 2) {
                 if ($iTime == '') {
                     $sManualTime = $this->home_model->getManualModeTime();
                 } else {
                     $sManualTime = $iTime;
                 }
                 if ($sManualTime != '') {
                     if ($iMode == 2) {
                         $sProgramAbsStart = date("H:i:s", time());
                         $aStartTime = explode(":", $sProgramAbsStart);
                         $sProgramAbsEnd = mktime($aStartTime[0], $aStartTime[1] + $sManualTime, $aStartTime[2], 0, 0, 0);
                         $sAbsoluteEnd = date("H:i:s", $sProgramAbsEnd);
                         $this->home_model->updateManualModeTimer($sProgramAbsStart, $sAbsoluteEnd);
                         //Save Manual Mode Time.
                         $this->home_model->updateManualModeTime($sManualTime);
                     } else {
                         $this->home_model->updateManualModeTimer('', '');
                     }
                 }
             }
             $sResponse = get_rlb_status();
             $sValves = $sResponse['valves'];
             $sRelays = $sResponse['relay'];
             $sPowercenter = $sResponse['powercenter'];
             if ($iMode == 3 || $iMode == 1) {
                 //1-auto, 2-manual, 3-timeout
                 //off all relays
                 if ($sRelays != '') {
                     $sRelayNewResp = str_replace('1', '0', $sRelays);
                     onoff_rlb_relay($sRelayNewResp);
                 }
                 //off all valves
                 if ($sValves != '') {
                     $sValveNewResp = str_replace(array('1', '2'), '0', $sValves);
                     onoff_rlb_valve($sValveNewResp);
                 }
                 //off all power center
                 if ($sPowercenter != '') {
                     $sPowerNewResp = str_replace('1', '0', $sPowercenter);
                     onoff_rlb_powercenter($sPowerNewResp);
                 }
                 //GET all Pump Devices.
                 $aPumpDetails = $this->home_model->getAllPumpDetails();
                 if (!empty($aPumpDetails)) {
                     foreach ($aPumpDetails as $aPump) {
                         $sStatus = 0;
                         $sPumpNumber = $aResultEdit->pump_number;
                         $sPumpType = $aResultEdit->pump_type;
                         $sPumpSubType = $aResultEdit->pump_sub_type;
                         $sRelayNumber = $aResultEdit->relay_number;
                         $sRelayNumber1 = $aResultEdit->relay_number_1;
                         if ($sPumpType == '12' || $sPumpType == '24' || $sPumpType == '2Speed') {
                             if ($sPumpType == '24') {
                                 $sNewResp = replace_return($sRelays, $sStatus, $sRelayNumber);
                                 onoff_rlb_relay($sNewResp);
                                 $this->home_model->updateDeviceRunTime($sName, $sDevice, $sStatus);
                                 $this->home_model->updateDeviceStauts($sName, $sDevice, $sStatus);
                             } else {
                                 if ($sPumpType == '12') {
                                     $sNewResp = replace_return($sPowercenter, $sStatus, $sRelayNumber);
                                     onoff_rlb_powercenter($sNewResp);
                                     $this->home_model->updateDeviceStauts($sName, $sDevice, $sStatus);
                                 }
                             }
                             if ($sPumpType == '2Speed') {
                                 if ($sPumpSubType == '24') {
                                     $sNewResp = replace_return($sRelays, 0, $sRelayNumber);
                                     onoff_rlb_relay($sNewResp);
                                     $this->home_model->updateDeviceRunTime($sName, $sDevice, $sStatus);
                                     $sNewResp = replace_return($sNewResp, '0', $sRelayNumber1);
                                     onoff_rlb_relay($sNewResp);
                                     $this->home_model->updateDeviceRunTime($sName, $sDevice, $sStatus);
                                     $this->home_model->updateDeviceStauts($sName, $sDevice, $sStatus);
                                 } else {
                                     if ($sPumpSubType == '12') {
                                         $sNewResp = replace_return($sPowercenter, '0', $sRelayNumber);
                                         onoff_rlb_powercenter($sNewResp);
                                         $sNewResp = replace_return($sNewResp, '0', $sRelayNumber1);
                                         onoff_rlb_powercenter($sNewResp);
                                         $this->home_model->updateDeviceStauts($sName, $sDevice, $sStatus);
                                     }
                                 }
                             }
                         } else {
                             if (preg_match('/Emulator/', $sPumpType)) {
                                 $sNewResp = $sName . ' ' . $sStatus;
                                 onoff_rlb_pump($sNewResp);
                                 if ($sPumpType == 'Emulator12') {
                                     $sNewResp12 = replace_return($sPowercenter, $sStatus, $sRelayNumber);
                                     onoff_rlb_powercenter($sNewResp12);
                                 }
                                 if ($sPumpType == 'Emulator24') {
                                     $sNewResp24 = replace_return($sRelays, $sStatus, $sRelayNumber);
                                     onoff_rlb_relay($sNewResp24);
                                     $this->home_model->updateDeviceRunTime($sRelayNumber, 'R', $sStatus);
                                 }
                                 $this->home_model->updateDeviceStauts($sName, $sDevice, $sStatus);
                             } else {
                                 if (preg_match('/Intellicom/', $sPumpType)) {
                                     $sNewResp = $sName . ' ' . $sStatus;
                                     onoff_rlb_pump($sNewResp);
                                     if ($sPumpType == 'Intellicom12') {
                                         $sNewResp12 = replace_return($sPowercenter, $sStatus, $sRelayNumber);
                                         onoff_rlb_powercenter($sNewResp12);
                                     }
                                     if ($sPumpType == 'Intellicom24') {
                                         $sNewResp24 = replace_return($sRelays, $sStatus, $sRelayNumber);
                                         onoff_rlb_relay($sNewResp24);
                                         $this->home_model->updateDeviceRunTime($sRelayNumber, 'R', $sStatus);
                                     }
                                     $this->home_model->updateDeviceStauts($sName, $sDevice, $sStatus);
                                 }
                             }
                         }
                     }
                 }
             }
             $aResponse['code'] = 1;
             $aResponse['status'] = $this->aApiResponseCode[$aResponse['code']]['HTTP Response'];
             $aResponse['data'] = $iMode;
             // Return Response to browser. This will exit the script.
             $this->webResponse($sformat, $aResponse);
         } else {
             //If mode is manual then add the manual start time and end time calculated using the manual time(in minute) added on settings page.
             if ($iMode == 2) {
                 $sManualTime = $this->home_model->getManualModeTime();
                 if ($iTime != '') {
                     if ($sManualTime != $iTime) {
                         $sProgramAbsStart = date("H:i:s", time());
                         $aStartTime = explode(":", $sProgramAbsStart);
                         $sProgramAbsEnd = mktime($aStartTime[0], $aStartTime[1] + $iTime, $aStartTime[2], 0, 0, 0);
                         $sAbsoluteEnd = date("H:i:s", $sProgramAbsEnd);
                         $this->home_model->updateManualModeTimer($sProgramAbsStart, $sAbsoluteEnd);
                         //Update the new time in database.
                         $this->home_model->updateManualModeTime($iTime);
                         $aResponse['code'] = 1;
                         $aResponse['status'] = $this->aApiResponseCode[$aResponse['code']]['HTTP Response'];
                         $aResponse['data'] = $iMode;
                         // Return Response to browser. This will exit the script.
                         $this->webResponse($sformat, $aResponse);
                     } else {
                         $aResponse['code'] = 1;
                         $aResponse['status'] = $this->aApiResponseCode[$aResponse['code']]['HTTP Response'];
                         $aResponse['data'] = 'Mode already activated!';
                         // Return Response to browser. This will exit the script.
                         $this->webResponse($sformat, $aResponse);
                     }
                 }
             } else {
                 $aResponse['code'] = 1;
                 $aResponse['status'] = $this->aApiResponseCode[$aResponse['code']]['HTTP Response'];
                 $aResponse['data'] = 'Mode already activated!';
                 // Return Response to browser. This will exit the script.
                 $this->webResponse($sformat, $aResponse);
             }
         }
     } else {
         $aResponse['code'] = 5;
         $aResponse['status'] = $this->aApiResponseCode[$aResponse['code']]['HTTP Response'];
         $aResponse['data'] = 'Please enter Valid mode.';
         // Return Response to browser. This will exit the script.
         $this->webResponse($sformat, $aResponse);
     }
 }
Пример #4
0
 public function updateStatusOnOff()
 {
     $sResponse = get_rlb_status();
     //$sResponse      =   array('valves'=>'0120','powercenter'=>'0000','time'=>'','relay'=>'0000');
     $sValves = $sResponse['valves'];
     $sRelays = $sResponse['relay'];
     $sPowercenter = $sResponse['powercenter'];
     $sTime = $sResponse['time'];
     $sName = $this->input->post('sName');
     $sStatus = $this->input->post('sStatus');
     $sDevice = $this->input->post('sDevice');
     $sNewResp = '';
     if ($sDevice == 'R') {
         $sNewResp = replace_return($sRelays, $sStatus, $sName);
         onoff_rlb_relay($sNewResp);
     }
     if ($sDevice == 'P') {
         $sNewResp = replace_return($sPowercenter, $sStatus, $sName);
         onoff_rlb_powercenter($sNewResp);
     }
     if ($sDevice == 'V') {
         //echo $sStatus;
         $sNewResp = replace_return($sValves, $sStatus, $sName);
         onoff_rlb_valve($sNewResp);
     }
     if ($sDevice == 'PS') {
         $sNewResp = '';
         if ($sStatus == '0') {
             $sNewResp = $sName . ' ' . $sStatus;
         } else {
             if ($sStatus == '1') {
                 $this->load->model('home_model');
                 $aPumpDetails = $this->home_model->getPumpDetails($sName);
                 foreach ($aPumpDetails as $aResultPumpDetails) {
                     $sType = '';
                     if ($aResultPumpDetails->pump_type == '2') {
                         $sType = $aResultPumpDetails->pump_type . ' ' . $aResultPumpDetails->pump_speed;
                     } elseif ($aResultPumpDetails->pump_type == '3') {
                         $sType = $aResultPumpDetails->pump_type . ' ' . $aResultPumpDetails->pump_flow;
                     }
                     $sNewResp = $sName . ' ' . $sType;
                 }
             }
         }
         onoff_rlb_pump($sNewResp);
     }
     exit;
 }