Re: [weewx-development] Vantage 3.2.0 driver not converting dayRain correctly for mm bucket sizes (weewx 4.0.0b5)

45 views
Skip to first unread message

Thomas Keffer

unread,
Dec 24, 2019, 7:25:39 AM12/24/19
to James Taylor, weewx-development
I believe you're right. Can we conclude that monthRain and yearRain need to be changed as well?

You didn't say what kind of rain bucket you have. From your note, it sounds like a 0.2mm bucket. Is that right?

-tk



On Tue, Dec 24, 2019 at 2:44 AM James Taylor <ja...@blisteringbarnacles.co.uk> wrote:
Hello

Since installing and testing 4.0.0b5 (working really well) I noticed my rain reports were reporting incorrectly and going in jumps of 2.54mm rather than 2mm.

I looked at the data in the archive database (using METRIC), and it was reporting rain as 0.0254 (ie 0.254cm)

Looking at the loop data as well and it was reporting 0.06 inch for dayRain (0.15cm), though my weather station is reporting 0.12cm

LOOP:   2019-12-24 08:22:06 GMT (1577175726) appTemp: 40.77673899893075, barometer: 29.771, beaufort: 2, cloudbase: 653.4402820747907, consBatteryVoltage: 4.68, dateTime: 1577175726, dayET: 0.0, dayRain: 0.06, dewpoint: 43.92886275887092, extraAlarm1: 0, extraAlarm2: 0, extraAlarm3: 0, extraAlarm4: 0, extraAlarm5: 0, extraAlarm6: 0, extraAlarm7: 0, extraAlarm8: 0, forecastIcon: 8, forecastRule: 120, heatindex: 45.0, humidex: 45.0, inDewpoint: 50.31047742263314, inHumidity: 50.0, insideAlarm: 0, inTemp: 69.8, leafWet4: 0.0, maxSolarRad: 0.2677935114636761, monthET: 0.38, monthRain: 5.01, outHumidity: 96.0, outsideAlarm1: 0, outsideAlarm2: 0, outTemp: 45.0, pressure: 29.32375790783909, radiation: 8.4, rain: None, rainAlarm: 0, rainRate: 0.0, soilLeafAlarm1: 0, soilLeafAlarm2: 0, soilLeafAlarm3: 0, soilLeafAlarm4: 0, stormRain: 0.0472440942, stormStart: 1577145600, sunrise: 1577174880.0, sunset: 1577205168.0, txBatteryStatus: 0, usUnits: 1, UV: 0.0, windchill: 42.34519893957256, windDir: 221.0, windGust: 5.0, windGustDir: 221.0, windSpeed: 5.0, windSpeed10: 5.0, yearET: 27.93, yearRain: 29.23

In summary I started looking at the vantage.py code and I believe it is because dayRain said

    'dayRain' : lambda p, k: float(p[k]) / 100.0,

and I think it should be calling the _decode_rain function

_loop_map = {
    'altimeter'       : lambda p, k: float(p[k]) / 1000.0 if p[k] else None,
    'barometer'       : lambda p, k: float(p[k]) / 1000.0 if p[k] else None,
    'consBatteryVoltage': lambda p, k: float((p[k] * 300) >> 9) / 100.0,
    'dayET'           : lambda p, k: float(p[k]) / 1000.0,
    'dayRain'         : _decode_rain,
    'dewpoint'        : lambda p, k: float(p[k]) if p[k] & 0xff != 0xff else None,


Loop data is now reporting 0.0472440942 inch which equals 0.12cm.

LOOP:   2019-12-24 09:04:03 GMT (1577178243) appTemp: 42.50129603384309, barometer: 29.775, beaufort: 1, cloudbase: 717.0811874901804, consBatteryVoltage: 4.68, dateTime: 1577178243, dayET: 0.0, dayRain: 0.0472440942, dewpoint: 44.64884277504321, extraAlarm1: 0, extraAlarm2: 0, extraAlarm3: 0, extraAlarm4: 0, extraAlarm5: 0, extraAlarm6: 0, extraAlarm7: 0, extraAlarm8: 0, forecastIcon: 8, forecastRule: 120, heatindex: 46.0, humidex: 46.040897257508945, inDewpoint: 49.675285300449026, inHumidity: 49.0, insideAlarm: 0, inTemp: 69.7, leafWet4: 0.0, maxSolarRad: 20.265282927928308, monthET: 0.38, monthRain: 5.01, outHumidity: 95.0, outsideAlarm1: 0, outsideAlarm2: 0, outTemp: 46.0, pressure: 29.327744885181772, radiation: 25.2, rain: None, rainAlarm: 0, rainRate: 0.0, soilLeafAlarm1: 0, soilLeafAlarm2: 0, soilLeafAlarm3: 0, soilLeafAlarm4: 0, stormRain: 0.0472440942, stormStart: 1577145600, sunrise: 1577174880.0, sunset: 1577205168.0, txBatteryStatus: 0, usUnits: 1, UV: 0.0, windchill: 44.249603120917584, windDir: 212.0, windGust: 4.0, windGustDir: 212.0, windSpeed: 4.0, windSpeed10: 5.0, yearET: 27.93, yearRain: 29.23

James

--
You received this message because you are subscribed to the Google Groups "weewx-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-developm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-development/d60cf791-032a-4c65-88fa-71ed5fae0d64%40googlegroups.com.

James Taylor

unread,
Dec 24, 2019, 8:46:55 AM12/24/19
to weewx-development
Tom

Yes I have the 2mm bucket, therefore started to spot the graphs and numbers misbehaving when I was getting x.3mm and x.5mm of rain values being reported!

I found this under the 3.1.1 so I'm guessing it should the same _loop_map entries so yes monthRain and yearRain as well.

        if self.rain_bucket_type == 1:
            _archive_map['rain'] = _archive_map['rainRate'] = _loop_map['stormRain'] = _loop_map['dayRain'] = \
                _loop_map['monthRain'] = _loop_map['yearRain'] = _bucket_1
            _loop_map['rainRate'] = _bucket_1_None


A quick sql update and rebuild of the archive database restored all the reporting.

James

Thomas Keffer

unread,
Dec 24, 2019, 9:24:23 AM12/24/19
to James Taylor, weewx-development
Fixed in commit 554f5b3.

Thanks, James, for your thorough debugging. Having a US bucket, I would never have caught that.

-tk

--
You received this message because you are subscribed to the Google Groups "weewx-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-developm...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages