My dad recently upgraded weewx for his Davis Vantage Pro2 to version 5.2 and it's not fully working any more. He's using the Belchertown skin on Ubuntu (I think). Here is a section from the logs:
2025-10-23T23:10:15.901050+01:00 weewxd[4698]: DEBUG weewx.drivers.vantage: Getting archive packets since 2025-10-23 23:05:00 BST (1761257100)
2025-10-23T23:10:16.408056+01:00 weewxd[4698]: DEBUG weewx.drivers.vantage: Successfully woke up Vantage console
2025-10-23T23:10:16.429478+01:00 weewxd[4698]: DEBUG weewx.drivers.vantage: Retrieving 1 page(s); starting index= 4
2025-10-23T23:10:16.572128+01:00 weewxd[4698]: INFO user.sunduration: Sunshine duration from loop packets = 0.000000 min
2025-10-23T23:10:16.624541+01:00 weewxd[4698]: INFO weewx.manager: Added record 2025-10-23 23:10:00 BST (1761257400) to database 'weewx.sdb'
2025-10-23T23:10:16.654449+01:00 weewxd[4698]: INFO weewx.manager: Added record 2025-10-23 23:10:00 BST (1761257400) to daily summary in 'weewx.sdb'
2025-10-23T23:10:16.687827+01:00 weewxd[4698]: DEBUG weewx.reportengine: Running reports for latest time in the database.
2025-10-23T23:10:16.688035+01:00 weewxd[4698]: DEBUG weewx.reportengine: Report 'SeasonsReport' not enabled. Skipping.
2025-10-23T23:10:16.688166+01:00 weewxd[4698]: DEBUG weewx.reportengine: Report 'SmartphoneReport' not enabled. Skipping.
2025-10-23T23:10:16.688293+01:00 weewxd[4698]: DEBUG weewx.reportengine: Report 'MobileReport' not enabled. Skipping.
2025-10-23T23:10:16.688424+01:00 weewxd[4698]: DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping.
2025-10-23T23:10:16.688560+01:00 weewxd[4698]: DEBUG weewx.reportengine: Running report 'Belchertown'
2025-10-23T23:10:16.702619+01:00 weewxd[4698]: DEBUG weewx.drivers.vantage: Requesting 200 LOOP packets.
2025-10-23T23:10:16.713309+01:00 weewxd[4698]: DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Belchertown/skin.conf for report 'Belchertown'
2025-10-23T23:10:16.726182+01:00 weewxd[4698]: DEBUG weewx.reportengine: Running generators for report 'Belchertown' in directory '/etc/weewx/skins/Belchertown' with locale 'en_GB.UTF-8'
2025-10-23T23:10:16.731197+01:00 weewxd[4698]: DEBUG weewx.cheetahgenerator: Using search list ['user.belchertown.getData', 'user.historygenerator.MyXSearch', 'weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.DisplayOptions', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.Gettext', 'weewx.cheetahgenerator.JSONHelpers', 'weewx.cheetahgenerator.PlotInfo', 'weewx.cheetahgenerator.SkinInfo', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo']
2025-10-23T23:10:16.731584+01:00 weewxd[4698]: DEBUG user.historygenerator: Navigation: No historygenerator.py specific labels found
2025-10-23T23:10:16.731697+01:00 weewxd[4698]: DEBUG user.historygenerator: StationInfo: No historygenerator.py specific labels found
2025-10-23T23:10:16.731791+01:00 weewxd[4698]: DEBUG user.historygenerator: TranslationLinks: No historygenerator.py specific labels found
2025-10-23T23:10:16.731869+01:00 weewxd[4698]: DEBUG user.historygenerator: ImageGenerator: No historygenerator.py specific labels found
2025-10-23T23:10:16.731967+01:00 weewxd[4698]: DEBUG user.historygenerator: BootstrapLabels: No historygenerator.py specific labels found
2025-10-23T23:10:16.732047+01:00 weewxd[4698]: DEBUG user.historygenerator: JSONGenerator: No historygenerator.py specific labels found
2025-10-23T23:10:16.732139+01:00 weewxd[4698]: DEBUG user.historygenerator: LiveGauges: No historygenerator.py specific labels found
2025-10-23T23:10:16.732216+01:00 weewxd[4698]: DEBUG user.historygenerator: Stats: No historygenerator.py specific labels found
2025-10-23T23:10:16.732336+01:00 weewxd[4698]: DEBUG user.historygenerator: News: No historygenerator.py specific labels found
2025-10-23T23:10:16.732415+01:00 weewxd[4698]: DEBUG user.historygenerator: LiveCharts: No historygenerator.py specific labels found
2025-10-23T23:10:16.732523+01:00 weewxd[4698]: DEBUG user.historygenerator: locale: No historygenerator.py specific labels found
2025-10-23T23:10:16.737843+01:00 weewxd[4698]: DEBUG weewx.manager: Daily summary version is 4.0
2025-10-23T23:10:16.772512+01:00 weewxd[4698]: ERROR weewx.reportengine: Caught unrecoverable exception in generator 'weewx.cheetahgenerator.CheetahGenerator'
2025-10-23T23:10:16.772686+01:00 weewxd[4698]: ERROR weewx.reportengine: **** 'group_sun'
2025-10-23T23:10:16.802108+01:00 weewxd[4698]: ERROR weewx.reportengine: **** Traceback (most recent call last):
2025-10-23T23:10:16.802315+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 248, in run
2025-10-23T23:10:16.802412+01:00 weewxd[4698]: ERROR weewx.reportengine: **** obj.start()
2025-10-23T23:10:16.802489+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 465, in start
2025-10-23T23:10:16.802561+01:00 weewxd[4698]: ERROR weewx.reportengine: **** self.run()
2025-10-23T23:10:16.802632+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in run
2025-10-23T23:10:16.802709+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ngen = self.generate(gen_dict[section_name], section_name, self.gen_ts)
2025-10-23T23:10:16.802780+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.802853+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate
2025-10-23T23:10:16.802943+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ngen += self.generate(section[subsection], subsection, gen_ts)
2025-10-23T23:10:16.803017+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.803089+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate
2025-10-23T23:10:16.803161+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ngen += self.generate(section[subsection], subsection, gen_ts)
2025-10-23T23:10:16.803232+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.803330+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 309, in generate
2025-10-23T23:10:16.803411+01:00 weewxd[4698]: ERROR weewx.reportengine: **** searchList = self._getSearchList(encoding, timespan,
2025-10-23T23:10:16.803483+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.803554+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 401, in _getSearchList
2025-10-23T23:10:16.803628+01:00 weewxd[4698]: ERROR weewx.reportengine: **** search_list += obj.get_extension_list(timespan, db_lookup)
2025-10-23T23:10:16.803701+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.803773+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/etc/weewx/bin/user/belchertown.py", line 797, in get_extension_list
2025-10-23T23:10:16.803843+01:00 weewxd[4698]: ERROR weewx.reportengine: **** sun_unit = converter.group_unit_dict["group_sun"]
2025-10-23T23:10:16.803919+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
2025-10-23T23:10:16.803985+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/usr/lib/python3.12/collections/__init__.py", line 1015, in __getitem__
2025-10-23T23:10:16.804053+01:00 weewxd[4698]: ERROR weewx.reportengine: **** return self.__missing__(key) # support subclasses that define __missing__
2025-10-23T23:10:16.804120+01:00 weewxd[4698]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.804180+01:00 weewxd[4698]: ERROR weewx.reportengine: **** File "/usr/lib/python3.12/collections/__init__.py", line 1007, in __missing__
2025-10-23T23:10:16.804280+01:00 weewxd[4698]: ERROR weewx.reportengine: **** raise KeyError(key)
2025-10-23T23:10:16.804360+01:00 weewxd[4698]: ERROR weewx.reportengine: **** KeyError: 'group_sun'
2025-10-23T23:10:16.804428+01:00 weewxd[4698]: ERROR weewx.reportengine: **** Generator terminated
2025-10-23T23:10:16.806325+01:00 weewxd[4698]: Traceback (most recent call last):
2025-10-23T23:10:16.807242+01:00 weewxd[4698]: File "/usr/share/weewx/weewx/reportengine.py", line 248, in run
2025-10-23T23:10:16.807474+01:00 weewxd[4698]: obj.start()
2025-10-23T23:10:16.807584+01:00 weewxd[4698]: File "/usr/share/weewx/weewx/reportengine.py", line 465, in start
2025-10-23T23:10:16.807665+01:00 weewxd[4698]: self.run()
2025-10-23T23:10:16.807739+01:00 weewxd[4698]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in run
2025-10-23T23:10:16.807873+01:00 weewxd[4698]: ngen = self.generate(gen_dict[section_name], section_name, self.gen_ts)
2025-10-23T23:10:16.807958+01:00 weewxd[4698]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.808040+01:00 weewxd[4698]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate
2025-10-23T23:10:16.808121+01:00 weewxd[4698]: ngen += self.generate(section[subsection], subsection, gen_ts)
2025-10-23T23:10:16.808204+01:00 weewxd[4698]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.808315+01:00 weewxd[4698]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate
2025-10-23T23:10:16.808398+01:00 weewxd[4698]: ngen += self.generate(section[subsection], subsection, gen_ts)
2025-10-23T23:10:16.808480+01:00 weewxd[4698]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.808610+01:00 weewxd[4698]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 309, in generate
2025-10-23T23:10:16.808704+01:00 weewxd[4698]: searchList = self._getSearchList(encoding, timespan,
2025-10-23T23:10:16.808818+01:00 weewxd[4698]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.808908+01:00 weewxd[4698]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 401, in _getSearchList
2025-10-23T23:10:16.808992+01:00 weewxd[4698]: search_list += obj.get_extension_list(timespan, db_lookup)
2025-10-23T23:10:16.809071+01:00 weewxd[4698]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.809150+01:00 weewxd[4698]: File "/etc/weewx/bin/user/belchertown.py", line 797, in get_extension_list
2025-10-23T23:10:16.809231+01:00 weewxd[4698]: sun_unit = converter.group_unit_dict["group_sun"]
2025-10-23T23:10:16.809340+01:00 weewxd[4698]: ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
2025-10-23T23:10:16.809426+01:00 weewxd[4698]: File "/usr/lib/python3.12/collections/__init__.py", line 1015, in __getitem__
2025-10-23T23:10:16.809509+01:00 weewxd[4698]: return self.__missing__(key) # support subclasses that define __missing__
2025-10-23T23:10:16.809592+01:00 weewxd[4698]: ^^^^^^^^^^^^^^^^^^^^^
2025-10-23T23:10:16.809804+01:00 weewxd[4698]: File "/usr/lib/python3.12/collections/__init__.py", line 1007, in __missing__
2025-10-23T23:10:16.809983+01:00 weewxd[4698]: raise KeyError(key)
2025-10-23T23:10:16.810116+01:00 weewxd[4698]: KeyError: 'group_sun'
2025-10-23T23:10:16.810832+01:00 weewxd[4698]: INFO weewx.reportengine: Copied 3 files to /var/www/html/weewx/belchertown
2025-10-23T23:10:16.833554+01:00 weewxd[4698]: DEBUG weewx.manager: Daily summary version is 4.0
2025-10-23T23:10:17.220871+01:00 weewxd[4698]: DEBUG weewx.drivers.vantage: Successfully woke up Vantage console
2025-10-23T23:10:17.283215+01:00 weewxd[4698]: DEBUG user.sunduration: Calculated LOOP sunshine_time = 1.000000, based on radiation = 0.000000, and threshold = 0.000000
2025-10-23T23:10:17.894062+01:00 weewxd[4698]: DEBUG user.sunduration: Calculated LOOP sunshine_time = 1.000000, based on radiation = 0.000000, and threshold = 0.000000
2025-10-23T23:10:17.951423+01:00 weewxd[4698]: INFO weewx.restx: WOW: Published record 2025-10-23 23:10:00 BST (1761257400)
2025-10-23T23:10:18.176479+01:00 weewxd[4698]: INFO weewx.restx: Wunderground-PWS: Published record 2025-10-23 23:10:00 BST (1761257400)
2025-10-23T23:10:19.894694+01:00 weewxd[4698]: DEBUG user.sunduration: Calculated LOOP sunshine_time = 2.000000, based on radiation = 0.000000, and threshold = 0.000000
2025-10-23T23:10:20.435013+01:00 weewxd[4698]: DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
2025-10-23T23:10:20.435195+01:00 weewxd[4698]: DEBUG weewx.reportengine: Running report 'RSYNC'
2025-10-23T23:10:20.436971+01:00 weewxd[4698]: DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Rsync/skin.conf for report 'RSYNC'
2025-10-23T23:10:20.443733+01:00 weewxd[4698]: DEBUG weewx.reportengine: Running generators for report 'RSYNC' in directory '/etc/weewx/skins/Rsync' with locale 'en_GB.UTF-8'
2025-10-23T23:10:20.443910+01:00 weewxd[4698]: DEBUG weeutil.rsyncupload: rsyncupload: cmd: [['rsync', '--archive', '--stats', '-e', 'ssh', '/var/www/html/weewx/', 'server@server:/server/path']]
2025-10-23T23:10:21.895922+01:00 weewxd[4698]: DEBUG user.sunduration: Calculated LOOP sunshine_time = 2.000000, based on radiation = 0.000000, and threshold = 0.000000
2025-10-23T23:10:23.580487+01:00 weewxd[4698]: INFO weeutil.rsyncupload: rsync'd 13 files (3,471,491 bytes) in 3.14 seconds
2025-10-23T23:10:23.895215+01:00 weewxd[4698]: DEBUG user.sunduration: Calculated LOOP sunshine_time = 2.000000, based on radiation = 0.000000, and threshold = 0.000000
Seemingly it's an error related to the sunshine hours variable that I added using this:
https://github.com/Jterrettaz/sunduration. I'm in a different country to my dad so it's a bit difficult for me to debug it, so I thought I'd see if anyone can suggest something obvious that would be causing it. It didn't seem like any of the main files in /etc/weewx/ or /usr/share/weewx/ had been modified recently by the upgrade but I could have missed it. He chose the option to keep the existing weewx.conf when prompted, so I've already had him make the change to "
schema = weewx.schemas.wview_extended.schema" in that in case that's necessary.