$(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 sensorList = [{"sensorname":"heizkreisregler9.solarDaten.tempKollektor","show":true, "color":"#f30000"}, {"sensorname":"heizkreisregler10.betriebsdatenRegler1.kesselTemperatur","show":true, "color":"#283074"}, {"sensorname":"heizkreisregler9.solarDaten.tempWarmwasserSolar","show":false, "color":"#f0ff4c"}, {"sensorname":"feuerungsautomat1.betriebsdatenRegler1.aussenTemperatur","show":true, "color":"#84b500"}, {"sensorname":"heizkreisregler10.betriebsdatenRegler1.boilerTemperatur","show":true, "color":"#48b4ff"}]; var pickSensorConfig = function(sensorname) { $.each(sensorList, function(i,sensorconfig) { var sensor_found; if (sensorconfig.sensorname == sensorname) { sensorconfig_found = sensorconfig; return false; } else { sensorconfig_found = false; } }); return sensorconfig_found; } var replot = function() { if (plotDetail == null) { plotDetail = $.plot($("#ebusgraph"), datasetDetail, { xaxis: { mode: "time"}, yaxis: { min: -10, max: 100 }, 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, max: 100, autoscaleMargin: 0.1 }, legend: { show: false }, selection: { mode: "x" } }); } else { plotOverview.setData(datasetOverview); plotOverview.draw(); } plotOverview.setSelection({xaxis: {'from': from*1000, 'to': to*1000}}, true); }; var plotSensor = function(sensorconfig) { plotSensorDetail(sensorconfig); plotSensorOverview(sensorconfig); }; var unplotSensor = function(sensorname) { unplotSensorDetail(sensorname); unplotSensorOverview(sensorname); }; var plotSensorDetail = function(sensorconfig) { $.getJSON("sensor/"+escape(sensorconfig.sensorname)+"/"+from+"/"+to, function(response) { if (response['data']) { datasetDetail.push({'data':response['data'], 'label':sensorconfig.sensorname, 'color':sensorconfig.color}); replot(); } else { alert("Fehler: " + response["error"]); } }); }; var unplotSensorDetail = function(sensorname) { $.each(datasetDetail, function(i, sensor) { if (sensor.label == sensorname) { datasetDetail.splice(i,1); replot(); return false; } }); }; var plotSensorOverview = function(sensorconfig) { $.getJSON("sensor_cached/"+escape(sensorconfig.sensorname)+"/"+fromOverview, //+"/"+to, function(response) { if (response['data']) { datasetOverview.push({'data':response['data'], 'label':sensorconfig.sensorname, 'color':sensorconfig.color}); replotOverview(); } else { alert("Overview Fehler: " + response["error"]); } }); }; var unplotSensorOverview = function(sensorname) { $.each(datasetOverview, function(i, sensor) { if (sensor.label == sensorname) { datasetOverview.splice(i,1); replotOverview(); return false; } }); } $("#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]); } }); $.each(sensorList, function(i,sensorconfig) { var pickerDiv = $("