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 getCustomProgram() { // 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; // 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 } //Input Data $iGID = trim($_REQUEST['id']); if ($iGID == '') { $aResponse['code'] = 5; $aResponse['status'] = $this->aApiResponseCode[$aResponse['code']]['HTTP Response']; $aResponse['data'] = 'Invalid ID!'; // Return Response. $this->webResponse($sformat, $aResponse); exit; } $this->load->model('home_model'); $sResult = array(); //Get Program Details. $sResult['program'] = $this->home_model->getCustomProgram($iGID); //Get All IP Details. $aViewParameter['aIPDetails'] = $this->home_model->getBoardIP(); list($sIP, $sPort, $extra) = $this->home_model->getSettings(); foreach ($aViewParameter['aIPDetails'] as $IP) { $shhPort = ''; if (IS_LOCAL == '1') { //Get SSH port of the RLB board using IP. $shhPort = $this->home_model->getSSHPortFromID($IP->id); } $sResponse = array(); $sValves = ''; $sRelays = ''; $sPowercenter = ''; $sPump = ''; //Get the status response of devices from relay board. $sResponse = get_rlb_status($IP->ip, $sPort, $shhPort); $sValves = $sResponse['valves']; // Valve Device Status $sRelays = $sResponse['relay']; // Relay Device Status $sPowercenter = $sResponse['powercenter']; // Power Center Device Status $sPump = array($sResponse['pump_seq_0_st'], $sResponse['pump_seq_1_st'], $sResponse['pump_seq_2_st']); $iIPID = $IP->id; $iCount = strlen($sRelays); for ($i = 0; $i < $iCount; $i++) { $relay = $sRelays[$i]; if ($relay != '.' && $relay != '') { $name = $this->home_model->getDeviceName($i, 'R', $iIPID); if ($name == '') { $name = 'Relay ' . $i; } $sResult['Relay' . $IP->id][$i] = $name; } else { $sResult['Relay' . $IP->id][$i] = '.'; } } $iCount = strlen($sPowercenter); for ($i = 0; $i < $iCount; $i++) { $name = $this->home_model->getDeviceName($i, 'P', $iIPID); if ($name == '') { $name = 'PowerCenter ' . $i; } $sResult['PowerCenter' . $IP->id][$i] = $name; } $iCount = strlen($sValves); for ($i = 0; $i < $iCount; $i++) { $relay = $sValves[$i]; if ($relay != '.' && $relay != '') { $name = $this->home_model->getDeviceName($i, 'V', $iIPID); //START : Get Valve Position Details. $aPositionName = $this->home_model->getPositionName($i, 'V', $iIPID); $strPosition1 = ''; $strPosition2 = ''; if ($aPositionName[0] != '') { $strPosition1 = $this->home_model->getPositionNameFromID($aPositionName[0]); } if ($aPositionName[1] != '') { $strPosition2 = $this->home_model->getPositionNameFromID($aPositionName[1]); } //END : Get Valve Position Details. if ($name == '') { $name = 'Valve ' . $i; } $sResult['Valve' . $IP->id][$i] = array($name, $strPosition1, $strPosition2); } else { $sResult['Valve' . $IP->id][$i] = '.'; } } $iCount = count($sPump); for ($i = 0; $i < $iCount; $i++) { $name = $this->home_model->getDeviceName($i, 'PS', $iIPID); if ($name == '') { $name = 'Pump ' . $i; } $sResult['Pump' . $IP->id][$i] = $name; } $iCount = $extra['LightNumber']; for ($i = 0; $i < $iCount; $i++) { $name = $this->home_model->getDeviceName($i, 'L', $iIPID); if ($name == '') { $name = 'Light ' . $i; } $sResult['Light' . $IP->id][$i] = $name; } $iCount = $extra['HeaterNumber']; for ($i = 0; $i < $iCount; $i++) { $name = $this->home_model->getDeviceName($i, 'H', $iIPID); if ($name == '') { $name = 'Heater ' . $i; } $sResult['Heater' . $IP->id][$i] = $name; } $iCount = $extra['BlowerNumber']; for ($i = 0; $i < $iCount; $i++) { $name = $this->home_model->getDeviceName($i, 'B', $iIPID); if ($name == '') { $name = 'Blower ' . $i; } $sResult['Blower' . $IP->id][$i] = $name; } $iCount = $extra['MiscNumber']; for ($i = 0; $i < $iCount; $i++) { $name = $this->home_model->getDeviceName($i, 'M', $iIPID); if ($name == '') { $name = 'Misc ' . $i; } $sResult['Misc' . $IP->id][$i] = $name; } } $aResponse['code'] = 1; $aResponse['status'] = $this->aApiResponseCode[$aResponse['code']]['HTTP Response']; $aResponse['data'] = json_encode($sResult); $this->webResponse($sformat, $aResponse); }
public function systemStatus() { $aViewParameter['page'] = 'status'; $this->checkSettingsSaved(); $sResponse = get_rlb_status(); $aViewParameter['response'] = $sResponse['response']; $this->load->view('Status', $aViewParameter); }