removed buttons and code that belongs to it

This commit is contained in:
Justin Otherguy 2010-09-11 21:39:34 +02:00
parent 78cd5d7248
commit e326250819
2 changed files with 17 additions and 255 deletions

View file

@ -89,36 +89,6 @@
<button id="addChannel">add channel</button>
<br>
<b>Information:</b><br>
<select name="info">
<option value="power">Leistung</option>
<option value="energy">Energie</option>
<option value="infos">weitere Infos</option>
</select>
<br><br>
<b>Anzeigebereich:</b><br>
<select name="window">
<option value="1HOUR">1 Stunde</option>
<option value="1DAY">1 Tag</option>
<option value="3DAY">3 Tage</option>
<option value="7DAY">7 Tage</option>
<option value="1MONTH" selected="selected">1 Monat</option>
<option value="1YEAR">1 Jahr</option>
</select>
<br><br>
<b>Gruppierung:</b><br>
<select name="grouping">
<option value="400">dynamisch</option>
<option value="minute">Minute</option>
<option value="hour" selected="selected">Stunde</option>
<option value="day">Tag</option>
<option value="month">Monat</option>
<option value="year">Jahr</option>
</select>
<br><br>
<div style="font-size:8pt;">
<input type="checkbox" name="stackChannels" /> Kan&auml;le addieren<br>
<input type="checkbox" name="autoReload" /> auto reload (5s)<br>
@ -394,16 +364,12 @@ function getData() {
$('#debug').append('<a href="../backend/index.php/data/'+myUUID+'/format/json/from/'+myWindowStart+'/to/'+myWindowEnd+'">json</a>');
// load json data with given time window
$.getJSON("../backend/index.php/data/" + myUUID, function(j){
$.getJSON("../backend/index.php/data/" + myUUID + '/format/json/from/'+myWindowStart+'/to/'+myWindowEnd, function(j){
data = j;
$('#debug').empty().append(data.toSource());
// then show/reload the chart
//if(data.channels.length > 0 && data.channels[0].pulses.length > 0)
if(f.info.value == 'infos')
showInfos()
else
showChart();
$('#loading').empty();
});
@ -448,83 +414,19 @@ function showChart() {
jqOptions.series.push({label:data.channels[i]['description']});
}
// different formatStrings for different grouping times
switch(f.grouping.value) {
case 'year':
EformatString = '%Y';
break;
case 'month':
EformatString = '%m/%Y';
break;
case 'day':
EformatString = '%d.%m.%y';
break;
case 'hour':
EformatString = '%d.%m.%y %H:%M';
break;
case 'minute':
EformatString = '%d.%m.%y %H:%M';
break;
default:
EformatString = '%d.%m.%y %H:%M:%S';
}
EformatString = '%d.%m.%y %H:%M';
// power
if(f.info.value == 'power') {
// for each channel in json response
for(var i=0;i<data.channels.length;i++) {
// power (moving average) gray line
//jqData.push(raw2Power(data.channels[i],true));
//series_chart.push({showLabel:false,color:'#808080'})
// power
/*if(f.grouping.value == '') {
jqData.push(raw2Power(data.channels[i],false));
}
else {
jqData.push(raw2Energy(data.channels[i]));
}*/
//$('#debug').empty().append(raw2Energy(data.channels[i]).toSource());
jqData.push(json2jqplot(data.channels[i].data));
}
jqOptions.axes = {
yaxis:{autoscale:true, min:0, label:"Leistung (Watt)", tickOptions:{formatString:'%.3f'},labelRenderer: $.jqplot.CanvasAxisLabelRenderer},
xaxis:{autoscale:true, min:calcMyWindowStart(), max:myWindowEnd, tickOptions:{formatString:EformatString,angle:-30},pad:1, renderer:$.jqplot.DateAxisRenderer,rendererOptions:{tickRenderer:$.jqplot.CanvasAxisTickRenderer}},
};
// for each channel in json response
for(var i=0;i<data.channels.length;i++) {
// power (moving average) gray line
//series_chart.push({showLabel:false,color:'#808080'})
jqData.push(json2jqplot(data.channels[i].data));
}
// energy
else if(f.info.value == 'energy') {
// thats not possible without grouping
if(f.grouping.value == '' )
return;
// for each channel in json response
for(var i=0;i<data.channels.length;i++) {
jqData.push(raw2Energy(data.channels[i]));
}
//jqData = json2jqplot(data);
jqOptions.axes={
yaxis:{autoscale:true, min:0, tickOptions:{formatString:'%.3f'},label:"Energie (kWh)",labelRenderer: $.jqplot.CanvasAxisLabelRenderer},
xaxis:{
renderer:$.jqplot.CategoryAxisRenderer,
autoscale:true,
tickOptions:{formatString:'%d.%m.%y %H:%M:%S',angle:-30},
pad:1,
rendererOptions:{tickRenderer:$.jqplot.CanvasAxisTickRenderer},
ticks:generateAxisTicks()
}
};
jqOptions.highlighter={sizeAdjust: 7.5};
jqOptions.seriesDefaults.renderer=$.jqplot.BarRenderer;
jqOptions.cursor={show:false,zoom:false,showTooltip:true,showMarker:true}
}
jqOptions.axes = {
yaxis:{autoscale:true, min:0, label:"Leistung (Watt)", tickOptions:{formatString:'%.3f'},labelRenderer: $.jqplot.CanvasAxisLabelRenderer},
xaxis:{autoscale:true, min:calcMyWindowStart(), max:myWindowEnd, tickOptions:{formatString:EformatString,angle:-30},pad:1, renderer:$.jqplot.DateAxisRenderer,rendererOptions:{tickRenderer:$.jqplot.CanvasAxisTickRenderer}},
};
chart = $.jqplot("ChartDIV",jqData,jqOptions);
chart.replot();
@ -568,14 +470,7 @@ function generateAxisTicks() {
for(var timestamp in data_grouped_time) {
var time = new Date(timestamp*1000);
if(f.grouping.value == 'month')
ticks.push((time.getMonth()+1)+'/'+time.getFullYear());
if(f.grouping.value == 'day')
ticks.push(time.getDate()+'.'+(time.getMonth()+1)+'.');
if(f.grouping.value == 'hour')
ticks.push(time.getDate()+'.'+(time.getMonth()+1)+'.'+' '+time.getHours()+':00');
if(f.grouping.value == 'minute')
ticks.push(time.getDate()+'.'+(time.getMonth()+1));
ticks.push(time.getDate()+'.'+(time.getMonth()+1)+'.'+' '+time.getHours()+':00');
}
return ticks;

View file

@ -36,25 +36,7 @@ function getEmptyGroupArray() {
var iteratorDate = new Date(iterator);
//$('#debug').append('#'+i+':'+iteratorDate+'<br>');
switch(f.grouping.value) {
case 'year':
iteratorDate.setYear(iteratorDate.getYear()+1);
break;
case 'month':
iteratorDate.setMonth(iteratorDate.getMonth()+1);
break;
case 'day':
iteratorDate.setDate(iteratorDate.getDate()+1);
break;
case 'hour':
iteratorDate.setHours(iteratorDate.getHours()+1);
break;
case 'minute':
iteratorDate.setMinutes(iteratorDate.getMinutes()+1);
break;
default:
return empty_array;
}
iteratorDate.setDate(iteratorDate.getDate()+1);
// very bad bug: infinity loop for summer winter change
if(i==750) return empty_array;
@ -74,26 +56,12 @@ function calcMyWindowStart() {
var hours = myWindowStart.getHours();
var minutes = myWindowStart.getMinutes();
var windowSize = f.window.value.substring(0,1);
var windowInterval = f.window.value.substring(1);
//var windowSize = f.window.value.substring(0,1);
var windowSize = "1";
//var windowInterval = f.window.value.substring(1);
var windowInterval = "MONTH"; // we want to display 1 day (for now)
switch(windowInterval) {
case 'YEAR':
myWindowStart.setYear(myWindowStart.getFullYear()-windowSize);
break;
case 'MONTH':
myWindowStart.setMonth(myWindowStart.getMonth()-windowSize);
break;
case 'DAY':
myWindowStart.setDate(myWindowStart.getDate()-windowSize);
break;
case 'HOUR':
myWindowStart.setHours(myWindowStart.getHours()-windowSize);
break;
case 'MINUTE':
myWindowStart.setMinutes(myWindowStart.getMinutes()-windowSize);
break;
}
return myWindowStart.getTime();
}
@ -108,109 +76,8 @@ function getGroupedTimestamp(timestamp) {
var hours = time.getHours();
var minutes = time.getMinutes();
// hint: its correct without break;
switch(f.grouping.value) {
case 'year':
month = 1;
case 'month':
day = 1;
case 'day':
hours = 0;
case 'hour':
minutes = 0;
}
return (new Date(year,month,day,hours,minutes)).getTime();
}
function raw2Energy(raw) {
var data_grouped_time = getEmptyGroupArray();
var data_grouped = new Array();
if(f.grouping.value == '')
return;
if(raw.data.length == 0) {
return [[0,0]];
}
// for each timestamp in json response
for(var i=0;i<raw.data.length;i++) {
data_grouped_time[raw.data[i][0]] = raw.data[i][1];
}
t = 1;
switch(f.grouping.value) {
case 'year':
t *= 365;
case 'day':
t *= 24;
case 'hour':
t *= 60;
case 'minute':
t *= 60;
}
// transform to proper array and energy instead of pulse count
for(var timestamp in data_grouped_time) {
if(f.info.value == 'energy')
data_grouped.push(data_grouped_time[timestamp]/raw.resolution);
else {
data_grouped.push([timestamp*1, 3600 * 1000 * data_grouped_time[timestamp] / raw.resolution / t ]);
}
}
if(f.info.value == 'power') {
for(var i=data_grouped.length-1;i>=0;i--) {
if(data_grouped[i][1]==0 && i>0 && i<data_grouped.length-1 && data_grouped[i][0] > raw.data[0][0]*1000)
data_grouped[i][1] = data_grouped[i+1][1];
}
}
return data_grouped;
}
function raw2Power(raw,moving_average) {
var last_timestamp = 0;
var last_power = 0;
var power = 0;
var data_line = new Array();
if(typeof raw == 'undefined' || raw.data.length == 0) {
return [[0,0]];
}
// for each timestamp in json response
for(var i=0;i<raw.data.length;i++) {
if(last_timestamp>0) {
// difference between this and last timestamp
difference = raw.data[i][0] - last_timestamp;
// power = 3600*1000/difference/resolution*count
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)
power = (power + last_power)/2;
// additional value for last_power > power*1.25
if(last_power > power*1.25 && last_timestamp) {
data_line.push([last_timestamp,power]);
}
// array with timestamp and power
data_line.push([raw.data[i][0],power]);
}
last_timestamp = raw.data[i][0];
last_power = power;
}
// return array with power@timestamps
return data_line;
}