+ if ($ts >= $last_hour + 3600) {
+ $h{Pressure_Trend} = unpack("C", substr $blk,3,1);
+ $h{Pressure_Trend_txt} = $bar_trend{$h{Pressure_Trend}};
+ $h{Batt_TX_OK} = (unpack("C", substr $blk,86,1)+0) ^ 1;
+ $h{Batt_Console} = nearest(0.01, unpack("s", substr $blk,87,2) * 0.005859375);
+ $h{Forecast_Icon} = unpack("C", substr $blk,89,1);
+ $h{Forecast_Rule} = unpack("C", substr $blk,90,1);
+ $h{Sunrise} = sprintf( "%04d", unpack("S", substr $blk,91,2) );
+ $h{Sunrise} =~ s/(\d{2})(\d{2})/$1:$2/;
+ $h{Sunset} = sprintf( "%04d", unpack("S", substr $blk,93,2) );
+ $h{Sunset} =~ s/(\d{2})(\d{2})/$1:$2/;
+
+ if ($loop_count) { # i.e not the first
+ my $a = wind_average(scalar @hour ? @hour : {w => $h{Wind}, d => $h{Dir}});
+
+ $h{Wind_1h} = nearest(0.1, $a->{w});
+ $h{Dir_1h} = nearest(0.1, $a->{d});
+
+ $a = wind_average(@min);
+ $h{Wind_1m} = nearest(0.1, $a->{w});
+ $h{Dir_1m} = nearest(1, $a->{d});
+
+ ($h{Rain_1m}, $h{Rain_1h}, $h{Rain_24h}) = calc_rain($rain);
+ }
+ $last_rain_min = $last_rain_hour = $rain;