+ $tmp = int(unpack("C", substr $blk,33,1)+0);
+ if ($tmp > 100) {
+ dbg "LOOP Outside Humidity out of range ($tmp), record ignored";
+ return;
+ }
+ $h{Humidity_Out} = $tmp;
+ $tmp = int(unpack("C", substr $blk,11,1)+0);
+ if ($tmp > 100) {
+ dbg "LOOP Inside Humidity out of range ($tmp), record ignored";
+ return;
+ }
+ $h{Humidity_In} = $tmp;
+
+
+ $tmp = unpack("C", substr $blk,43,1)+0;
+ $h{UV} = $tmp unless $tmp >= 255;
+ $tmp = unpack("s", substr $blk,44,2)+0; # watt/m**2
+ $h{Solar} = $tmp unless $tmp >= 32767;
+
+ # $h{Rain_Rate} = nearest(0.1,unpack("s", substr $blk,41,2) * $rain_mult);
+ $rain = $h{Rain_Day} = nearest(0.1, unpack("s", substr $blk,50,2) * $rain_mult);
+ my $delta_rain = $h{Rain} = nearest(0.1, ($rain >= $ld->{last_rain} ? $rain - $ld->{last_rain} : $rain)) if $loop_count;
+ $ld->{last_rain} = $rain;
+
+ # what sort of packet is it?
+ my $sort = unpack("C", substr $blk,4,1);
+ if ($sort) {
+
+ # Newer LOOP2 packet
+ $tmp = unpack("C", substr $blk,18,2);
+ # $h{Wind_Avg_10} = nearest(0.1,mph2mps($tmp/10));
+ $tmp = unpack("C", substr $blk,20,2);
+ # $h{Wind_Avg_2} = nearest(0.1,mph2mps($tmp/10));
+ $tmp = unpack("C", substr $blk,22,2);
+ # $h{Wind_Gust_10} = nearest(0.1,mph2mps($tmp/10));
+
+ # $h{Dir_Avg_10} = unpack("C", substr $blk,24,2)+0;
+ $tmp = unpack("C", substr $blk,30,2);
+ $h{Dew_Point} = nearest(0.1, f2c($tmp));