No rain with user.gw1000 and wn1980ae and standard rain sensor..

140 views
Skip to first unread message

Tobias Kretschmar

unread,
Dec 24, 2023, 5:39:22 PM12/24/23
to weewx-user
My issue is missing rain in the reports.

I have weewx 4.10.2 with weather station WH1080. But it's rain sensor is defect. 
I received a WN1980ae with WH40 rain sensor but not yet the WS90. To keep the outside temp and wind, I installed user.gw1000 0.6.0b2 and set it up as service, not driver. User.gw1000 finds the WN1980ae station. When I test run user.gw1000 with --test-service it reports rain:

LOOP:   2023-12-24 22:12:44 CET (1703452364) 'dateTime': '1703452364', 'dayRain': '2.3425196850393704', 'dummyTemp': '96.3', 'inHumidity': '51', 'inTemp': '69.98', 'monthRain': '3.732283464566929', 'pressure': '28.3192580125', 'rain': '0.003937007874015524', 'rainRate': '0.047244094439999995', 'relbarometer': '1003.2', 'stormRain': '2.3425196850393704', 'usUnits': '1', 'weekRain': '2.3425196850393704', 'wh40_batt': '1.41', 'wh40_sig': '4', 'yearRain': '3.732283464566929'

But the rain never make it in the augmented from weewxd run directly. All other rain field (dayRain, etc are filled). And I have no rain in the reports.

LOOP:   2023-12-24 22:12:00 CET (1703452320) 'altimeter': '29.80880623780368', 'appTemp': '41.33501455838798', 'barometer': '29.827191840290514', 'cloudbase': '1444.6923571662626', 'dateTime': '1703452320', 'dayRain': '2.3385826771653546', 'delay': '12', 'dewpoint': '47.29239559598307', 'ET': 'None', 'heatindex': '47.42999999999999', 'humidex': '49.4860389883321', 'inDewpoint': '51.22109845904412', 'inHumidity': '60.0', 'inTemp': '65.48', 'maxSolarRad': '0.0', 'monthRain': '3.7283464566929134', 'outHumidity': '96.0', 'outTemp': '48.379999999999995', 'outTempBatteryStatus': '0', 'pressure': '28.537779920000002', 'ptr': '38864', 'radiation': 'None', 'rain': '0.0', 'rainRate': '0.023622047219999998', 'rainTotal': '7.050000000000001', 'relbarometer': '1003.3', 'rxCheckPercent': '100', 'status': '0', 'stormRain': '2.3385826771653546', 'usUnits': '1', 'UV': 'None', 'weekRain': '2.3385826771653546', 'wh40_batt': '1.41', 'wh40_sig': '4', 'windchill': '43.564900660116336', 'windDir': '90.0', 'windGust': '17.448146445126575', 'windrun': 'None', 'windSpeed': '11.408403444890455', 'yearRain': '3.7283464566929134'
LOOP:   2023-12-24 22:13:01 CET (1703452381) 'altimeter': '29.80880623780368', 'appTemp': '39.571014558387986', 'barometer': '29.827191840290514', 'cloudbase': '1444.6923571662626', 'dateTime': '1703452381', 'dayRain': '2.34251968503937', 'delay': '13', 'dewpoint': '47.29239559598307', 'ET': 'None', 'heatindex': '47.42999999999999', 'humidex': '49.4860389883321', 'inDewpoint': '51.22109845904412', 'inHumidity': '60.0', 'inTemp': '65.48', 'maxSolarRad': '0.0', 'monthRain': '3.732283464566929', 'outHumidity': '96.0', 'outTemp': '48.379999999999995', 'outTempBatteryStatus': '0', 'pressure': '28.537779920000002', 'ptr': '38864', 'radiation': 'None', 'rain': '0.0', 'rainRate': '0.047244094439999995', 'rainTotal': '7.050000000000001', 'relbarometer': '1003.2', 'rxCheckPercent': '100', 'status': '0', 'stormRain': '2.34251968503937', 'usUnits': '1', 'UV': 'None', 'weekRain': '2.34251968503937', 'wh40_batt': '1.41', 'wh40_sig': '4', 'windchill': '42.68467215537006', 'windDir': '90.0', 'windGust': '19.014005741484088', 'windrun': 'None', 'windSpeed': '14.540122037605482', 'yearRain': '3.732283464566929'

I have no custom field_map.

I am not able to run it with debug = 1. Then gw1000 throw this error:
Traceback (most recent call last):
  File "/home/weewx/bin/weewxd", line 249, in <module>
    main()
  File "/home/weewx/bin/weewxd", line 148, in main
    engine = weewx.engine.StdEngine(config_dict)
  File "/home/weewx/bin/weewx/engine.py", line 93, in __init__
    self.loadServices(config_dict)
  File "/home/weewx/bin/weewx/engine.py", line 161, in loadServices
    obj = weeutil.weeutil.get_object(svc)(self, config_dict)
  File "/home/weewx/bin/user/gw1000.py", line 1390, in __init__
    loginf('     field map is %s' % self.field_map())
AttributeError: 'GatewayService' object has no attribute 'field_map'

Does the gw1000 support the WN1980ae? Any idea how I can get the rain in weewx?

Tobias Kretschmar

unread,
Dec 24, 2023, 5:50:33 PM12/24/23
to weewx-user
PS: If I delete line 1390 from gw1000.py I get the following log starting weewx

Dec 24 23:31:41 wetterpi weewx[18784] INFO __main__: Initializing weewx version 4.10.2
Dec 24 23:31:41 wetterpi weewx[18784] INFO __main__: Using Python 3.7.3 (default, Oct 11 2023, 09:51:27) #012[GCC 8.3.0]
Dec 24 23:31:41 wetterpi weewx[18784] INFO __main__: Located at /usr/bin/python3
Dec 24 23:31:41 wetterpi weewx[18784] INFO __main__: Platform Linux-5.10.103+-armv6l-with-debian-10.13
Dec 24 23:31:41 wetterpi weewx[18784] INFO __main__: Locale is 'de_DE.UTF-8'
Dec 24 23:31:41 wetterpi weewx[18784] INFO __main__: Using configuration file /home/weewx/weewx.conf
Dec 24 23:31:41 wetterpi weewx[18784] INFO __main__: Debug is 1
Dec 24 23:31:41 wetterpi weewx[18784] DEBUG __main__: Initializing engine
Dec 24 23:31:41 wetterpi weewx[18784] INFO weewx.engine: Loading station type FineOffsetUSB (weewx.drivers.fousb)
Dec 24 23:31:41 wetterpi weewx[18784] INFO weewx.drivers.fousb: driver version is 1.20
Dec 24 23:31:41 wetterpi weewx[18784] INFO weewx.drivers.fousb: polling mode is PERIODIC
Dec 24 23:31:41 wetterpi weewx[18784] INFO weewx.drivers.fousb: polling interval is 60
Dec 24 23:31:42 wetterpi weewx[18784] INFO weewx.drivers.fousb: found station on USB bus= device=
Dec 24 23:31:42 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
Dec 24 23:31:42 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
Dec 24 23:31:42 wetterpi weewx[18784] DEBUG weewx.engine: Loading service user.gw1000.GatewayService
Dec 24 23:31:43 wetterpi weewx[18784] INFO user.gw1000: GatewayService: version is 0.6.0b2
Dec 24 23:31:43 wetterpi weewx[18784] INFO user.gw1000:      max age of API data to be used is 60 seconds
Dec 24 23:31:43 wetterpi weewx[18784] INFO user.gw1000:      lost contact will be logged every 21600 seconds
Dec 24 23:31:43 wetterpi weewx[18784] INFO user.gw1000:      device address is 192.168.0.31:45000
Dec 24 23:31:43 wetterpi weewx[18784] INFO user.gw1000:      poll interval is 20 seconds
Dec 24 23:31:43 wetterpi weewx[18784] INFO user.gw1000:      max tries is 3, retry wait time is 10 seconds
Dec 24 23:31:43 wetterpi weewx[18784] INFO user.gw1000:      broadcast address is 255.255.255.255:46000, broadcast timeout is 5 seconds
Dec 24 23:31:43 wetterpi weewx[18784] INFO user.gw1000:      socket timeout is 2 seconds
Dec 24 23:31:43 wetterpi weewx[18784] INFO user.gw1000:      field map is {'co2': 'co2', 'co2_24h_avg': 'co2_24h_avg', 'dateTime': 'datetime', 'daymaxwind': 'daymaxwind', 'dayRain': 't_rainday', 'dewpoint': 'dewpoint', 'extraHumid1': 'humid1', 'extraHumid2': 'humid2', 'extraHumid3': 'humid3', 'extraHumid4': 'humid4', 'extraHumid5': 'humid5', 'extraHumid6': 'humid6', 'extraHumid7': 'humid7', 'extraHumid8': 'humid8', 'extraHumid17': 'humid17', 'extraTemp1': 'temp1', 'extraTemp2': 'temp2', 'extraTemp3': 'temp3', 'extraTemp4': 'temp4', 'extraTemp5': 'temp5', 'extraTemp6': 'temp6', 'extraTemp7': 'temp7', 'extraTemp8': 'temp8', 'extraTemp9': 'temp9', 'extraTemp10': 'temp10', 'extraTemp11': 'temp11', 'extraTemp12': 'temp12', 'extraTemp13': 'temp13', 'extraTemp14': 'temp14', 'extraTemp15': 'temp15', 'extraTemp16': 'temp16', 'extraTemp17': 'temp17', 'heatindex': 'heatindex', 'inHumidity': 'inhumid', 'inTemp': 'intemp', 'leafWet1': 'leafwet1', 'leafWet2': 'leafwet2', 'leafWet3': 'leafwet3', 'leafWet4': 'leafwet4', 'leafWet5': 'leafwet5', 'leafWet6': 'leafwet6', 'leafWet7': 'leafwet7', 'leafWet8': 'leafwet8', 'leak1': 'leak1', 'leak2': 'leak2', 'leak3': 'leak3', 'leak4': 'leak4', 'lightning_distance': 'lightningdist', 'lightning_last_det_time': 'lightningdettime', 'lightning_strike_count': 'lightning_strike_count', 'lightningcount': 'lightningcount', 'luminosity': 'light', 'monthRain': 't_rainmonth', 'outHumidity': 'outhumid', 'outTemp': 'outtemp', 'p_dayRain': 'p_rainday', 'p_monthRain': 'p_rainmonth', 'p_rain': 'p_rain', 'p_rainRate': 'p_rainrate', 'p_stormRain': 'p_rainevent', 'p_weekRain': 'p_rainweek', 'p_yearRain': 'p_rainyear', 'pm2_5': 'pm251', 'pm2_51_24h_avg': 'pm251_24h_avg', 'pm2_52': 'pm252', 'pm2_52_24h_avg': 'pm252_24h_avg', 'pm2_53': 'pm253', 'pm2_53_24h_avg': 'pm253_24h_avg', 'pm2_54': 'pm254', 'pm2_54_24h_avg': 'pm254_24h_avg', 'pm2_55': 'pm255', 'pm2_55_24h_avg': 'pm255_24h_avg', 'pm10': 'pm10', 'pm10_24h_avg': 'pm10_24h_avg', 'pressure': 'absbarometer', 'rain': 't_rain', 'rainRate': 't_rainrate', 'relbarometer': 'relbarometer', 'soilMoist1': 'soilmoist1', 'soilMoist2': 'soilmoist2', 'soilMoist3': 'soilmoist3', 'soilMoist4': 'soilmoist4', 'soilMoist5': 'soilmoist5', 'soilMoist6': 'soilmoist6', 'soilMoist7': 'soilmoist7', 'soilMoist8': 'soilmoist8', 'soilMoist9': 'soilmoist9', 'soilMoist10': 'soilmoist10', 'soilMoist11': 'soilmoist11', 'soilMoist12': 'soilmoist12', 'soilMoist13': 'soilmoist13', 'soilMoist14': 'soilmoist14', 'soilMoist15': 'soilmoist15', 'soilMoist16': 'soilmoist16', 'soilTemp1': 'soiltemp1', 'soilTemp2': 'soiltemp2', 'soilTemp3': 'soiltemp3', 'soilTemp4': 'soiltemp4', 'soilTemp5': 'soiltemp5', 'soilTemp6': 'soiltemp6', 'soilTemp7': 'soiltemp7', 'soilTemp8': 'soiltemp8', 'soilTemp9': 'soiltemp9', 'soilTemp10': 'soiltemp10', 'soilTemp11': 'soiltemp11', 'soilTemp12': 'soiltemp12', 'soilTemp13': 'soiltemp13', 'soilTemp14': 'soiltemp14', 'soilTemp15': 'soiltemp15', 'soilTemp16': 'soiltemp16', 'stormRain': 't_rainevent', 'totalRain': 't_raintotals', 'UV': 'uvi', 'uvradiation': 'uv', 'weekRain': 't_rainweek', 'wh24_batt': 'wh24_batt', 'wh24_sig': 'wh24_sig', 'wh25_batt': 'wh25_batt', 'wh25_sig': 'wh25_sig', 'wh26_batt': 'wh26_batt', 'wh26_sig': 'wh26_sig', 'wh31_ch1_batt': 'wh31_ch1_batt', 'wh31_ch1_sig': 'wh31_ch1_sig', 'wh31_ch2_batt': 'wh31_ch2_batt', 'wh31_ch2_sig': 'wh31_ch2_sig', 'wh31_ch3_batt': 'wh31_ch3_batt', 'wh31_ch3_sig': 'wh31_ch3_sig', 'wh31_ch4_batt': 'wh31_ch4_batt', 'wh31_ch4_sig': 'wh31_ch4_sig', 'wh31_ch5_batt': 'wh31_ch5_batt', 'wh31_ch5_sig': 'wh31_ch5_sig', 'wh31_ch6_batt': 'wh31_ch6_batt', 'wh31_ch6_sig': 'wh31_ch6_sig', 'wh31_ch7_batt': 'wh31_ch7_batt', 'wh31_ch7_sig': 'wh31_ch7_sig', 'wh31_ch8_batt': 'wh31_ch8_batt', 'wh31_ch8_sig': 'wh31_ch8_sig', 'wh32_batt': 'wh32_batt', 'wh32_sig': 'wh32_sig', 'wh40_batt': 'wh40_batt', 'wh40_sig': 'wh40_sig', 'wh41_ch1_batt': 'wh41_ch1_batt', 'wh41_ch1_sig': 'wh41_ch1_sig', 'wh41_ch2_batt': 'wh41_ch2_batt', 'wh41_ch2_sig': 'wh41_ch2_sig', 'wh41_ch3_batt': 'wh41_ch3_batt', 'wh41_ch3_sig': 'wh41_ch3_sig', 'wh41_ch4_batt': 'wh41_ch4_batt', 'wh41_ch4_sig': 'wh41_ch4_sig', 'wh45_batt': 'wh45_batt', 'wh45_sig': 'wh45_sig', 'wh51_ch1_batt': 'wh51_ch1_batt', 'wh51_ch1_sig': 'wh51_ch1_sig', 'wh51_ch2_batt': 'wh51_ch2_batt', 'wh51_ch2_sig': 'wh51_ch2_sig', 'wh51_ch3_batt': 'wh51_ch3_batt', 'wh51_ch3_sig': 'wh51_ch3_sig', 'wh51_ch4_batt': 'wh51_ch4_batt', 'wh51_ch4_sig': 'wh51_ch4_sig', 'wh51_ch5_batt': 'wh51_ch5_batt', 'wh51_ch5_sig': 'wh51_ch5_sig', 'wh51_ch6_batt': 'wh51_ch6_batt', 'wh51_ch6_sig': 'wh51_ch6_sig', 'wh51_ch7_batt': 'wh51_ch7_batt', 'wh51_ch7_sig': 'wh51_ch7_sig', 'wh51_ch8_batt': 'wh51_ch8_batt', 'wh51_ch8_sig': 'wh51_ch8_sig', 'wh51_ch9_batt': 'wh51_ch9_batt', 'wh51_ch9_sig': 'wh51_ch9_sig', 'wh51_ch10_batt': 'wh51_ch10_batt', 'wh51_ch10_sig': 'wh51_ch10_sig', 'wh51_ch11_batt': 'wh51_ch11_batt', 'wh51_ch11_sig': 'wh51_ch11_sig', 'wh51_ch12_batt': 'wh51_ch12_batt', 'wh51_ch12_sig': 'wh51_ch12_sig', 'wh51_ch13_batt': 'wh51_ch13_batt', 'wh51_ch13_sig': 'wh51_ch13_sig', 'wh51_ch14_batt': 'wh51_ch14_batt', 'wh51_ch14_sig': 'wh51_ch14_sig', 'wh51_ch15_batt': 'wh51_ch15_batt', 'wh51_ch15_sig': 'wh51_ch15_sig', 'wh51_ch16_batt': 'wh51_ch16_batt', 'wh51_ch16_sig': 'wh51_ch16_sig', 'wh55_ch1_batt': 'wh55_ch1_batt', 'wh55_ch1_sig': 'wh55_ch1_sig', 'wh55_ch2_batt': 'wh55_ch2_batt', 'wh55_ch2_sig': 'wh55_ch2_sig', 'wh55_ch3_batt': 'wh55_ch3_batt', 'wh55_ch3_sig': 'wh55_ch3_sig', 'wh55_ch4_batt': 'wh55_ch4_batt', 'wh55_ch4_sig': 'wh55_ch4_sig', 'wh57_batt': 'wh57_batt', 'wh57_sig': 'wh57_sig', 'wh65_batt': 'wh65_batt', 'wh65_sig': 'wh65_sig', 'wh68_batt': 'wh68_batt', 'wh68_sig': 'wh68_sig', 'windchill': 'windchill', 'windDir': 'winddir', 'windGust': 'gustspeed', 'windSpeed': 'windspeed', 'wn34_ch1_batt': 'wn34_ch1_batt', 'wn34_ch1_sig': 'wn34_ch1_sig', 'wn34_ch2_batt': 'wn34_ch2_batt', 'wn34_ch2_sig': 'wn34_ch2_sig', 'wn34_ch3_batt': 'wn34_ch3_batt', 'wn34_ch3_sig': 'wn34_ch3_sig', 'wn34_ch4_batt': 'wn34_ch4_batt', 'wn34_ch4_sig': 'wn34_ch4_sig', 'wn34_ch5_batt': 'wn34_ch5_batt', 'wn34_ch5_sig': 'wn34_ch5_sig', 'wn34_ch6_batt': 'wn34_ch6_batt', 'wn34_ch6_sig': 'wn34_ch6_sig', 'wn34_ch7_batt': 'wn34_ch7_batt', 'wn34_ch7_sig': 'wn34_ch7_sig', 'wn34_ch8_batt': 'wn34_ch8_batt', 'wn34_ch8_sig': 'wn34_ch8_sig', 'wn35_ch1_batt': 'wn35_ch1_batt', 'wn35_ch1_sig': 'wn35_ch1_sig', 'wn35_ch2_batt': 'wn35_ch2_batt', 'wn35_ch2_sig': 'wn35_ch2_sig', 'wn35_ch3_batt': 'wn35_ch3_batt', 'wn35_ch3_sig': 'wn35_ch3_sig', 'wn35_ch4_batt': 'wn35_ch4_batt', 'wn35_ch4_sig': 'wn35_ch4_sig', 'wn35_ch5_batt': 'wn35_ch5_batt', 'wn35_ch5_sig': 'wn35_ch5_sig', 'wn35_ch6_batt': 'wn35_ch6_batt', 'wn35_ch6_sig': 'wn35_ch6_sig', 'wn35_ch7_batt': 'wn35_ch7_batt', 'wn35_ch7_sig': 'wn35_ch7_sig', 'wn35_ch8_batt': 'wn35_ch8_batt', 'wn35_ch8_sig': 'wn35_ch8_sig', 'ws80_batt': 'ws80_batt', 'ws80_sig': 'ws80_sig', 'ws90_batt': 'ws90_batt', 'ws90_sig': 'ws90_sig', 'yearRain': 't_rainyear'}
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG user.gw1000:      firmware update checks will not occur
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG user.gw1000:      sensor ID decoding will use 'WH32'
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG user.gw1000:      battery state data will be ignored for legacy WH40
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG user.gw1000:      battery state will not be reported for sensors with no signal data
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG user.gw1000:      unknown fields will be ignored
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service user.gw1000.GatewayService
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
Dec 24 23:31:43 wetterpi weewx[18784] INFO weewx.engine: StdConvert target unit is 0x1
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.engine.StdQC
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
Dec 24 23:31:43 wetterpi weewx[18784] INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.manager: Daily summary version is 4.0
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.wxservices.StdWXCalculate
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdWXXTypes
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdWXXTypes
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdPressureCooker
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdPressureCooker
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdRainRater
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdRainRater
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdDelta
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdDelta
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.engine.StdArchive
Dec 24 23:31:43 wetterpi weewx[18784] INFO weewx.engine: Archive will use data binding wx_binding
Dec 24 23:31:43 wetterpi weewx[18784] INFO weewx.engine: Record generation will be attempted in 'software'
Dec 24 23:31:43 wetterpi weewx[18784] INFO weewx.engine: Using archive interval of 900 seconds (software record generation)
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.engine.StdArchive
Dec 24 23:31:43 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.restx.StdStationRegistry
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.restx: StationRegistry: Registration not requested.
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.restx.StdStationRegistry
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.restx.StdWunderground
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.restx: WU essentials: {}
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.restx: Wunderground-PWS: Data for station ISACHSEN177 will be posted
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.restx.StdWunderground
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.restx.StdPWSweather
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.restx: PWSweather: Posting not enabled.
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.restx.StdPWSweather
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.restx.StdCWOP
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.restx: CWOP: Posting not enabled.
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.restx.StdCWOP
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.restx.StdWOW
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.restx: WOW: Posting not enabled.
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.restx.StdWOW
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.restx.StdAWEKAS
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.restx: AWEKAS: Posting not enabled.
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.restx.StdAWEKAS
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.engine.StdPrint
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.engine.StdPrint
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Loading service weewx.engine.StdReport
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.manager: Daily summary version is 4.0
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.engine: 'pyephem' detected, extended almanac data is available
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Finished loading service weewx.engine.StdReport
Dec 24 23:31:44 wetterpi weewx[18784] INFO __main__: Starting up weewx version 4.10.2
Dec 24 23:31:44 wetterpi weewx[18784] DEBUG weewx.engine: Station does not support reading the time
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.manager: Starting backfill of daily summaries
Dec 24 23:31:44 wetterpi weewx[18784] INFO weewx.manager: Daily summaries up to date
Dec 24 23:31:45 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: get 2419 records since 2023-12-24 21:51:30
Dec 24 23:31:45 wetterpi weewx[18784] INFO weewx.drivers.fousb: synchronising to the weather station (quality=0)
Dec 24 23:31:46 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: status {'rain_overflow': 0, 'lost_connection': 0, 'unknown': 0} (0)
Dec 24 23:32:03 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:32:23 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:32:25 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: new data
Dec 24 23:32:25 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: setting sensor clock 25.2268
Dec 24 23:32:25 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: live synchronised
Dec 24 23:32:25 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: packet timestamp is 22:32:25
Dec 24 23:32:25 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: estimated log time 22:29:01 +/- 24s (22:28:37..22:29:25)
Dec 24 23:32:43 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:33:03 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:33:10 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: avoid 5.884102821350098
Dec 24 23:33:16 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: new data
Dec 24 23:33:16 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: packet timestamp is 22:33:13
Dec 24 23:33:16 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: estimated log time 22:28:55 +/- 18s (22:28:25..22:29:13)
Dec 24 23:33:24 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:33:44 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:33:58 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: avoid 5.8832409381866455
Dec 24 23:34:04 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:34:04 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: new data
Dec 24 23:34:04 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: packet timestamp is 22:34:01
Dec 24 23:34:04 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: estimated log time 22:28:49 +/- 12s (22:28:13..22:29:01)
Dec 24 23:34:04 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: synchronised to 2023-12-24 22:28:49 for ptr 0x9820
Dec 24 23:34:04 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: found 3 archive records
Dec 24 23:34:04 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: returning archive record 1703455129
Dec 24 23:34:04 wetterpi weewx[18784] INFO weewx.manager: Added record 2023-12-24 22:58:49 CET (1703455129) to database 'weewx.sdb'
Dec 24 23:34:04 wetterpi weewx[18784] INFO weewx.manager: Added record 2023-12-24 22:58:49 CET (1703455129) to daily summary in 'weewx.sdb'
Dec 24 23:34:04 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: returning archive record 1703456029
Dec 24 23:34:04 wetterpi weewx[18784] INFO weewx.manager: Added record 2023-12-24 23:13:49 CET (1703456029) to database 'weewx.sdb'
Dec 24 23:34:05 wetterpi weewx[18784] INFO weewx.manager: Added record 2023-12-24 23:13:49 CET (1703456029) to daily summary in 'weewx.sdb'
Dec 24 23:34:05 wetterpi weewx[18784] INFO weewx.restx: Wunderground-PWS: Published record 2023-12-24 22:58:49 CET (1703455129)
Dec 24 23:34:05 wetterpi weewx[18784] DEBUG weewx.drivers.fousb: returning archive record 1703456929
Dec 24 23:34:05 wetterpi weewx[18784] INFO weewx.manager: Added record 2023-12-24 23:28:49 CET (1703456929) to database 'weewx.sdb'
Dec 24 23:34:05 wetterpi weewx[18784] INFO weewx.manager: Added record 2023-12-24 23:28:49 CET (1703456929) to daily summary in 'weewx.sdb'
Dec 24 23:34:06 wetterpi weewx[18784] INFO weewx.engine: Starting main packet loop.
Dec 24 23:34:06 wetterpi weewx[18784] INFO weewx.restx: Wunderground-PWS: Published record 2023-12-24 23:13:49 CET (1703456029)
Dec 24 23:34:06 wetterpi weewx[18784] INFO weewx.drivers.fousb: station status {'rain_overflow': 0, 'lost_connection': 0, 'unknown': 0} (0)
Dec 24 23:34:06 wetterpi weewx[18784] INFO weewx.restx: Wunderground-PWS: Published record 2023-12-24 23:28:49 CET (1703456929)
Dec 24 23:34:06 wetterpi weewx[18784] INFO user.gw1000: Using 't_rainyear' for rain total
Dec 24 23:34:06 wetterpi weewx[18784] INFO user.gw1000: skipping rain measurement of 95.0: no last rain
Dec 24 23:34:24 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:34:35 wetterpi dhcpcd[380]: enxb827eba3f32a: Router Advertisement from fe80::3631:c4ff:fe48:90bd
Dec 24 23:34:44 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds
Dec 24 23:35:04 wetterpi weewx[18784] DEBUG user.gw1000: Next update in 20 seconds

gjr80

unread,
Dec 26, 2023, 1:23:25 AM12/26/23
to weewx-user
What you are seeing is expected behaviour. When run as a service the Ecowitt gateway driver augments loop packets with data from the Ecowitt device, but it does not overwrite existing loop data. Whilst your WH1080 station no longer emits rainfall data, the fousb driver used to support that station continues to emit loop packets containing the field rain, albeit with rain always set to 0.0. When the Ecowitt gateway driver augments the fousb loop packet, the rain field is left untouched since the rain field already exists in the fousb loop packet.

When you run the Ecowitt gateway driver with the --test-service option you see the field rain appearing in the output as the --test-service option uses a simplified, fixed loop packet (actually just one observation only - dummyTemp=96.3F). So the field rain does not exist in the loop packet and consequently the issue of overwriting/not overwriting the field rain does not arise.

So what can you do? Two options come to mind:

1. You could alter the field map used by the Ecowitt gateway driver to map rainfall to some other field, for example ecowitt_rain. You could then place an entry in weewx.conf [StdCalibrate] [[Corrections]] to set the field rain to ecowitt_rain.

2. I can implement an option in the Ecowitt gateway driver config that allows loop packet fields to be overwritten by Ecowitt data. However, this would be an all or nothing setting, ie loop packet fields would be overwitten by all Ecowitt fields, not just rain. So you might find temperature and humiidy fields from you WH1080 might be overwritten by the same fields if emitted by the Ecwoittt gateway driver. However, this could be mitigated by altering the Ecowitt gateway field map to only emit those fields to be overwritten (in this case the field rain). Give me a day or two and I can implement this in v0.6.0b3.

The other complicating factor is loop packet timing. You have the fousb driver configured to poll your station every 60 seconds and you should see loop packets every 60 seconds. When used as a service, the Ecowitt gateway driver waits for a loop packet to arrive and if Ecowitt data has been received since the last loop packet arrived, the most recent Ecowitt data is used to augment the loo packet. If no Ecowitt data has been received since the last loop packet no Ecowitt data will be added to the loop packet. So you will need to keep your Ecowitt poll interval less than your fousb poll interval, I would recommend something like 30 or 20 seconds for a fousb poll interval of 60 seconds.

You could also look at running two WeeWX instances, one using the foush driver and the other the Ecowitt gateway driver as a driver. This avoids any messing around augmenting loop packets and possibly contaminating or missing data, but it does make reporting more complex as you now have data in two different databases. Of note the Seasons skin does not support two databases out of the box - ie you would need to modify the Seasons skin yourself.

Thanks for picking up the field map logging bug, that is as a result of the extensive refactoring that occured in producing v0.6.0. It will be fixed in the next beta release.

Gary

Tobias Kretschmar

unread,
Jan 1, 2024, 8:40:01 AM1/1/24
to weewx-user
Thank you very much for the detailed explanation.

I simply removed the condition “if field not in packet:” from augment_packet() and it works as desired. The fact that the inside temperature and humidity of the WN1980AE are now also taken over is a welcome side effect.

If you could implement the control switch in the configuration it would be even better. So the customization would survive future updates without further attention.

Tobias
Reply all
Reply to author
Forward
0 new messages