diff --git a/highcharts.php b/highcharts.php index b1ba5dc..ea6d62e 100644 --- a/highcharts.php +++ b/highcharts.php @@ -6,82 +6,64 @@ * Time: 18:36 */ +$start = microtime(true); + include "config.php"; include "lib/DBLib.php"; function average($list) { - if(!$list){ + if (!$list) { return null; } $i = 0; $sum = 0; foreach ($list as $value) { $i++; - $sum += $value['value']/100; + $sum += $value['value'] / 100; } - if ($i>0) { + if ($i > 0) { return round($sum / $i, 1); - }else{ + } else { return null; } } - $db = new DBLib($database['host'], $database['user'], $database['password'], $database['database']); -#echo $db; -$sensors = ["temp1"=> "Innen", "temp2"=>"Aussen"]; -$series=array(); -foreach ($sensors as $sensor=>$name) { + +$sensors = ["temp1" => "Innen", "temp2" => "Aussen"]; +$show_days = true; +$series = array(); +$days = []; +foreach ($sensors as $sensor => $name) { $date = new DateTime("2015-04-01T00:00:00+02:00", new DateTimeZone("Europe/Berlin")); - $days = array(); + $date2 = clone $date; + $day_summaries = array(); for ($i = 0; $i < $date->format("t"); $i++) { $start = $date->format("U"); - #echo $date->format("H:i:s Y.m.d"); - #echo " -- "; - #echo $date->format("U"); - #echo "\n"; $date->add(new DateInterval("P1D")); $end = $date->format("U"); $entries = $db->selectRange($sensor, "*", array("time", $start, $end)); - $days[] = average($entries); - } - $series[]=array("name"=>$name, "data"=>$days); -} - -$json= json_encode($series,JSON_NUMERIC_CHECK /*| JSON_PRETTY_PRINT*/); - -$series2=[]; -$days = array(); -foreach(["temp2"=>"Aussen"] as $sensor=>$name){ - $date = new DateTime("2015-04-01T00:00:00+02:00", new DateTimeZone("Europe/Berlin")); - $date2 = new DateTime("2015-04-01T00:00:00+02:00", new DateTimeZone("Europe/Berlin")); - for ($j = 0; $j < $date->format("t"); $j++) { - $hours = []; - for ($i = 0; $i < 24; $i++) { - $start = $date2->format("U"); - $date2->add(new DateInterval("PT1H")); - $end = $date2->format("U"); - #var_dump(array("time", $start, $end)); - $entries = $db->selectRange($sensor, "*", array("time", $start, $end)); - $hours[] = average($entries); + $day_summaries[] = average($entries); + if ($show_days) { + $hours = []; + for ($j = 0; $j < 24; $j++) { + $start = $date2->format("U"); + $date2->add(new DateInterval("PT1H")); + $end = $date2->format("U"); + $entries = $db->selectRange($sensor, "*", array("time", $start, $end)); + $hours[] = average($entries); + } + $days[] = ["name" => $date->format("d.m.Y") . " (" . $name . ")", "data" => $hours]; } - $days[]=["name"=>$date->format("d.m.Y")." (".$name.")", "data"=>$hours]; - $date->add(new DateInterval("P1D")); } + $series[] = array("name" => $name, "data" => $day_summaries); } -$json2= json_encode($days,JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT); -#$start = mktime(0, 0, 0, 7, 1, 2014); -#echo date("c",$start); -#echo date("H:i:s Y.m.d",$start); -#echo "\n"; -#$days = date("t", $start); -#$end = 60 * 60 * 24 * $days + $start; -#echo date("H:i:s Y.m.d",$end); -#$result = $db->selectRange("temp2", "*", array("time", $start, $end)); -#var_dump($result); - +$json = json_encode($series, JSON_NUMERIC_CHECK /*| JSON_PRETTY_PRINT*/); +$json2 = json_encode($days, JSON_NUMERIC_CHECK /*| JSON_PRETTY_PRINT*/); +$runtime = "Runtime: " . ((microtime(true) - $start) / 1000 / 1000); +$runtime .= " s"; ?> @@ -175,5 +157,6 @@ $json2= json_encode($days,JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
+