fix main graph history slurping
authorDirk Koopman <djk@tobit.co.uk>
Sat, 18 Apr 2015 21:26:19 +0000 (22:26 +0100)
committerDirk Koopman <djk@tobit.co.uk>
Sat, 18 Apr 2015 21:26:19 +0000 (22:26 +0100)
Remove buttons from widgets.
Fully parameterise the amount of slurping.

loop.pl
templates/index.html.ep

diff --git a/loop.pl b/loop.pl
index 1a677d52360866d28f8e247bffbf1ca7dd406e21..fe9165779d3ac551e9b0a66a9ecb5b943e9f016b 100755 (executable)
--- a/loop.pl
+++ b/loop.pl
@@ -42,6 +42,8 @@ our $WS = {};                                 # websocket connections
 our $ld = {};
 our @last10minsr = ();
 our @last5daysh = ();
+our $windmins = 5;                             # no of minutes of wind data for the windrose
+our $histdays = 5;                             # no of days of (half)hour data to search for main graph
 
 our $loop_count;                               # how many LOOPs we have done, used as start indicator
 
@@ -152,8 +154,11 @@ read_ld();
 
 my $tnow = time;
 my $dayno = int ($tnow/86400);
-@last5daysh = grab_history(SMGLog->new("day"), "h", $tnow-(86400*5), $_) for ($dayno-4, $dayno-3, $dayno-2, $dayno-1, $dayno);  
-@last10minsr = map {my ($t, $js) = split(/\s/, $_, 2); $js} grab_history(SMGLog->new("debug"), "r", $tnow-(60*3), $dayno);
+for (my $i = 0-$histdays; $i < 0; ++$i ) {
+       push @last5daysh, grab_history(SMGLog->new("day"), "h", $tnow-(86400*$histdays), $dayno+$i+1); 
+}
+@last10minsr = map {my ($t, $js) = split(/\s/, $_, 2); $js} grab_history(SMGLog->new("debug"), "r", $tnow-(60*$windmins), $dayno);
+dbg sprintf("last5days = %d last10mins = %d", scalar @last5daysh, scalar @last10minsr);
 
 our $dlog = SMGLog->new("day");
 dbg "before next tick";
index d54833ddb60467769593123512d9736da5c81ea7..cd8155ac915383febf006cc071da7048e00738d5 100644 (file)
@@ -21,9 +21,9 @@
                <script>
                var ws;
                var daychart;
-               var daychart_days = 5;
+               var daychart_days = <%= $main::histdays %>;
                var windrose;
-               var windrose_mins = 10;
+               var windrose_mins = <%= $main::windmins %>;
                var windspeed;
                var winddir;
 
@@ -85,7 +85,7 @@
                                                                        js.r.Dir = lastdir;
                                                                }
                                                                lastt = js.t;
-                                                               fill_windrose(js, windrose_mins * (60 / 2.5));
+                                                               fill_windrose(js, windrose_mins * 24);
 //                                                     }
                                                        fill_windspeed(js);
                                                        fill_winddir(js);
                                        floating: true,
                                        backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
                                },
+                               exporting: {
+                                       buttons: {
+                                               contextButton: {
+                                                       enabled: false
+                                               }
+                                       }
+                               }, 
                                series: [{
                                        name: 'Rainfall',
                                        type: 'column',
                                            <% $s = "";
                                                   for (@main::last5daysh) { 
                                                      my $r = $main::json->decode($_);
-                                                     $s .=  "[" . $r->{t}*1000 . "," . $r->{h}->{Rain_1h} . "]," if $r;
+                                                     $s .=  "[" . $r->{t}*1000 . "," . $r->{h}->{Rain_1h} . "]," if $r && exists $r->{t} && exists $r->{h}->{Rain_1h};
                                                   }
                                                   chop $s if length $s; 
                                                %><%= $s %>
                                                <% $s = "";
                                                   for (@main::last5daysh) { 
                                                      my $r = $main::json->decode($_);
-                                                     $s .=  "[" . $r->{t}*1000 . "," . $r->{h}->{Pressure} . "]," if $r;
+                                                     $s .=  "[" . $r->{t}*1000 . "," . $r->{h}->{Pressure} . "]," if $r && exists $r->{t} && exists $r->{h}->{Pressure};
                                                   }
                                                   chop $s if length $s; 
                                                %><%= $s %>
                                                <% $s = "";
                                                   for (@main::last5daysh) { 
                                                      my $r = $main::json->decode($_);
-                                                     $s .=  "[" . $r->{t}*1000 . "," . $r->{h}->{Temp_Out} . "]," if $r;
+                                                     $s .=  "[" . $r->{t}*1000 . "," . $r->{h}->{Temp_Out} . "]," if $r && exists $r->{t} && exists $r->{h}->{Temp_Out};
                                                   }
                                                   chop $s if length $s; 
                                                %><%= $s %>
                                                groupPadding: 0
                                        }
                                },
+                               exporting: {
+                                       buttons: {
+                                               contextButton: {
+                                                       enabled: false
+                                               }
+                                       }
+                               }, 
 
                                series: [ {
-                                       type: 'scatter',
+                                       type: 'column',
                                        name: 'Wind mph',
                                        data: [
                                                <% my ($d, $w);
                                                          if ($r) {
                                                                  $r->{r}->{Dir} ||= $d;
                                                                  $r->{r}->{Wind} ||= $w;
-                                                                 $s .=  "[" . $r->{r}->{Dir} . "," . main::nearest(0.1, $r->{r}->{Wind}*2.23694) . "]," if $r;
+                                                                 $s .=  "[" . $r->{r}->{Dir} . "," . main::nearest(0.1, $r->{r}->{Wind}*2.23694) . "],";
                                                                  $d = $r->{r}->{Dir};
                                                                  $w = $r->{r}->{Wind};
                                                          }
                                                color: '#DF5353' // red
                                        }]
                                },
+                               exporting: {
+                                       buttons: {
+                                               contextButton: {
+                                                       enabled: false
+                                               }
+                                       }
+                               }, 
 
                                series: [{
                                        name: 'Speed',
                                                text:  '° deg'
                                        },
                                },
+                               exporting: {
+                                       buttons: {
+                                               contextButton: {
+                                                       enabled: false
+                                               }
+                                       }
+                               }, 
 
                                series: [{
                                        name: 'Direction',