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