possibly save some memory
[svn42.git] / raspberry-kiosk / kiosk.js
index 5011b33..ef1e420 100644 (file)
@@ -164,7 +164,7 @@ function loadCalendarMainPage()
   });
 }
 
-
+var gauges = {}
 function drawGauge(targetelem, label, temp, options) {
     var data = google.visualization.arrayToDataTable([["Label", "Value"],[label,temp]]);
     // Create and draw the visualization.
@@ -172,11 +172,14 @@ function drawGauge(targetelem, label, temp, options) {
     {
         options["width"] = targetelem.getAttribute("width");
         options["height"] = targetelem.getAttribute("height");
-        var chart = new google.visualization.Gauge(targetelem);
-        chart.draw(data, options);
+       if (!gauges.hasOwnProperty(targetelem.id)) {
+               gauges[targetelem.id] = new google.visualization.Gauge(targetelem);
+       }
+        gauges[targetelem.id].draw(data, options);
     }
 }
 
+var linecharts = {}
 function drawLineGraph(targetelem, dataarray, options) {
   if (dataarray) {
       var data = google.visualization.arrayToDataTable(dataarray);
@@ -185,7 +188,10 @@ function drawLineGraph(targetelem, dataarray, options) {
       {
           options["width"]= targetelem.getAttribute("width");
           options["height"]=targetelem.getAttribute("height");
-          new google.visualization.LineChart(targetelem).draw(data, options);
+         if (!linecharts.hasOwnProperty(targetelem.id)) {
+              linecharts[targetelem.id] = new google.visualization.LineChart(targetelem);
+         }
+          linecharts[targetelem.id].draw(data, options);
         }
     }
 }
@@ -193,9 +199,11 @@ function drawLineGraph(targetelem, dataarray, options) {
 function loadAndDrawSensorData() {
   $.getJSON("https://realraum.at/shmcache/r3sensors.json", function(data){
     drawLineGraph(document.getElementById('tempgooglegraph'), data["TempSensorUpdate"],
-      {curveType: "function", title: 'Temperature Sensors', vAxis: {maxValue: 29, minValue:5}, colors: ['#FF0000','#CC0033','#660000','#CC3333'], chartArea:{left:32,top:20,width:"88%",height:"83%"}, legend: {position: "none"}}  );
+      {curveType: "function", title: 'Temperature Sensors', colors: ['#FF0000','#CC0033','#660000','#CC3333'], chartArea:{left:32,top:20,width:"88%",height:"83%"}, legend: {position: "none"}}  );
     drawLineGraph(document.getElementById('lightgooglegraph'), data["IlluminationSensorUpdate"],
         {curveType: "none", title: 'Illumination Sensors', vAxis: {maxValue: 1024, minValue:5}, chartArea:{left:32,top:20,width:"88%",height:"83%"}, legend: {position: "none"}}  );
+    drawLineGraph(document.getElementById('movementgooglegraph'), data["MovementSensorUpdate"],
+        {curveType: "none", title: 'Movement Sensors', vAxis: {maxValue: 10, minValue:0}, chartArea:{left:32,top:20,width:"88%",height:"83%"}, legend: {position: "none"}}  );
     });
 }