Weewx 4.1.1 on RPi 4B running latest Buster lite image: Wundergound regular 5 minute posts don't work, but rapidfire does

72 views
Skip to first unread message

Steve Magnuson

unread,
Jun 28, 2020, 4:37:11 PM6/28/20
to weewx-user
I've just installed weewx for the first time on a Rpi 4B (latest Buster lite image) per instructions.  I've enabled Wunderground and CWOP, both of which were working fine on my Meteobridge.  I'm using this /etc/weewx/weewx.conf configuration:

[Station]

    # Description of the station location
    location = "Bellingham, WA"

    # Latitude in decimal degrees. Negative for southern hemisphere
    latitude = 48.753
    # Longitude in decimal degrees. Negative for western hemisphere.
    longitude = -122.472

    # Altitude of the station, with unit it is in. This is downloaded from
    # from the station if the hardware supports it.
    altitude = 90, foot

    # Set to type of station hardware. There must be a corresponding stanza
    # in this file with a 'driver' parameter indicating the driver to be used.
    station_type = Vantage

.
.
.

[Vantage]
    # This section is for the Davis Vantage series of weather stations.

    # Connection type: serial or ethernet 
    #  serial (the classic VantagePro)
    #  ethernet (the WeatherLinkIP or Serial-Ethernet bridge)
       type = serial

    # If the connection type is serial, a port must be specified:
    #   Debian, Ubuntu, Redhat, Fedora, and SuSE:
    #     /dev/ttyUSB0 is a common USB port name
    #     /dev/ttyS0   is a common serial port name
    #   BSD:
    #     /dev/cuaU0   is a common serial port name
       port = /dev/ttyUSB0
.
.
.
    [[CWOP]]
        # This section is for configuring posts to CWOP.
        
        # If you wish to do this, set the option 'enable' to true,
        # and specify the station ID (e.g., CW1234).
        enable = true
        station = AG7GN
.
.
.
      [[Wunderground]]
        # This section is for configuring posts to the Weather Underground.
        
        # If you wish to do this, set the option 'enable' to true,
        # and specify a station (e.g., 'KORHOODR3') and password.
        # To guard against parsing errors, put the password in quotes.
        enable = true
        station = KWABELLI109
        password = ******
        
        # If you plan on using wunderfixer, set the following
        # to your API key:
        api_key = *******
        
        # Set the following to True to have weewx use the WU "Rapidfire"
        # protocol. Not all hardware can support it. See the User's Guide.
        rapidfire = False


After starting weewx and waiting about 15 minutes, no data is sent to either CWOP or Wunderground.  My debug-enabled log looks like this at startup:

Jun 28 12:06:46 lrpi systemd[1]: Starting LSB: weewx weather system...
Jun 28 12:06:47 lrpi weewx[6066] INFO __main__: Initializing weewx version 4.1.1
Jun 28 12:06:47 lrpi weewx[6066] INFO __main__: Using Python 3.7.3 (default, Dec 20 2019, 18:57:59) #012[GCC 8.3.0]
Jun 28 12:06:47 lrpi weewx[6066] INFO __main__: Platform Linux-4.19.118-v7l+-armv7l-with-debian-10.4
Jun 28 12:06:47 lrpi weewx[6066] INFO __main__: Locale is 'en_US.UTF-8'
Jun 28 12:06:47 lrpi weewx[6066] INFO __main__: PID file is /var/run/weewx.pid
Jun 28 12:06:47 lrpi weewx[6070] INFO __main__: Using configuration file /etc/weewx/weewx.conf
Jun 28 12:06:47 lrpi weewx[6070] INFO __main__: Debug is 1
Jun 28 12:06:47 lrpi weewx[6070] DEBUG __main__: Initializing engine
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.engine: Loading station type Vantage (weewx.drivers.vantage)
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Driver version is 3.2.1
Jun 28 12:06:47 lrpi weewx[6055]: Starting weewx weather system: weewx.
Jun 28 12:06:47 lrpi systemd[1]: Started LSB: weewx weather system.
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Opened up serial port /dev/ttyUSB0; baud 19200; timeout 4.00
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Gentle wake up of console successful
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Hardware type is 17
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.drivers.vantage: ISS ID is 1
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Hardware name: Vantage Vue
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.engine: StdConvert target unit is 0x1
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.engine.StdQC
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.manager: Daily summary version is 2.0
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.wxservices: The following values will be calculated: pressure=prefer_hardware, altimeter=prefer_hardware, appTemp=prefer_hardware, barometer=prefer_hardware, beaufort=prefer_hardware, cloudbase=prefer_hardware, dewpoint=prefer_hardware, ET=prefer_hardware, heatindex=prefer_hardware, humidex=prefer_hardware, inDewpoint=prefer_hardware, maxSolarRad=prefer_hardware, rainRate=prefer_hardware, windchill=prefer_hardware, windrun=prefer_hardware
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.wxservices: The following algorithms will be used for calculations: altimeter=aaASOS, maxSolarRad=RS
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.wxservices.StdWXCalculate
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.engine.StdArchive
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.engine: Archive will use data binding wx_binding
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.engine: Record generation will be attempted in 'hardware'
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.engine: Using archive interval of 300 seconds (specified by hardware)
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.engine.StdArchive
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.restx.StdStationRegistry
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.restx: StationRegistry: Registration not requested.
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.restx.StdStationRegistry
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.restx.StdWunderground
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.restx: WU essentials: {}
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.restx: Wunderground-PWS: Data for station KWABELLI109 will be posted
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.restx.StdWunderground
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.restx.StdPWSweather
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.restx: PWSweather: Posting not enabled.
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.restx.StdPWSweather
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.restx.StdCWOP
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.restx: CWOP: Data for station AG7GN will be posted
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.restx.StdCWOP
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.restx.StdWOW
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.restx: WOW: Posting not enabled.
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.restx.StdWOW
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.restx.StdAWEKAS
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.restx: AWEKAS: Posting not enabled.
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.restx.StdAWEKAS
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.engine.StdPrint
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.engine.StdPrint
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Loading service weewx.engine.StdReport
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.engine: Finished loading service weewx.engine.StdReport
Jun 28 12:06:47 lrpi weewx[6070] INFO __main__: Starting up weewx version 4.1.1
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.manager: Daily summary version is 2.0
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.manager: Daily summary version is 2.0
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Gentle wake up of console successful
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.engine: Clock error is 1.56 seconds (positive is fast)
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
Jun 28 12:06:47 lrpi weewx[6070] INFO weewx.manager: Starting backfill of daily summaries
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Getting archive packets since 2020-06-28 10:10:00 PDT (1593364200)
Jun 28 12:06:47 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Gentle wake up of console successful
Jun 28 12:06:49 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Retrieving 513 page(s); starting index= 0
Jun 28 12:06:49 lrpi weewx[6070] DEBUG weewx.drivers.vantage: DMPAFT complete: page timestamp 2020-06-19 14:45:00 PDT (1592603100) less than final timestamp 2020-06-28 10:10:00 PDT (1593364200)
Jun 28 12:06:49 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Catch up complete.
Jun 28 12:06:49 lrpi weewx[6070] INFO weewx.engine: Starting main packet loop.
Jun 28 12:06:49 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Gentle wake up of console successful
Jun 28 12:06:49 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Requesting 200 LOOP packets.
Jun 28 12:06:49 lrpi weewx[6070] DEBUG weewx.drivers.vantage: Gentle wake up of console successful

However, when I enable rapidfire and restart weewx, it sends data to wunderground fine:

Jun 28 13:19:43 lrpi weewx[8504] INFO weewx.restx: Wunderground-RF: Published record 2020-06-28 13:19:43 PDT (1593375583)
Jun 28 13:19:45 lrpi weewx[8504] INFO weewx.restx: Wunderground-RF: Published record 2020-06-28 13:19:45 PDT (1593375585)
Jun 28 13:19:47 lrpi weewx[8504] INFO weewx.restx: Wunderground-RF: Published record 2020-06-28 13:19:48 PDT (1593375588)
Jun 28 13:19:49 lrpi weewx[8504] INFO weewx.restx: Wunderground-RF: Published record 2020-06-28 13:19:49 PDT (1593375589)
Jun 28 13:19:51 lrpi weewx[8504] INFO weewx.restx: Wunderground-RF: Published record 2020-06-28 13:19:51 PDT (1593375591)
Jun 28 13:19:53 lrpi weewx[8504] INFO weewx.restx: Wunderground-RF: Published record 2020-06-28 13:19:53 PDT (1593375593)
Jun 28 13:19:55 lrpi weewx[8504] INFO weewx.restx: Wunderground-RF: Published record 2020-06-28 13:19:55 PDT (1593375595)
Jun 28 13:19:57 lrpi weewx[8504] INFO weewx.restx: Wunderground-RF: Published record 2020-06-28 13:19:57 PDT (1593375597)

So, obviously weewx sees my Vantage Vue on /dev/ttyUSB0 OK.

I also see these errors every 5 minutes:

Jun 28 12:10:17 lrpi weewx[6070] DEBUG weewx.manager: Daily summary version is 2.0
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: Generate failed with exception '<class 'TypeError'>'
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/Seasons/index.html.tmpl
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: **** Reason: '>' not supported between instances of 'NoneType' and 'float'
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****  Traceback (most recent call last):
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 322, in generate
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****      unicode_string = compiled_template.respond()
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****    File "_etc_weewx_skins_Seasons_index_html_tmpl.py", line 222, in respond
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****    File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 1707, in _handleCheetahInclude
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****      self._CHEETAH__cheetahIncludes[_includeID].respond(trans)
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****    File "_etc_weewx_skins_Seasons_current_inc.py", line 475, in respond
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****  TypeError: '>' not supported between instances of 'NoneType' and 'float'
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: Generate failed with exception '<class 'TypeError'>'
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/Seasons/statistics.html.tmpl
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: **** Reason: '>' not supported between instances of 'NoneType' and 'float'
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****  Traceback (most recent call last):
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 322, in generate
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****      unicode_string = compiled_template.respond()
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****    File "_etc_weewx_skins_Seasons_statistics_html_tmpl.py", line 144, in respond
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****    File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 1707, in _handleCheetahInclude
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****      self._CHEETAH__cheetahIncludes[_includeID].respond(trans)
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****    File "_etc_weewx_skins_Seasons_statistics_inc.py", line 970, in respond
Jun 28 12:10:18 lrpi weewx[6070] ERROR weewx.cheetahgenerator: ****  TypeError: '>' not supported between instances of 'NoneType' and 'float'
Jun 28 12:10:19 lrpi weewx[6070] INFO weewx.cheetahgenerator: Generated 6 files for report SeasonsReport in 1.37 seconds
Jun 28 12:10:19 lrpi weewx[6070] DEBUG weewx.manager: Daily summary version is 2.0
Jun 28 12:10:19 lrpi weewx[6070] INFO weewx.imagegenerator: Generated 15 images for report SeasonsReport in 0.57 seconds
Jun 28 12:10:19 lrpi weewx[6070] INFO weewx.reportengine: Copied 5 files to /var/www/html/weewx
Jun 28 12:10:19 lrpi weewx[6070] DEBUG weewx.reportengine: Report 'SmartphoneReport' not enabled. Skipping.
Jun 28 12:10:19 lrpi weewx[6070] DEBUG weewx.reportengine: Report 'MobileReport' not enabled. Skipping.
Jun 28 12:10:19 lrpi weewx[6070] DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping.
Jun 28 12:10:19 lrpi weewx[6070] DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
Jun 28 12:10:19 lrpi weewx[6070] DEBUG weewx.reportengine: Report 'RSYNC' not enabled. Skipping.


I don't know if they are related or not.

Thanks for having a look.

Steve

gjr80

unread,
Jun 28, 2020, 5:55:50 PM6/28/20
to weewx-user
Hi,

Can you show us a good continuous 10 minutes of log from WeeWX startup with debug=1.

Gary

Steve Magnuson

unread,
Jun 28, 2020, 7:04:24 PM6/28/20
to weewx-user
Log file for a 10 minute duration attached.

I think I might have a clue as to what is going on.  Prior to installing weewx on this Pi, I installed another app that inexplicably set my timezone to the UK, 8 hours ahead.  I then installed weewx, noticed the time was wrong, and changed the timezone to my own (US/Pacific).  Since my last post, I deleted /var/lib/weewx/weewx.sdb and the contents of /var/www/html/weewx and those TypeErrors I had disappeared.  However, new "ignore historical record" errors started appearing in the logs with timestamps in the future.  Also, this is another clue:

Jun 28 15:50:15 lrpi weewx[14691] DEBUG weewx.drivers.vantage: DMPAFT complete: page timestamp 2020-06-28 10:25:00 PDT (1593365100) less than final timestamp 2020-06-28 19:20:00 PDT (1593397200)

So, it's possible it might just start working in a few hours, after 19:20 this evening(?)

My Vue's time is correct and the Pi's time is also correct.  I have installed a RTC on the Pi and it does work.

-Steve
weewx_log.txt

gjr80

unread,
Jun 28, 2020, 7:49:21 PM6/28/20
to weewx-user
Quite possible the issue is related, Davis stations tend to be slightly more susceptible to temporal chaos than some other stations. Your RPi and console might have the correct time but it is quite possible the change in times has caused issues for your logger. It’s possible things will come good but since you’ve restarted with a new database and checked the time on the RPi/console you might as well go the trifecta and clear the loggers memory as well. Refer to the wiki article ‘Troubleshooting Davis stations’ (https://github.com/weewx/weewx/wiki/Troubleshooting-the-Davis-Vantage-station#corrupt-station-memory). If you read through the ‘Corrupt station memory’ section you will see mention of clearing the station memory with the WeeWX utility wee_device. Try that, note you will need to stop WeeWX first.

Gary

Steve Magnuson

unread,
Jun 28, 2020, 9:11:44 PM6/28/20
to weewx-user
Fixed!  "Temporal chaos' indeed.  I cleared the station memory, and for good measure removed the database file and /var/www/html/weewx files again and everything started working.  Wunderground and CWOP are now updating as expected.  Thanks for the pointer.

Steve

gjr80

unread,
Jun 28, 2020, 10:41:20 PM6/28/20
to weewx-user
Good news. Worth filing the symptoms away for future. Any time a Davis station using hardware record generation continues to have normal loop based activity (eg WU RF) but anything archive record based (eg saving records to database, report generation etc) does not happen there is a good chance it's corrupt station memory. UPS, RTC etc help but don't necessarily always prevent.

Gary
Reply all
Reply to author
Forward
0 new messages