There are at least two things going on here: 1. Configuration files must be encoded in UTF-8. At least one of your files (graph.conf) has a byte in it that is inconsistent with UTF-8. This can happen if you open the file with something other than a text editor, or if you set the text editor to use an encoding other than UTF-8. The offending byte is byte 12.
2. You have a SQLite database file that is corrupt. This can be because it was opened by something other than sqlite, or the disk is going bad. -tk On Wed, Nov 29, 2023 at 9:58 AM Lorin Tremblay <[email protected]> wrote: > Hi there error started to appear about 2 weeks ago…. > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > Caught unrecoverable exception in generator > 'weewx.cheetahgenerator.CheetahGenerator' > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** 'utf-8' codec can't decode byte 0xff in position 12: invalid > start byte > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Traceback (most recent call last): > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 197, in run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** obj.start() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 385, in > start > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self.run() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 169, in > run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** ngen = self.generate(gen_dict[section_name], section_name, > self.gen_ts) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 229, in > generate > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** ngen += self.generate(section[subsection], subsection, gen_ts) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 229, in > generate > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** ngen += self.generate(section[subsection], subsection, gen_ts) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 321, in > generate > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** searchList = self._getSearchList(encoding, timespan, > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 415, in > _getSearchList > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** search_list += obj.get_extension_list(timespan, db_lookup) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/user/belchertown.py", line 400, in > get_extension_list > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** chart_dict = configobj.ConfigObj(chart_config_path, > file_error=True) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1229, > in __init__ > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self._load(infile, configspec) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1287, > in _load > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** content = self._handle_bom(content) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1485, > in _handle_bom > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** return self._decode(infile, 'utf-8') > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1517, > in _decode > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** infile[i] = line.decode(encoding) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in > position 12: invalid start byte > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Generator terminated > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] INFO weewx.reportengine: > Copied 3 files to /var/www/html/weewx > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > Caught unrecoverable exception in generator > 'user.belchertown.HighchartsJsonGenerator' > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** 'utf-8' codec can't decode byte 0xff in position 12: invalid > start byte > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Traceback (most recent call last): > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 197, in run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** obj.start() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 385, in > start > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self.run() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/user/belchertown.py", line 2159, in run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self.chart_dict = configobj.ConfigObj(chart_config_path, > file_error=True) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1229, > in __init__ > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self._load(infile, configspec) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1287, > in _load > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** content = self._handle_bom(content) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1485, > in _handle_bom > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** return self._decode(infile, 'utf-8') > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1517, > in _decode > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** infile[i] = line.decode(encoding) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in > position 12: invalid start byte > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Generator terminated > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] INFO weewx.cheetahgenerator: > Generated 1 files for report AirLinkReport in 0.03 seconds > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > Caught unrecoverable exception in generator > 'weewx.imagegenerator.ImageGenerator' > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** database disk image is malformed > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Traceback (most recent call last): > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 197, in run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** obj.start() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 385, in > start > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self.run() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/imagegenerator.py", line 42, in run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self.gen_images(self.gen_ts) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/imagegenerator.py", line 107, in > gen_images > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** plot = self.gen_plot(plotgen_ts, > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/imagegenerator.py", line 243, in > gen_plot > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** start_vec_t, stop_vec_t, data_vec_t = weewx.xtypes.get_series( > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/xtypes.py", line 100, in get_series > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** return xtype.get_series(obs_type, timespan, db_manager, > aggregate_type, > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/xtypes.py", line 167, in get_series > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** agg_vt = get_aggregate(obs_type, stamp, do_aggregate, > db_manager) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/xtypes.py", line 127, in > get_aggregate > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** return xtype.get_aggregate(obs_type, timespan, > aggregate_type, db_manager, > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/user/airlink.py", line 699, in > get_aggregate > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** row = db_manager.getSql(select_stmt) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/manager.py", line 579, in getSql > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** _cursor.execute(sql, sqlargs) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weedb/sqlite.py", line 39, in guarded_fn > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** return fn(*args, **kwargs) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** return sqlite3.Cursor.execute(self, *args, **kwargs) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** sqlite3.DatabaseError: database disk image is malformed > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Generator terminated > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] INFO weewx.restx: PWSWeather: > Published record 2023-11-29 12:05:00 EST (1701277500) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > Caught unrecoverable exception in generator > 'weewx.cheetahgenerator.CheetahGenerator' > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** 'utf-8' codec can't decode byte 0xff in position 12: invalid > start byte > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Traceback (most recent call last): > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 197, in run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** obj.start() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 385, in > start > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self.run() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 169, in > run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** ngen = self.generate(gen_dict[section_name], section_name, > self.gen_ts) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 229, in > generate > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** ngen += self.generate(section[subsection], subsection, gen_ts) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 229, in > generate > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** ngen += self.generate(section[subsection], subsection, gen_ts) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 321, in > generate > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** searchList = self._getSearchList(encoding, timespan, > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 415, in > _getSearchList > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** search_list += obj.get_extension_list(timespan, db_lookup) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/user/belchertown.py", line 400, in > get_extension_list > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** chart_dict = configobj.ConfigObj(chart_config_path, > file_error=True) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1229, > in __init__ > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self._load(infile, configspec) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1287, > in _load > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** content = self._handle_bom(content) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1485, > in _handle_bom > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** return self._decode(infile, 'utf-8') > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1517, > in _decode > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** infile[i] = line.decode(encoding) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in > position 12: invalid start byte > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Generator terminated > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] INFO weewx.reportengine: > Copied 3 files to /var/www/html/weewx/belchertown > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > Caught unrecoverable exception in generator > 'user.belchertown.HighchartsJsonGenerator' > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** 'utf-8' codec can't decode byte 0xff in position 12: invalid > start byte > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Traceback (most recent call last): > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 197, in run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** obj.start() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 385, in > start > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self.run() > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/share/weewx/user/belchertown.py", line 2159, in run > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self.chart_dict = configobj.ConfigObj(chart_config_path, > file_error=True) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1229, > in __init__ > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** self._load(infile, configspec) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1287, > in _load > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** content = self._handle_bom(content) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1485, > in _handle_bom > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** return self._decode(infile, 'utf-8') > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** File "/usr/lib/python3/dist-packages/configobj.py", line 1517, > in _decode > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** infile[i] = line.decode(encoding) > > Nov 29 12:05:26 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in > position 12: invalid start byte > > Nov 29 12:05:27 Weewx-APRS3695 weewx[14883] ERROR weewx.reportengine: > **** Generator terminated > > > > Can anyone help me understand where to look exactly > > > Raspeberry PI3+B and weewx version = 4.10.2 > > -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/4A73B738-4FAF-4142-A2B7-3DC61FD41953%40gmail.com > <https://groups.google.com/d/msgid/weewx-user/4A73B738-4FAF-4142-A2B7-3DC61FD41953%40gmail.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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/CAPq0zEDCuXaZdTURK0yNnfps3ysQq9-uZZXO268ebP4VvU_k5w%40mail.gmail.com.
