So after correcting this daft error, I managed to download the belchertown skin. Before the problems occured last September, I was successfully using this skin for my weather website. I had retained the skin.conf files (both the main one and the belchertown one) so I copied the relevant parts to the new weewx conf files. I also copied over the sftp conf file, as I use sftp to transfer files to my webserver.
However, upon restarting weewx with the belchertown skin enabled, I seem to get some errors related to sftp. An extract from the log file is below. Not sure if the difficulty in finding user.sftp is connected at all to the earlier message in the log about not finding the en.conf file? Any suggestions as to what might be going wrong would be much appreciated. Many thanks David. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.restx: StationRegistry: Delaying post by 35 seconds Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Running reports for latest time in the database. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.drivers.vantage: Requesting 200 LOOP packets. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Report 'SeasonsReport' not enabled. Skipping. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Report 'SmartphoneReport' not enabled. Skipping. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Report 'MobileReport' not enabled. Skipping. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Running report 'sftp' Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/sftp/skin.conf for report 'sftp' Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Cannot read localization file /etc/weewx/skins/sftp/lang/en.conf for report 'sftp': Config file not found: "/etc/weewx/skins/sftp/lang/en.conf". Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: **** Using defaults instead. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Unable to set locale 'en': unsupported locale setting. Using default. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Running generators for report 'sftp' in directory '/etc/weewx/skins/sftp' with locale 'en_GB.UTF-8' Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: Unable to instantiate generator 'user.sftp.SFTPGenerator' Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** No module named 'user.sftp' Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** Traceback (most recent call last): Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 231, in run Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** obj = weeutil.weeutil.get_object(generator)( Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** module = importlib.import_module(module_name) Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** return _bootstrap._gcd_import(name[level:], package, level) Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "<frozen importlib._bootstrap>", line 1206, in _gcd_import Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "<frozen importlib._bootstrap>", line 1178, in _find_and_load Apr 17 15:45:18 weatherpi weewxd[2181]: Traceback (most recent call last): Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/share/weewx/weewx/reportengine.py", line 231, in run Apr 17 15:45:18 weatherpi weewxd[2181]: obj = weeutil.weeutil.get_object(generator)( Apr 17 15:45:18 weatherpi weewxd[2181]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object Apr 17 15:45:18 weatherpi weewxd[2181]: module = importlib.import_module(module_name) Apr 17 15:45:18 weatherpi weewxd[2181]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module Apr 17 15:45:18 weatherpi weewxd[2181]: return _bootstrap._gcd_import(name[level:], package, level) Apr 17 15:45:18 weatherpi weewxd[2181]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: File "<frozen importlib._bootstrap>", line 1206, in _gcd_import Apr 17 15:45:18 weatherpi weewxd[2181]: File "<frozen importlib._bootstrap>", line 1178, in _find_and_load Apr 17 15:45:18 weatherpi weewxd[2181]: File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked Apr 17 15:45:18 weatherpi weewxd[2181]: ModuleNotFoundError: No module named 'user.sftp' Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ModuleNotFoundError: No module named 'user.sftp' Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** Generator ignored Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Running report 'Belchertown' Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Belchertown/skin.conf for report 'Belchertown' Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Cannot read localization file /etc/weewx/skins/Belchertown/lang/en.conf for report 'Belchertown': Config file not found: "/etc/weewx/skins/Belchertown/lang/en.conf". Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: **** Using defaults instead. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Unable to set locale 'en': unsupported locale setting. Using default. Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.reportengine: Running generators for report 'Belchertown' in directory '/etc/weewx/skins/Belchertown' with locale 'en_GB.UTF-8' Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.cheetahgenerator: Using search list ['user.belchertown.getData', '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'] Apr 17 15:45:18 weatherpi weewxd[2181]: INFO user.belchertown: version 1.3.1 Apr 17 15:45:18 weatherpi weewxd[2181]: DEBUG weewx.manager: Daily summary version is 4.0 Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: Caught unrecoverable exception in generator 'weewx.cheetahgenerator.CheetahGenerator' Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** 'belchertown_locale' Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** Traceback (most recent call last): Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 248, in run Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** obj.start() Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 465, in start Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** self.run() Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in run Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ngen = self.generate(gen_dict[section_name], section_name, self.gen_ts) Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ngen += self.generate(section[subsection], subsection, gen_ts) Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ngen += self.generate(section[subsection], subsection, gen_ts) Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 309, in generate Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** searchList = self._getSearchList(encoding, timespan, Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 401, in _getSearchList Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** search_list += obj.get_extension_list(timespan, db_lookup) Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/etc/weewx/bin/user/belchertown.py", line 300, in get_extension_list Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** if self.generator.skin_dict["Extras"]["belchertown_locale"] == "auto": Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** File "/usr/lib/python3/dist-packages/configobj/__init__.py", line 554, in __getitem__ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** val = dict.__getitem__(self, key) Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** KeyError: 'belchertown_locale' Apr 17 15:45:18 weatherpi weewxd[2181]: ERROR weewx.reportengine: **** Generator terminated Apr 17 15:45:18 weatherpi weewxd[2181]: Traceback (most recent call last): Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/share/weewx/weewx/reportengine.py", line 248, in run Apr 17 15:45:18 weatherpi weewxd[2181]: obj.start() Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/share/weewx/weewx/reportengine.py", line 465, in start Apr 17 15:45:18 weatherpi weewxd[2181]: self.run() Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in run Apr 17 15:45:18 weatherpi weewxd[2181]: ngen = self.generate(gen_dict[section_name], section_name, self.gen_ts) Apr 17 15:45:18 weatherpi weewxd[2181]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Apr 17 15:45:18 weatherpi weewxd[2181]: ngen += self.generate(section[subsection], subsection, gen_ts) Apr 17 15:45:18 weatherpi weewxd[2181]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate Apr 17 15:45:18 weatherpi weewxd[2181]: ngen += self.generate(section[subsection], subsection, gen_ts) Apr 17 15:45:18 weatherpi weewxd[2181]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 309, in generate Apr 17 15:45:18 weatherpi weewxd[2181]: searchList = self._getSearchList(encoding, timespan, Apr 17 15:45:18 weatherpi weewxd[2181]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/share/weewx/weewx/cheetahgenerator.py", line 401, in _getSearchList Apr 17 15:45:18 weatherpi weewxd[2181]: search_list += obj.get_extension_list(timespan, db_lookup) Apr 17 15:45:18 weatherpi weewxd[2181]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: File "/etc/weewx/bin/user/belchertown.py", line 300, in get_extension_list Apr 17 15:45:18 weatherpi weewxd[2181]: if self.generator.skin_dict["Extras"]["belchertown_locale"] == "auto": Apr 17 15:45:18 weatherpi weewxd[2181]: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: File "/usr/lib/python3/dist-packages/configobj/__init__.py", line 554, in __getitem__ Apr 17 15:45:18 weatherpi weewxd[2181]: val = dict.__getitem__(self, key) Apr 17 15:45:18 weatherpi weewxd[2181]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apr 17 15:45:18 weatherpi weewxd[2181]: KeyError: 'belchertown_locale' On Wednesday, 16 April 2025 at 18:12:56 UTC+1 David Hindley wrote: > Sorry - you are quite right - that was very obvious and dumb of me not to > spot it. It installed correctly when I used the correct name. Many Thanks. > > David. > > On Wed, 16 Apr 2025 at 17:34, vince <vince...@gmail.com> wrote: > >> "Path /home/david/weewx-belchertown-x.x.tar.gz" does not exist is a >> pretty clear error message. Look at that directory for what your actual >> filename is. It is unlikely that x.x is in the filename, if there's a >> file there at all. >> >> On Wednesday, April 16, 2025 at 4:58:21 AM UTC-7 hind...@gmail.com wrote: >> >>> Hi - after a long gap, I am now trying to get my weather website working >>> again. As per earlier messages in this chain, I did eventually get weewx >>> working on a brand new OS install on my RPi, with my previous 9 year >>> historical weewx database copied over. As far as I can tell, weewx seems to >>> be working OK, as it is adding records to the database, although I still >>> seem to get ip-read errors from time to time. Here is an extract from the >>> log: >>> >>> Apr 16 12:51:16 weatherpi weewxd[46890]: ERROR weewx.drivers.vantage: >>> LOOP batch try #1; error: timed out >>> >>> Apr 16 12:51:17 weatherpi weewxd[46890]: DEBUG weewx.drivers.vantage: >>> Successfully woke up Vantage console >>> >>> Apr 16 12:52:09 weatherpi kernel: [UFW BLOCK] IN=eth0 OUT= >>> MAC=01:00:5e:00:00:01:e4:57:40:c2:d3:72:08:00 SRC=192.168.0.1 DST=224.0.0.1 >>> LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=20279 PROTO=2 >>> >>> Apr 16 12:52:10 weatherpi kernel: [UFW BLOCK] IN=eth0 OUT= >>> MAC=01:00:5e:00:00:fb:98:9e:63:44:ca:fa:08:00 SRC=192.168.0.10 >>> DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=16661 PROTO=2 >>> >>> Apr 16 12:52:10 weatherpi kernel: [UFW BLOCK] IN=eth0 OUT= >>> MAC=01:00:5e:00:00:fb:9c:32:ce:cc:4b:99:08:00 SRC=192.168.0.11 >>> DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=61778 PROTO=2 >>> >>> Apr 16 12:53:08 weatherpi kernel: [UFW BLOCK] IN=eth0 OUT= >>> MAC=01:00:5e:00:00:fb:f4:21:ca:86:dc:36:08:00 SRC=192.168.0.24 >>> DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=36856 PROTO=2 >>> >>> Apr 16 12:54:14 weatherpi kernel: [UFW BLOCK] IN=eth0 OUT= >>> MAC=01:00:5e:00:00:01:e4:57:40:c2:d3:72:08:00 SRC=192.168.0.1 DST=224.0.0.1 >>> LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=20288 PROTO=2 >>> >>> Apr 16 12:54:14 weatherpi kernel: [UFW BLOCK] IN=eth0 OUT= >>> MAC=01:00:5e:00:00:fb:d4:da:cd:c8:97:af:08:00 SRC=192.168.0.154 >>> DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=0 DF PROTO=2 >>> >>> Apr 16 12:54:21 weatherpi kernel: [UFW BLOCK] IN=eth0 OUT= >>> MAC=01:00:5e:00:00:fb:64:9a:be:19:4b:8e:08:00 SRC=192.168.0.44 >>> DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=60879 PROTO=2 >>> >>> Apr 16 12:54:52 weatherpi kernel: [UFW BLOCK] IN=eth0 OUT= >>> MAC=01:00:5e:00:00:fb:64:9a:be:19:4b:8e:08:00 SRC=192.168.0.44 >>> DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=39300 PROTO=2 >>> >>> Apr 16 12:55:14 weatherpi weewxd[46890]: DEBUG weewx.drivers.vantage: >>> Getting archive packets since 2025-04-16 12:50:00 BST (1744804200) >>> >>> Apr 16 12:55:16 weatherpi weewxd[46890]: DEBUG weewx.drivers.vantage: >>> Successfully woke up Vantage console >>> >>> Apr 16 12:55:17 weatherpi weewxd[46890]: DEBUG weewx.drivers.vantage: >>> Retrieving 1 page(s); starting index= 2 >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: INFO weewx.manager: Added >>> record 2025-04-16 12:55:00 BST (1744804500) to database 'weewx.sdb' >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: INFO weewx.manager: Added >>> record 2025-04-16 12:55:00 BST (1744804500) to daily summary in 'weewx.sdb' >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.drivers.vantage: >>> DMPAFT complete: page timestamp 2025-04-07 15:20:00 BST (1744035600) less >>> than final timestamp 2025-04-16 12:55:00 BST (1744804500) >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.restx: >>> StationRegistry: wait interval (7200 < 86400) has not passed for record >>> 2025-04-16 12:55:00 BST (1744804500) >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.drivers.vantage: >>> Catch up complete. >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.reportengine: >>> Running reports for latest time in the database. >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.reportengine: >>> Running report 'SeasonsReport' >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.drivers.vantage: >>> Requesting 200 LOOP packets. >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.reportengine: Found >>> configuration file /etc/weewx/skins/Seasons/skin.conf for report >>> 'SeasonsReport' >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.reportengine: >>> Unable to set locale 'en': unsupported locale setting. Using default. >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.reportengine: >>> Running generators for report 'SeasonsReport' in directory >>> '/etc/weewx/skins/Seasons' with locale 'en_GB.UTF-8' >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.cheetahgenerator: >>> Using search list ['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'] >>> >>> Apr 16 12:55:18 weatherpi weewxd[46890]: DEBUG weewx.manager: Daily >>> summary version is 4.0 >>> >>> Apr 16 12:55:19 weatherpi weewxd[46890]: INFO weewx.restx: PWSWeather: >>> Published record 2025-04-16 12:55:00 BST (1744804500) >>> >>> Apr 16 12:55:19 weatherpi weewxd[46890]: INFO weewx.restx: WOW: >>> Published record 2025-04-16 12:55:00 BST (1744804500) >>> >>> Apr 16 12:55:19 weatherpi weewxd[46890]: INFO weewx.restx: >>> Wunderground-PWS: Published record 2025-04-16 12:55:00 BST (1744804500) >>> >>> Apr 16 12:55:19 weatherpi weewxd[46890]: DEBUG weewx.drivers.vantage: >>> Successfully woke up Vantage console >>> >>> Apr 16 12:55:20 weatherpi kernel: [UFW BLOCK] IN=eth0 OUT= >>> MAC=01:00:5e:00:00:fb:74:a6:cd:95:8f:9a:08:00 SRC=192.168.0.189 >>> DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=25395 PROTO=2 >>> >>> Apr 16 12:55:21 weatherpi weewxd[46890]: INFO weewx.cheetahgenerator: >>> Generated 8 files for report SeasonsReport in 3.19 seconds >>> >>> Apr 16 12:55:21 weatherpi weewxd[46890]: DEBUG weewx.manager: Daily >>> summary version is 4.0 >>> >>> Apr 16 12:55:22 weatherpi weewxd[46890]: INFO weewx.imagegenerator: >>> Generated 13 images for report SeasonsReport in 1.30 seconds >>> >>> Apr 16 12:55:22 weatherpi weewxd[46890]: INFO weewx.reportengine: Copied >>> 0 files to /var/www/html/weewx >>> >>> Apr 16 12:55:22 weatherpi weewxd[46890]: DEBUG weewx.reportengine: >>> Report 'SmartphoneReport' not enabled. Skipping. >>> >>> Apr 16 12:55:22 weatherpi weewxd[46890]: DEBUG weewx.reportengine: >>> Report 'MobileReport' not enabled. Skipping. >>> >>> Apr 16 12:55:22 weatherpi weewxd[46890]: DEBUG weewx.reportengine: >>> Report 'StandardReport' not enabled. Skipping. >>> >>> Apr 16 12:55:22 weatherpi weewxd[46890]: DEBUG weewx.reportengine: >>> Report 'FTP' not enabled. Skipping. >>> >>> Apr 16 12:55:22 weatherpi weewxd[46890]: DEBUG weewx.reportengine: >>> Report 'RSYNC' not enabled. Skipping. >>> >>> ************************************************************************************************************************************* >>> >>> >>> However, I am now trying to reinstall the skin that my weather website >>> users - belchertown, and am having problems. The log has the following: >>> >>> david@weatherpi:~ $ sudo weectl extension install >>> /home/david/weewx-belchertown-x.x.tar.gz >>> >>> Using configuration file /etc/weewx/weewx.conf >>> >>> Install extension '/home/david/weewx-belchertown-x.x.tar.gz' (y/n)? y >>> >>> Traceback (most recent call last): >>> >>> File "/usr/share/weewx/weectl.py", line 75, in <module> >>> >>> main() >>> >>> File "/usr/share/weewx/weectl.py", line 67, in main >>> >>> namespace.func(namespace) >>> >>> File "/usr/share/weewx/weectllib/__init__.py", line 90, in dispatch >>> >>> namespace.action_func(config_dict, namespace) >>> >>> File "/usr/share/weewx/weectllib/extension_cmd.py", line 116, in >>> install_extension >>> >>> ext.install_extension(namespace.source, no_confirm=namespace.yes) >>> >>> File "/usr/share/weewx/weecfg/extension.py", line 132, in >>> install_extension >>> >>> raise InstallError(f"Path {extension_path} does not exist.") >>> >>> weecfg.extension.InstallError: Path >>> /home/david/weewx-belchertown-x.x.tar.gz does not exist. >>> >>> Does anyone have any ideas what is going on? I am wondering if it is a >>> PATH related problem, but am not sure. I did successfully download the >>> skin gz file, but maybe I put it in the wrong place or something. Any help >>> would be much appreciated. >>> >>> Many thanks >>> >>> David. >>> On Friday, 13 September 2024 at 16:15:16 UTC+1 hind...@gmail.com wrote: >>> >>>> Great. Thanks, Tom. Much appreciated. That worked. >>>> >>>> On Friday 13 September 2024 at 15:35:08 UTC+1 Tom Keffer wrote: >>>> >>>>> With the introduction of systemd, WeeWX no longer uses System V style >>>>> /etc/init.d scripts. Instead, it uses systemd "service" files. >>>>> >>>>> With systemd, you restart weewx with >>>>> >>>>> *sudo systemctl restart weewx* >>>>> >>>>> >>>>> See the section *Running as a daemon >>>>> <https://www.weewx.com/docs/5.1/usersguide/running/#running-as-a-daemon>* >>>>> in >>>>> the User's Guide. >>>>> >>>>> -tk >>>>> >>>>> On Fri, Sep 13, 2024 at 7:19 AM hind...@gmail.com <hind...@gmail.com> >>>>> wrote: >>>>> >>>>>> Incidentally, when I do a grep to see what is running, I get >>>>>> >>>>>> weewx 13880 12.1 3.4 114556 31596 ? Dsl 14:58 2:21 >>>>>> python3 /usr/share/weewx/weewxd.py /etc/weewx/weewx.conf >>>>>> david 13970 0.0 0.2 6088 1920 pts/1 S+ 15:17 0:00 >>>>>> grep --color=auto weewxd >>>>>> >>>>>> On Friday 13 September 2024 at 15:12:53 UTC+1 hind...@gmail.com >>>>>> wrote: >>>>>> >>>>>>> It was all going so well....I did as you suggested - first copied >>>>>>> all my old weewx files to a USB drive on the Pi, bought a new SD card, >>>>>>> installed the latest Raspbian OS (Bookworm) and got my shiny new SD >>>>>>> card >>>>>>> running fine. I then installed weewx and it started weewx up as >>>>>>> expected >>>>>>> and began populating the empty database from 4 Sept on. Then I tried >>>>>>> to >>>>>>> stop weewx so I could copy across the old database with all my history >>>>>>> from >>>>>>> 2016 onwards. For some bizarre reason I couldn't get the stop command >>>>>>> to >>>>>>> work, as per below extract: >>>>>>> >>>>>>> xxxxx@weatherpi:/etc $ sudo /etc/init.d/weewx stop >>>>>>> sudo: /etc/init.d/weewx: command not found >>>>>>> >>>>>>> Am I being dumb? Any reason why this shouldn't work? >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> David. >>>>>>> >>>>>>> On Wednesday 4 September 2024 at 22:25:38 UTC+1 David Hindley wrote: >>>>>>> >>>>>>>> Tom - OK. Many thanks. Will try that suggestion. >>>>>>>> >>>>>>>> David. >>>>>>>> >>>>>>>> On Wed, 4 Sep 2024 at 21:32, Tom Keffer <tke...@gmail.com> wrote: >>>>>>>> >>>>>>>>> I'm sorry, but there are too many moving parts here. The problem >>>>>>>>> depends on your environment, /etc/default/weewx, what's in >>>>>>>>> /usr/bin/weewxd, >>>>>>>>> the location of the other weewx files, etc. >>>>>>>>> >>>>>>>>> Something changed on your system. You're going to have to track it >>>>>>>>> down. >>>>>>>>> >>>>>>>>> Here's what I would do: get a second SD card (less than $10). >>>>>>>>> Install the latest RPi OS on it. Install WeeWX v5 on it. >>>>>>>>> >>>>>>>>> Then copy over the database (located under /var/lib/weewx) and the >>>>>>>>> skins (located under /etc/weewx) from the old card. Or, copy from >>>>>>>>> your >>>>>>>>> backup. No chance of losing any data. >>>>>>>>> >>>>>>>>> -tk >>>>>>>>> >>>>>>>>> On Wed, Sep 4, 2024 at 1:05 PM hind...@gmail.com < >>>>>>>>> hind...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> OK. No problem. It is attached. I renamed it to weewx_init. It >>>>>>>>>> is called weewx on my Pi. >>>>>>>>>> >>>>>>>>>> Noted re upgrading. Nervous about losing data etc. >>>>>>>>>> >>>>>>>>>> David. >>>>>>>>>> >>>>>>>>>> On Wednesday 4 September 2024 at 20:44:54 UTC+1 Tom Keffer wrote: >>>>>>>>>> >>>>>>>>>>> A favor. Please post the *entire* file. Don't cut and paste, >>>>>>>>>>> just include the file. It's hard to get the full picture from the >>>>>>>>>>> little >>>>>>>>>>> pieces. >>>>>>>>>>> >>>>>>>>>>> I would also strongly advise that you upgrade from stretch. It >>>>>>>>>>> hasn't been supported in years. Your RPi 3 is more than capable of >>>>>>>>>>> running >>>>>>>>>>> a modern version of RPi OS. >>>>>>>>>>> >>>>>>>>>>> On Wed, Sep 4, 2024 at 12:06 PM hind...@gmail.com < >>>>>>>>>>> hind...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> I should add, when I start weewx, I get: >>>>>>>>>>>> >>>>>>>>>>>> [....] Starting weewx (via systemctl): weewx.service==== >>>>>>>>>>>> AUTHENTICATING FOR org. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> freedesktop.systemd1.manage-units >>>>>>>>>>>> === >>>>>>>>>>>> Authentication is required to start 'weewx.service'. >>>>>>>>>>>> Multiple identities can be used for authentication: >>>>>>>>>>>> 1. ,,, (pi) >>>>>>>>>>>> 2. root >>>>>>>>>>>> Choose identity to authenticate as (1-2): 1 >>>>>>>>>>>> Password: >>>>>>>>>>>> ==== AUTHENTICATION COMPLETE === >>>>>>>>>>>> Job for weewx.service failed because the control process exited >>>>>>>>>>>> with error code. >>>>>>>>>>>> See "systemctl status weewx.service" and "journalctl -xe" for >>>>>>>>>>>> details. >>>>>>>>>>>> failed! >>>>>>>>>>>> >>>>>>>>>>>> Does that helpo diagnose the problem. I never remember being >>>>>>>>>>>> asked for identity before. I am not sure I know the root password >>>>>>>>>>>> (dumb, I >>>>>>>>>>>> know). >>>>>>>>>>>> On Wednesday 4 September 2024 at 19:47:33 UTC+1 >>>>>>>>>>>> hind...@gmail.com wrote: >>>>>>>>>>>> >>>>>>>>>>>>> No problem. >>>>>>>>>>>>> >>>>>>>>>>>>> Copied below. >>>>>>>>>>>>> >>>>>>>>>>>>> I don't think I modified anything, My weather website stopped >>>>>>>>>>>>> working when I was on holiday. The last valid graph entry is 20 >>>>>>>>>>>>> August 2024 >>>>>>>>>>>>> at 5pm -but not sure my syslog files go back that far to check >>>>>>>>>>>>> what >>>>>>>>>>>>> happened. >>>>>>>>>>>>> >>>>>>>>>>>>> . /lib/init/vars.sh >>>>>>>>>>>>> >>>>>>>>>>>>> # Define LSB log_* functions. >>>>>>>>>>>>> # Depend on lsb-base (>= 3.0-6) to ensure that this file is >>>>>>>>>>>>> present. >>>>>>>>>>>>> . /lib/lsb/init-functions >>>>>>>>>>>>> >>>>>>>>>>>>> # start the daemon/service >>>>>>>>>>>>> # 0 if daemon has been started >>>>>>>>>>>>> # 1 if daemon was already running >>>>>>>>>>>>> # 2 if daemon could not be started >>>>>>>>>>>>> # check using ps not the pid file. pid file could be leftover. >>>>>>>>>>>>> do_start() { >>>>>>>>>>>>> NPROC=$(count_procs) >>>>>>>>>>>>> if [ $NPROC != 0 ]; then >>>>>>>>>>>>> return 1 >>>>>>>>>>>>> fi >>>>>>>>>>>>> start-stop-daemon --start --chuid $WEEWX_USER --pidfile >>>>>>>>>>>>> $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2 >>>>>>>>>>>>> return 0 >>>>>>>>>>>>> } >>>>>>>>>>>>> >>>>>>>>>>>>> # stop the daemon/service >>>>>>>>>>>>> # 0 if daemon has been stopped >>>>>>>>>>>>> # 1 if daemon was already stopped >>>>>>>>>>>>> # 2 if daemon could not be stopped >>>>>>>>>>>>> # other if a failure occurred >>>>>>>>>>>>> do_stop() { >>>>>>>>>>>>> # bail out if the app is not running >>>>>>>>>>>>> NPROC=$(count_procs) >>>>>>>>>>>>> if [ $NPROC = 0 ]; then >>>>>>>>>>>>> return 1 >>>>>>>>>>>>> fi >>>>>>>>>>>>> # bail out if there is no pid file >>>>>>>>>>>>> if [ ! -f $PIDFILE ]; then >>>>>>>>>>>>> return 1 >>>>>>>>>>>>> fi >>>>>>>>>>>>> start-stop-daemon --stop --pidfile $PIDFILE >>>>>>>>>>>>> # we cannot trust the return value from start-stop-daemon >>>>>>>>>>>>> RETVAL=2 >>>>>>>>>>>>> c=0 >>>>>>>>>>>>> while [ $c -lt 24 -a "$RETVAL" = "2" ]; do >>>>>>>>>>>>> c=`expr $c + 1` >>>>>>>>>>>>> # process may not really have completed, so check it >>>>>>>>>>>>> NPROC=$(count_procs) >>>>>>>>>>>>> if [ $NPROC = 0 ]; then >>>>>>>>>>>>> RETVAL=0 >>>>>>>>>>>>> else >>>>>>>>>>>>> echo -n "." >>>>>>>>>>>>> sleep 5 >>>>>>>>>>>>> fi >>>>>>>>>>>>> done >>>>>>>>>>>>> if [ "$RETVAL" = "0" -o "$RETVAL" = "1" ]; then >>>>>>>>>>>>> # delete the pid file just in case >>>>>>>>>>>>> rm -f $PIDFILE >>>>>>>>>>>>> fi >>>>>>>>>>>>> return "$RETVAL" >>>>>>>>>>>>> } >>>>>>>>>>>>> >>>>>>>>>>>>> # send a SIGHUP to the daemon/service >>>>>>>>>>>>> do_reload() { >>>>>>>>>>>>> start-stop-daemon --stop --signal 1 --quiet --pidfile >>>>>>>>>>>>> $PIDFILE >>>>>>>>>>>>> return 0 >>>>>>>>>>>>> } >>>>>>>>>>>>> >>>>>>>>>>>>> count_procs() { >>>>>>>>>>>>> NPROC=`ps ax | grep $WEEWX_BIN | grep $NAME.pid | wc -l` >>>>>>>>>>>>> echo $NPROC >>>>>>>>>>>>> } >>>>>>>>>>>>> >>>>>>>>>>>>> RETVAL=0 >>>>>>>>>>>>> case "$1" in >>>>>>>>>>>>> start) >>>>>>>>>>>>> log_daemon_msg "Starting $DESC" "$NAME" >>>>>>>>>>>>> do_start >>>>>>>>>>>>> case "$?" in >>>>>>>>>>>>> 0) log_end_msg 0; RETVAL=0 ;; >>>>>>>>>>>>> 1) log_action_cont_msg " already running" && >>>>>>>>>>>>> log_end_msg 0; RETVAL=0 ;; >>>>>>>>>>>>> 2) log_end_msg 1; RETVAL=1 ;; >>>>>>>>>>>>> esac >>>>>>>>>>>>> ;; >>>>>>>>>>>>> stop) >>>>>>>>>>>>> log_daemon_msg "Stopping $DESC" "$NAME" >>>>>>>>>>>>> do_stop >>>>>>>>>>>>> case "$?" in >>>>>>>>>>>>> 0) log_end_msg 0; RETVAL=0 ;; >>>>>>>>>>>>> 1) log_action_cont_msg " not running" && >>>>>>>>>>>>> log_end_msg 0; RETVAL=0 ;; >>>>>>>>>>>>> 2) log_end_msg 1; RETVAL=1 ;; >>>>>>>>>>>>> esac >>>>>>>>>>>>> ;; >>>>>>>>>>>>> >>>>>>>>>>>>> On Wednesday 4 September 2024 at 18:33:29 UTC+1 Tom Keffer >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Sorry, but we're going to have to see the entire file. We need >>>>>>>>>>>>> to see how weewxd is invoked. >>>>>>>>>>>>> >>>>>>>>>>>>> One more question: what did you modify? Any reason you can >>>>>>>>>>>>> think of why it stopped working? >>>>>>>>>>>>> >>>>>>>>>>>>> -tk >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Sep 4, 2024 at 10:23 AM hind...@gmail.com < >>>>>>>>>>>>> hind...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, Tom. >>>>>>>>>>>>> >>>>>>>>>>>>> Weewx is version 4.10.2 >>>>>>>>>>>>> >>>>>>>>>>>>> /etc/init.d/weewx contains a lot of code. The path section is: >>>>>>>>>>>>> >>>>>>>>>>>>> PATH=/sbin:/usr/sbin:/bin:/usr/bin >>>>>>>>>>>>> >>>>>>>>>>>>> WEEWX_BIN=/usr/bin/weewxd >>>>>>>>>>>>> >>>>>>>>>>>>> WEEWX_CFG=/etc/weewx/weewx.conf >>>>>>>>>>>>> >>>>>>>>>>>>> WEEWX_USER=root:root >>>>>>>>>>>>> >>>>>>>>>>>>> DESC="weewx weather system" >>>>>>>>>>>>> >>>>>>>>>>>>> NAME=weewx >>>>>>>>>>>>> >>>>>>>>>>>>> PIDFILE=/var/run/$NAME.pid >>>>>>>>>>>>> My RPi is Raspberry Pi 3 Model B Plus Rev 1.3. I am running >>>>>>>>>>>>> it under quite an old Raspbian version - "Stretch". >>>>>>>>>>>>> >>>>>>>>>>>>> Sorry - how do I use a systemd service file? >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks >>>>>>>>>>>>> >>>>>>>>>>>>> David. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Wednesday 4 September 2024 at 17:48:36 UTC+1 Tom Keffer >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Some sort of PYTHONPATH problem I would imagine, but we need >>>>>>>>>>>>> more information. >>>>>>>>>>>>> >>>>>>>>>>>>> What version of WeeWX? >>>>>>>>>>>>> What's in your /etc/init.d/weewx? >>>>>>>>>>>>> What version of RaspberryPi OS? >>>>>>>>>>>>> Assuming a reasonably recent version, why not use a systemd >>>>>>>>>>>>> service file? >>>>>>>>>>>>> >>>>>>>>>>>>> If all else fails, set debug=1, restart weewxd, post the log. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Sep 4, 2024 at 4:31 AM hind...@gmail.com < >>>>>>>>>>>>> hind...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> For some unknown reason my weather station is no longer >>>>>>>>>>>>> updating - which must be due to weewx having failed somehow. When >>>>>>>>>>>>> I restart >>>>>>>>>>>>> my Raspberry Pi, to try to reset things, I get the following: >>>>>>>>>>>>> >>>>>>>>>>>>> weewx.service - LSB: weewx weather system >>>>>>>>>>>>> >>>>>>>>>>>>> Loaded: loaded (/etc/init.d/weewx; generated; vendor >>>>>>>>>>>>> preset: enabled) >>>>>>>>>>>>> >>>>>>>>>>>>> Active: failed (Result: exit-code) since Wed 2024-09-04 >>>>>>>>>>>>> 12:23:03 BST; 2min 34s ago >>>>>>>>>>>>> >>>>>>>>>>>>> Docs: man:systemd-sysv-generator(8) >>>>>>>>>>>>> >>>>>>>>>>>>> Process: 480 ExecStart=/etc/init.d/weewx start (code=exited, >>>>>>>>>>>>> status=1/FAILURE) >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi weewx[480]: File >>>>>>>>>>>>> "/usr/share/weewx/weewxd", line 25, in <module> >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi weewx[480]: import >>>>>>>>>>>>> weeutil.logger >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi weewx[480]: File >>>>>>>>>>>>> "/usr/share/weewx/weeutil/logger.py", line 17, in <module> >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi weewx[480]: import weewx >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi weewx[480]: ImportError: No module >>>>>>>>>>>>> named weewx >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi weewx[480]: failed! >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi systemd[1]: weewx.service: Control >>>>>>>>>>>>> process exited, code=exited status=1 >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi systemd[1]: Failed to start LSB: >>>>>>>>>>>>> weewx weather system. >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi systemd[1]: weewx.service: Unit >>>>>>>>>>>>> entered failed state. >>>>>>>>>>>>> >>>>>>>>>>>>> Sep 04 12:23:03 raspberrypi systemd[1]: weewx.service: Failed >>>>>>>>>>>>> with result 'exit-code'. >>>>>>>>>>>>> >>>>>>>>>>>>> ~ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Anyone know what is going on please? >>>>>>>>>>>>> >>>>>>>>>>>>> Many Thanks >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> David. >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> 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/21297d91-d219-4790-85d2-d1d2131075acn%40googlegroups.com >>>>>>>>>>>>> >>>>>>>>>>>>> <https://groups.google.com/d/msgid/weewx-user/21297d91-d219-4790-85d2-d1d2131075acn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>> . >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> 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/fba5220b-9442-437a-851d-e7035570faa5n%40googlegroups.com >>>>>>>>>>>>> >>>>>>>>>>>>> <https://groups.google.com/d/msgid/weewx-user/fba5220b-9442-437a-851d-e7035570faa5n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>> . >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>> 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/7adf621a-02c3-439c-a9b9-24bdfaea945cn%40googlegroups.com >>>>>>>>>>>> >>>>>>>>>>>> <https://groups.google.com/d/msgid/weewx-user/7adf621a-02c3-439c-a9b9-24bdfaea945cn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>> 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/f0565f28-737f-4e30-9541-77f513b5a13an%40googlegroups.com >>>>>>>>>> >>>>>>>>>> <https://groups.google.com/d/msgid/weewx-user/f0565f28-737f-4e30-9541-77f513b5a13an%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>> . >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>> You received this message because you are subscribed to a topic in >>>>>>>>> the Google Groups "weewx-user" group. >>>>>>>>> To unsubscribe from this topic, visit >>>>>>>>> https://groups.google.com/d/topic/weewx-user/CWN10iKhjUA/unsubscribe >>>>>>>>> . >>>>>>>>> To unsubscribe from this group and all its topics, send an email >>>>>>>>> to weewx-user+...@googlegroups.com. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/weewx-user/CAPq0zEDECt6FyoqjO%2Bq_evimMomJJb4dtDJEXfBce1fgt7vpvA%40mail.gmail.com >>>>>>>>> >>>>>>>>> <https://groups.google.com/d/msgid/weewx-user/CAPq0zEDECt6FyoqjO%2Bq_evimMomJJb4dtDJEXfBce1fgt7vpvA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> -- >>>>>> 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/2a031499-68f1-4064-a721-8789b58c5cf2n%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/weewx-user/2a031499-68f1-4064-a721-8789b58c5cf2n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "weewx-user" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/weewx-user/CWN10iKhjUA/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> weewx-user+...@googlegroups.com. >> > To view this discussion visit >> https://groups.google.com/d/msgid/weewx-user/7550577e-b85e-4be8-98d1-e571b8ec616cn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/weewx-user/7550577e-b85e-4be8-98d1-e571b8ec616cn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- 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+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/3ff3487e-d0f6-4350-b4ae-4ff5130f35dfn%40googlegroups.com.