$(document).ready(function(){ var from = Math.round(new Date().getTime()/1000) - 3*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 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 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 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"]); } }); }; $("#overview").bind("plotselected", function (event, ranges) { range_from = Math.round(ranges.xaxis.from / 1000); range_to = Math.round(ranges.xaxis.to / 1000); if (range_to - range_from > 4 * 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 });