diff --git a/backend/lib/controller/datacontroller.php b/backend/lib/controller/datacontroller.php index 7a21d89..7bb583a 100644 --- a/backend/lib/controller/datacontroller.php +++ b/backend/lib/controller/datacontroller.php @@ -34,7 +34,7 @@ class DataController extends Controller { $from = (isset($this->view->request->get['from'])) ? (int) $this->view->request->get['from'] : NULL; $to = (isset($this->view->request->get['to'])) ? (int) $this->view->request->get['to'] : NULL; - $groupBy = (isset($this->view->request->get['groupby'])) ? $this->view->request->get['groupby'] : 400; // get all readings by default + $groupBy = (isset($this->view->request->get['groupBy'])) ? $this->view->request->get['groupBy'] : 400; // get all readings by default $data['from'] = $from; // TODO use min max timestamps from Channel::getData() $data['to'] = $to; // TODO nescessary? diff --git a/frontend/index.html b/frontend/index.html index 649044d..13af28a 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -11,6 +11,9 @@ + + + @@ -136,6 +139,7 @@ +
diff --git a/frontend/javascript/smartmeter.js b/frontend/javascript/smartmeter.js index 0c9ea3a..941f4b9 100644 --- a/frontend/javascript/smartmeter.js +++ b/frontend/javascript/smartmeter.js @@ -76,7 +76,7 @@ function calcMyWindowStart() { switch(windowInterval) { case 'YEAR': - myWindowStart.setYear(myWindowStart.getYear()-windowSize); + myWindowStart.setYear(myWindowStart.getFullYear()-windowSize); break; case 'MONTH': myWindowStart.setMonth(myWindowStart.getMonth()-windowSize); @@ -108,9 +108,9 @@ function getGroupedTimestamp(timestamp) { // hint: its correct without break; switch(f.grouping.value) { case 'year': - month = 0; + month = 1; case 'month': - day = 0; + day = 1; case 'day': hours = 0; case 'hour': @@ -124,52 +124,18 @@ function getGroupedTimestamp(timestamp) { function raw2Energy(raw) { var data_grouped_time = getEmptyGroupArray(); var data_grouped = new Array(); - + alert('e') + return; if(f.grouping.value == '') return; - if(typeof raw == 'undefined') { - return [[]]; + if(raw.data.length == 0) { + return [[0,0]]; } // for each timestamp in json response - for(var i=0;i 0) - data_grouped_time[time_grouped.getTime()] += raw.pulses[i][1]; - else - data_grouped_time[time_grouped.getTime()] = raw.pulses[i][1]; - */ - data_grouped_time[raw.pulses[i][0]] = raw.pulses[i][1]; - + for(var i=0;i=0;i--) { - if(data_grouped[i][1]==0 && i>0) - data_grouped[i][1] = data_grouped[i-1][1]; + if(f.info.value == 'power') { + for(var i=data_grouped.length-1;i>=0;i--) { + if(data_grouped[i][1]==0 && i>0 && i raw.data[0][0]*1000) + data_grouped[i][1] = data_grouped[i+1][1]; + } } - //$('#debug').append(data_grouped.toSource()) - return data_grouped; } @@ -213,19 +177,19 @@ function raw2Power(raw,moving_average) { var power = 0; var data_line = new Array(); - if(typeof raw == 'undefined' || raw.pulses.length == 0) { + if(typeof raw == 'undefined' || raw.data.length == 0) { return [[0,0]]; } // for each timestamp in json response - for(var i=0;i0) { // difference between this and last timestamp - difference = raw.pulses[i][0] - last_timestamp; + difference = raw.data[i][0] - last_timestamp; // power = 3600*1000/difference/resolution*count - power = Math.round(3600 * 1000/difference/raw.resolution*raw.pulses[i][1]); + power = Math.round(3600 * 1000/difference/raw.resolution*raw.data[i][1]); // average with last power value if(moving_average && last_power>0 && Math.abs(last_power-power)<0.25*power) @@ -237,10 +201,10 @@ function raw2Power(raw,moving_average) { } // array with timestamp and power - data_line.push([raw.pulses[i][0]/1000,power]); + data_line.push([raw.data[i][0],power]); } - last_timestamp = raw.pulses[i][0]; + last_timestamp = raw.data[i][0]; last_power = power; }