Errors in 4.3

137 views
Skip to first unread message

Clay Jackson

unread,
Jan 16, 2021, 7:16:57 PM1/16/21
to weewx-user
I just upgraded (through apt update, using raspbian) to 4.3.0 and am seeing the following error. 
Jan 16 15:59:12 Weather weewx[17287] INFO __main__: PID file is /var/run/weewx.pid
Jan 16 15:59:12 Weather weewx[17275]: Starting weewx weather system: weewx.
Jan 16 15:59:12 Weather weewx[17291] INFO __main__: Using configuration file /etc/weewx/weewx.conf
Jan 16 15:59:12 Weather weewx[17291] INFO __main__: Debug is 0
Jan 16 15:59:12 Weather weewx[17291] INFO weewx.engine: Loading station type SDR (user.sdr)
Jan 16 15:59:12 Weather weewx[17291] INFO user.sdr: driver version is 0.78
Jan 16 15:59:12 Weather weewx[17291] INFO user.sdr: sensor map is {u'windDir': u'wind_dir.04C9.Acurite5n1PacketV2', u'windSpeed': u'wind_speed.04C9.Acurite5n1PacketV2', u'outTemp': u'temperature.04C9.Acurite5n1PacketV2', u'outHumidity': u'humidity.04C9.Acurite5n1PacketV2', u'rain_total': u'rain_total.04C9.Acurite5n1PacketV2', u'txBatteryStatus': u'battery.04C9.Acurite5n1PacketV2', u'inTemp': u'temperature.4:0.AmbientF007THPacket', u'inHumidity': u'humidity.4:0.AmbientF007THPacket', u'lightning_distance': u'distance.002B.AcuriteLightningPacket', u'soilTemp1': u'temperature_probe.0F66.Acurite00275MPacket', u'extraTemp5': u'temperature.0F66.Acurite00275MPacket', u'extraHumid3': u'humidity.0F66.Acurite00275MPacket', u'extraTemp1': u'temperature.002B.AcuriteLightningPacket', u'extraHumid1': u'humidity.002B.AcuriteLightningPacket', u'strikes_total': u'strikes_total.002B.AcuriteLightningPacket', u'extraTemp2': u'temperature.1:0.AmbientF007THPacket', u'extraTemp3': u'temperature.2:0.AmbientF007THPacket', u'extraTemp4': u'temperature.3:0.AmbientF007THPacket', u'extraHumid2': u'humidity.3:0.AmbientF007THPacket'}
Jan 16 15:59:12 Weather weewx[17291] INFO user.sdr: deltas is {u'lightning_strike_count': u'strikes_total', u'rain': u'rain_total'}
Jan 16 15:59:12 Weather weewx[17291] INFO user.sdr: startup process 'rtl_433 -M utc -F json'
Jan 16 15:59:12 Weather weewx[17291] INFO weewx.engine: StdConvert target unit is 0x1
Jan 16 15:59:13 Weather weewx[17291] INFO weewx.engine: Archive will use data binding wx_binding
Jan 16 15:59:13 Weather weewx[17291] INFO weewx.engine: Record generation will be attempted in 'hardware'
Jan 16 15:59:13 Weather weewx[17291] INFO weewx.engine: Using archive interval of 300 seconds (specified in weewx configuration)
Jan 16 15:59:13 Weather weewx[17291] INFO weewx.restx: Wunderground-PWS: Data for station KWAPROSS22 will be posted
Jan 16 15:59:13 Weather weewx[17291] INFO weewx.restx: CWOP: Data for station N7QNM-13 will be posted
Jan 16 15:59:13 Weather weewx[17291] INFO user.mqtt: service version is 0.23
Jan 16 15:59:13 Weather weewx[17291] INFO user.mqtt: binding to archive
Jan 16 15:59:13 Weather weewx[17291] INFO user.mqtt: topic is temps
Jan 16 15:59:13 Weather weewx[17291] INFO user.mqtt: data will be uploaded to mqtt://@localhost:1883/
Jan 16 15:59:13 Weather weewx[17291] INFO __main__: Starting up weewx version 4.3.0
Jan 16 15:59:13 Weather weewx[17291] INFO weewx.engine: Using binding 'wx_binding' to database 'weewx'
Jan 16 15:59:13 Weather weewx[17291] INFO weewx.manager: Starting backfill of daily summaries
Jan 16 15:59:13 Weather weewx[17291] INFO weewx.engine: Starting main packet loop.
Jan 16 15:59:34 Weather weewx[17291] INFO weewx.engine: Main loop exiting. Shutting engine down.
Jan 16 15:59:34 Weather weewx[17291] INFO user.sdr: shutdown process rtl_433 -M utc -F json
Jan 16 15:59:45 Weather weewx[17291] ERROR user.sdr: process did not respond to kill, shutting down anyway
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__: Caught unrecoverable exception:
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****  'totalRain'
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****  Traceback (most recent call last):
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****    File "/usr/share/weewx/weewxd", line 154, in main
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****      engine.run()
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 210, in run
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****      self.dispatchEvent(weewx.Event(weewx.NEW_LOOP_PACKET, packet=packet))
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 245, in dispatchEvent
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****      callback(event)
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/wxservices.py", line 45, in new_loop_packet
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****      self.do_calculations(event.packet)
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/wxservices.py", line 66, in do_calculations
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****      new_value = weewx.xtypes.get_scalar(obs_type, data_dict, self.db_manager)
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/xtypes.py", line 71, in get_scalar
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****      return xtype.get_scalar(obs_type, record, db_manager)
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/wxxtypes.py", line 594, in get_scalar
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****      delta = weewx.wxformulas.calculate_delta(record[total_key],
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****  KeyError: 'totalRain'
Jan 16 15:59:45 Weather weewx[17291] CRITICAL __main__:     ****  Exiting.

I'm using sdr to get data from an accurite 5n1. Tried some debugging  on my own and can't even see where totalRain is coming from - rtl_433 uses "rain_in, and sdr returns  rain_total

Here's peces of my config
[SDR]
    # This section is for the software-defined radio driver.

    # The driver to use
    driver = user.sdr
    path = /usr/local/bin
    #    log_unknown_sensors = True
    #    log_unmapped_sensors = True
    [[sensor_map]]
        windDir = wind_dir.04C9.Acurite5n1PacketV2
        windSpeed = wind_speed.04C9.Acurite5n1PacketV2
        outTemp = temperature.04C9.Acurite5n1PacketV2
        outHumidity = humidity.04C9.Acurite5n1PacketV2
        rain_total = rain_total.04C9.Acurite5n1PacketV2
        txBatteryStatus = battery.04C9.Acurite5n1PacketV2
        inTemp = temperature.4:0.AmbientF007THPacket
        inHumidity = humidity.4:0.AmbientF007THPacket
        lightning_distance = distance.002B.AcuriteLightningPacket
        # Garden Bed
        soilTemp1 = temperature_probe.0F66.Acurite00275MPacket
        extraTemp5 = temperature.0F66.Acurite00275MPacket
        extraHumid3 = humidity.0F66.Acurite00275MPacket
        # GreenHouse
        extraTemp1 = temperature.002B.AcuriteLightningPacket
        extraHumid1 = humidity.002B.AcuriteLightningPacket
        strikes_total = strikes_total.002B.AcuriteLightningPacket
        # Upright Freezer
        extraTemp2 = temperature.1:0.AmbientF007THPacket
        # Chest Freezer
.
.  [[deltas]]
        lightning_strike_count = strikes_total
        rain = rain_total







Tom Keffer

unread,
Jan 16, 2021, 7:45:17 PM1/16/21
to weewx-user
Normally, the driver does it, but if asked, WeeWX can calculate 'rain' from cumulative quantities such as totalRain, by taking a difference. 

Your configuration file seems to be asking to do so, but totalRain is not available. As for why it's asking, that's not clear.

What does the section [StdWXCalculate] in your file weewx.conf look like?


--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/98c1d6db-d7ed-443e-ad5f-1fd3a10cb343n%40googlegroups.com.

Clay Jackson

unread,
Jan 16, 2021, 7:58:13 PM1/16/21
to weewx...@googlegroups.com
I'm using an Accurite 5n1 - this has been working since early 3.x; just stopped in 4.3,  I AM using my 4.2 config files and skins.

[StdWXCalculate]

    [[Calculations]]
        # Derived quantities are calculated by this service. Possible values are:
        #  hardware        - use the value provided by hardware
        #  software        - use the value calculated by weewx
        #  prefer_hardware - use value provide by hardware if available,
        #                      otherwise use value calculated by weewx

        pressure = prefer_hardware
        barometer = prefer_hardware
        altimeter = software
        windchill = software
        heatindex = software
        dewpoint = software
        inDewpoint = prefer_hardware
        rainRate = prefer_hardware
        rain = prefer_hardware
        ET = software
        maxSolarRad = prefer_hardware
        cloudbase = prefer_hardware
        humidex = prefer_hardware
        appTemp = prefer_hardware
        windrun = prefer_hardware


Tom Keffer

unread,
Jan 16, 2021, 8:36:24 PM1/16/21
to weewx-user
Try removing the line 

rain = prefer_hardware

It's what's causing the StdWXCalculate service to try and calculate a value.

I wonder where that line came from. I don't recall it ever being part of weewx.conf

-tk

Clay Jackson

unread,
Jan 16, 2021, 11:31:45 PM1/16/21
to weewx...@googlegroups.com
OK - thanks.  Had a bit of a scare when I corrupted my config file and NOTHING would start.   I commented rain and rainRate out of StdWXCaiculate and looks good now.  I AM getting an N/A in RanRate om the disp;lay, but that's OK for the time being.   Will check when we  next get rain to see what happens.  

 It would be nice to know where totalRain came from - I tried grep'ing for it in all the .py files and only found it in accum and units.  Before I posted, I actually commented those lines out and that did NOT work. Any thoughts on that?

Also, I notice from the log I'm still using Python 2, which is what /usr/bin/python points to by default on squeeze, which is what I'm running right now.  Are there notes on how to force weewx to use python3?

Thanks!




Tom Keffer

unread,
Jan 17, 2021, 9:12:24 AM1/17/21
to weewx-user
The type 'totalRain' has been in the code for a long time. What I'm wondering about is where did the line

rain = prefer_hardware

come from. 

If you are still on squeeze, you're best off staying with Python 2. Not all of the Python 3 pre-requisites are available through the repositories.

-tk

Clay Jackson

unread,
Jan 18, 2021, 12:33:19 PM1/18/21
to weewx-user
Don't know WHERE I got Squeeze - just checked and confirmed; it's Buster, so would definitely like to at least try to get rid of python 2.   

On the rain = prefer_hardware, I looked at my old config files, and it seems it's "bounced" back and forth, probably depending on what version of sdr I had..   I honestly can't remember why.

Tom Keffer

unread,
Jan 18, 2021, 12:47:00 PM1/18/21
to weewx-user
If you're on buster, then it's simple enough to switch to Python 3. Basically, just follow the directions in the Debian guide:

wget -qO - https://weewx.com/apt/weewx-python3.list | sudo tee /etc/apt/sources.list.d/weewx.list
sudo apt-get update
sudo apt-get install weewx



Clay Jackson

unread,
Jan 21, 2021, 2:18:15 PM1/21/21
to weewx-user
OK - haven't tried Python3 yet - back on the rain issue.   We've had some rain this morning, and it is NOT picking up in WeeWx; captured some debug this morning; but will not be able to look at it until later today or perhaps over the weekend.   As I recall, this happened when I upgraded to 4.2 and one of  fix (in addition to changes in sdr) was to add the "rain = prefer_hardware" line.

Will try to do some debugging over the weekend and let you know.  Working on a Pi based Snow Depth detector as well, since we're getting snow now.

Clay
Reply all
Reply to author
Forward
0 new messages