$(document).ready(function(){ var from = Math.round(new Date().getTime()/1000) - 24*60*60; //86400; var fromOverview = Math.round(new Date().getTime()/1000) - 30*24*60*60; //86400; var to = Math.round(new Date().getTime()/1000); var datasetDetail = [] var datasetOverview = []; var plotOverview = null; var plotDetail = null; var indexFound = null; var replot = function() { if (plotDetail == null) { plotDetail = $.plot($("#ebusgraph"), datasetDetail, { xaxis: { mode: "time"}, legend: { show : true} }); } else { plotDetail.setData(datasetDetail); plotDetail.draw(); plotDetail.setupGrid(); // redraw legend } }; var replotOverview = function() { if (plotOverview == null) { plotOverview = $.plot($("#overview"), datasetOverview, { // options series: { lines: { show: true, lineWidth: 1 }, shadowSize: 0 }, xaxis: { mode: "time" }, yaxis: { ticks: [], min: 0, autoscaleMargin: 0.1 }, selection: { mode: "x" } }); } else { plotOverview.setData(datasetOverview); plotOverview.draw(); } plotOverview.setSelection({xaxis: {'from': from*1000, 'to': to*1000}}, true); }; var plotSensor = function(sensorname) { plotSensorDetail(sensorname); plotSensorOverview(sensorname); }; var unplotSensor = function(sensorname) { unplotSensorDetail(sensorname); unplotSensorOverview(sensorname); }; var plotSensorDetail = function(sensorname) { $.getJSON("sensor/"+escape(sensorname)+"/"+from+"/"+to, function(response) { if (response['data']) { datasetDetail.push({'data':response['data'], 'label':sensorname}); replot(); } else { alert("Fehler: " + response["error"]); } }); }; var unplotSensorDetail = function(sensorname) { $.each(datasetDetail, function(i, sensor) { alert(datasetDetail[i].label); if (sensor.label == sensorname) { indexFound = i; } }); datasetDetail.splice(indexFound,1); replot(); }; var plotSensorOverview = function(sensorname) { $.getJSON("sensor_cached/"+escape(sensorname)+"/"+fromOverview, //+"/"+to, function(response) { if (response['data']) { datasetOverview.push({'data':response['data'], 'label':null}); replotOverview(); } else { alert("Overview Fehler: " + response["error"]); } }); }; var unplotSensorOverview = function(sensorname) { $.each(datasetOverview, function(i, sensor) { if (datasetOverview[i].label == sensorname) { indexFound = i; } }); datasetOverview.splice(indexFound,1); replotOverview(); } $("#overview").bind("plotselected", function (event, ranges) { range_from = Math.round(ranges.xaxis.from / 1000); range_to = Math.round(ranges.xaxis.to / 1000); // max selection range 14 days if (range_to - range_from > 14 * 24 * 60 * 60) { plotOverview.setSelection({xaxis: {'from': from*1000, 'to': to*1000}}, true); return; } else { from = range_from; to = range_to; } sensors = []; for (elem in datasetOverview) { sensor = datasetDetail[elem]["label"]; sensors.push(sensor); } datasetDetail =[]; for (i in sensors) { plotSensorDetail(sensors[i]); } }); plotSensor("heizkreisregler9.solarDaten.tempKollektor"); //ausreisser// plotSensor("heizkreisregler9.solarDaten.tempWarmwasserSolar"); plotSensor("heizkreisregler10.betriebsdatenRegler1.kesselTemperatur"); plotSensor("feuerungsautomat1.betriebsdatenRegler1.aussenTemperatur"); // TODO http://people.iola.dk/olau/flot/examples/annotating.html $('#ausblenden').click(function() { unplotSensor("heizkreisregler9.solarDaten.tempKollektor"); }); $('#einblenden').click(function() { plotSensor("heizkreisregler9.solarDaten.tempKollektor"); }); });