Hello, Weewx install on Raspberry Pi 4 8GB running perfectly save one issue. Every once in a while the service stops. It appears to happen after uploading files to my web server using SFTP (
weewx-sftp
). After the upload weewx logs an exception and stops the engine.
Any help or direction to find a resolution would be appreciated.
Log entries:
Jan 28 22:40:19 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:40:19 EST (1611891619) to database 'davishealthapi.sdb'
Jan 28 22:40:19 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:40:19 EST (1611891619) to daily summary in 'davishealthapi.sdb'
Jan 28 22:40:20 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:40:20 EST (1611891620) to database 'cmon.sdb'
Jan 28 22:40:20 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:40:20 EST (1611891620) to daily summary in 'cmon.sdb'
Jan 28 22:40:21 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:40:00 EST (1611891600) to database 'weewx.sdb'
Jan 28 22:40:21 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:40:00 EST (1611891600) to daily summary in 'weewx.sdb'
Jan 28 22:40:21 raspberrypi1 weewx[5159] INFO weewx.restx: PWSWeather: Published record 2021-01-28 22:40:00 EST (1611891600)
Jan 28 22:40:21 raspberrypi1 weewx[5159] INFO weewx.restx: Wunderground-PWS: Published record 2021-01-28 22:40:00 EST (1611891600)
Jan 28 22:40:22 raspberrypi1 weewx[5159] INFO weewx.cheetahgenerator: Generated 8 files for report SeasonsReport in 1.13 seconds
Jan 28 22:40:24 raspberrypi1 weewx[5159] INFO weewx.imagegenerator: Generated 18 images for report SeasonsReport in 2.12 seconds
Jan 28 22:40:24 raspberrypi1 weewx[5159] INFO weewx.reportengine: Copied 0 files to /var/www/html/weewx/seasons
Jan 28 22:40:24 raspberrypi1 weewx[5159] INFO weewx.cheetahgenerator: Generated 1 files for report cmon in 0.02 seconds
Jan 28 22:40:50 raspberrypi1 weewx[5159] INFO weewx.imagegenerator: Generated 36 images for report cmon in 25.80 seconds
Jan 28 22:40:51 raspberrypi1 weewx[5159] INFO weewx.cheetahgenerator: Generated 11 files for report Belchertown in 1.21 seconds
Jan 28 22:40:51 raspberrypi1 weewx[5159] INFO weewx.reportengine: Copied 2 files to /var/www/html/weewx
Jan 28 22:40:54 raspberrypi1 weewx[5159] INFO paramiko.transport: Connected (version 2.0, client OpenSSH_7.9p1)
Jan 28 22:40:54 raspberrypi1 weewx[5159] INFO paramiko.transport: Authentication (password) successful!
Jan 28 22:40:54 raspberrypi1 weewx[5159] INFO paramiko.transport.sftp: [chan 0] Opened sftp connection (server version 3)
Jan 28 22:41:08 raspberrypi1 weewx[5159] INFO paramiko.transport.sftp: [chan 0] sftp session closed.
Jan 28 22:41:08 raspberrypi1 weewx[5159] INFO user.sftp: sftpgenerator: transferred 82 files in 14.63 seconds
Jan 28 22:41:22 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:41:21 EST (1611891681) to database 'davishealthapi.sdb'
Jan 28 22:41:22 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:41:21 EST (1611891681) to daily summary in 'davishealthapi.sdb'
Jan 28 22:41:22 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:41:23 EST (1611891683) to database 'cmon.sdb'
Jan 28 22:41:22 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:41:23 EST (1611891683) to daily summary in 'cmon.sdb'
Jan 28 22:41:23 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:41:00 EST (1611891660) to database 'weewx.sdb'
Jan 28 22:41:23 raspberrypi1 weewx[5159] INFO weewx.manager: Added record 2021-01-28 22:41:00 EST (1611891660) to daily summary in 'weewx.sdb'
Jan 28 22:41:24 raspberrypi1 weewx[5159] INFO weewx.restx: PWSWeather: Published record 2021-01-28 22:41:00 EST (1611891660)
Jan 28 22:41:24 raspberrypi1 weewx[5159] INFO weewx.restx: Wunderground-PWS: Published record 2021-01-28 22:41:00 EST (1611891660)
Jan 28 22:41:25 raspberrypi1 weewx[5159] INFO weewx.cheetahgenerator: Generated 8 files for report SeasonsReport in 1.07 seconds
Jan 28 22:41:27 raspberrypi1 weewx[5159] INFO weewx.imagegenerator: Generated 18 images for report SeasonsReport in 2.16 seconds
Jan 28 22:41:27 raspberrypi1 weewx[5159] INFO weewx.reportengine: Copied 0 files to /var/www/html/weewx/seasons
Jan 28 22:41:27 raspberrypi1 weewx[5159] INFO weewx.cheetahgenerator: Generated 1 files for report cmon in 0.02 seconds
Jan 28 22:41:52 raspberrypi1 weewx[5159] INFO weewx.imagegenerator: Generated 36 images for report cmon in 25.54 seconds
Jan 28 22:41:54 raspberrypi1 weewx[5159] INFO weewx.cheetahgenerator: Generated 11 files for report Belchertown in 1.21 seconds
Jan 28 22:41:54 raspberrypi1 weewx[5159] INFO weewx.reportengine: Copied 2 files to /var/www/html/weewx
Jan 28 22:41:56 raspberrypi1 weewx[5159] INFO paramiko.transport: Connected (version 2.0, client OpenSSH_7.9p1)
Jan 28 22:41:56 raspberrypi1 weewx[5159] INFO paramiko.transport: Authentication (password) successful!
Jan 28 22:41:57 raspberrypi1 weewx[5159] INFO paramiko.transport.sftp: [chan 0] Opened sftp connection (server version 3)
Jan 28 22:42:10 raspberrypi1 weewx[5159] INFO paramiko.transport.sftp: [chan 0] sftp session closed.
Jan 28 22:42:10 raspberrypi1 weewx[5159] INFO user.sftp: sftpgenerator: transferred 82 files in 14.53 seconds
Jan 28 22:42:18 raspberrypi1 weewx[5159] INFO weewx.engine: Main loop exiting. Shutting engine down.
Jan 28 22:42:18 raspberrypi1 weewx[5159] INFO weewx.engine: Shutting down StdReport thread
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: Caught unrecoverable exception:
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** Expecting value: line 1 column 1 (char 0)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** Traceback (most recent call last):
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 214, in run
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** self.dispatchEvent(weewx.Event(weewx.CHECK_LOOP, packet=packet))
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 245, in dispatchEvent
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** callback(event)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 617, in check_loop
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** raise BreakLoop
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** weewx.engine.BreakLoop
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: ****
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** During handling of the above exception, another exception occurred:
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: ****
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** Traceback (most recent call last):
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 633, in post_loop
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** self._catchup(self.engine.console.genArchiveRecords)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 677, in _catchup
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** for record in generator(lastgood_ts):
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/drivers/__init__.py", line 30, in genArchiveRecords
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** raise NotImplementedError("Method 'genArchiveRecords' not implemented")
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** NotImplementedError: Method 'genArchiveRecords' not implemented
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: ****
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** During handling of the above exception, another exception occurred:
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: ****
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** Traceback (most recent call last):
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewxd", line 154, in main
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** engine.run()
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 221, in run
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** self.dispatchEvent(weewx.Event(weewx.POST_LOOP))
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 245, in dispatchEvent
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** callback(event)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 635, in post_loop
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** self._software_catchup()
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 697, in _software_catchup
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** origin='software'))
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 245, in dispatchEvent
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** callback(event)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/user/davishealthapi.py", line 391, in new_archive_record
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** self.save_data(self.get_packet(now, self.last_ts))
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/user/davishealthapi.py", line 413, in get_packet
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** self.api_key, self.api_secret, self.station_id, self.polling_interval
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/user/davishealthapi.py", line 367, in get_data
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** data = get_json(url)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/share/weewx/user/davishealthapi.py", line 206, in get_json
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** return response.json()
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/requests/models.py", line 897, in json
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** return complexjson.loads(self.text, **kwargs)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** return _default_decoder.decode(s)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** obj, end = self.raw_decode(s)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** return self.scan_once(s, idx=_w(s, idx).end())
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Jan 28 22:42:18 raspberrypi1 weewx[5159] CRITICAL __main__: **** Exiting.