if enough RAM on RPi, do it on ram disk (temporary mounts) rather than ssd - 
that got me around some strange (but massive) i/o latencies when migrating 
v3→v4 and converted hours database task to minutes
⊣GE⊢

> On 3 Jun 2024, at 10:02 AM, Tom Keffer <[email protected]> wrote:
> 
> According to sqlite, all of their databases are cross-platform 
> <https://www.sqlite.org/onefile.html> between big- and little-endian and 
> between 32- and 64-bit hardware. So, if you have access to a faster machine, 
> you can do the rebuild there, then copy the results over.
> 
> On Sun, Jun 2, 2024 at 4:56 PM Rob Cranfill <[email protected] 
> <mailto:[email protected]>> wrote:
>> Updated the DB. All looks good now, I think.
>> 
>> Just FYI, on my Pi4 with an SSD and a few years of records, the rebuild took 
>> this long:
>> 
>> rob@pi4:/var/lib/weewx $ weectl database rebuild-daily
>> Using configuration file /etc/weewx/weewx.conf
>> All daily summaries will be rebuilt.
>> Rebuild the daily summaries in the database 'weewx.sdb' (y/n)? y
>> Rebuilding daily summaries in database 'weewx.sdb' ...
>> Records processed: 2208000; time: 2024-06-02 04:55:00 PDT (1717329300)
>> Processed 2208530 records to rebuild 1538 daily summaries in 1784.55 seconds.
>> Rebuild of daily summaries in database 'weewx.sdb' complete.
>> 
>> :-)
>> 
>> Thanks again!
>> 
>> On Sunday, June 2, 2024 at 8:42:00 AM UTC-7 vince wrote:
>>> This is documented (here) 
>>> <https://github.com/poblabs/weewx-belchertown/issues/924> in the 
>>> Belchertown issues in Pat's github repo....
>>> 
>>> On Saturday, June 1, 2024 at 7:50:48 PM UTC-7 Rob Cranfill wrote:
>>>> Thanks, Vince. I read those other threads but didn't realize my particular 
>>>> error was from the same issue. I will look into it; meanwhile I've just 
>>>> turned Belchertown off.
>>>> 
>>>> On Saturday, June 1, 2024 at 6:06:07 PM UTC-7 vince wrote:
>>>>> Your computer is too slow, or your SD card is too slow, or your archive 
>>>>> period is too frequent (60 secs is very fast), or some combination of the 
>>>>> above.   For Belchertown specifically, many folks have run into issues 
>>>>> with v5 calculating items referenced in skins that are not elements in 
>>>>> their db.  Check the earlier threads from this week for the handful that 
>>>>> might be missing in your db.
>>>>> 
>>>>> At a minimum run 'weectl debug' and show us which DB elements are 
>>>>> defined.  That's 114 elements in the default v4 and above schema.  If you 
>>>>> see a number more like 51 or so, you're running the old schema and you'll 
>>>>> need to add some fields (per the multiple other threads in the last week 
>>>>> or so)
>>>>> 
>>>>> Archive info
>>>>>   Database name:        vp2.sdb
>>>>>   Table name:           archive
>>>>>   Version               4.0
>>>>>   Unit system:          1 (US)
>>>>>   First good timestamp: 2006-11-29 19:24:00 PST (1164857040)
>>>>>   Last good timestamp:  2024-06-01 09:10:00 PDT (1717258200)
>>>>>   Number of records:    1713267
>>>>>   weewx (weewx.conf) is set to use an archive interval of 300 seconds.
>>>>>   The station hardware was not interrogated to determine the archive 
>>>>> interval.
>>>>> 
>>>>> Supported SQL keys
>>>>>   dateTime                  usUnits                   interval
>>>>>   altimeter                 appTemp                   appTemp1
>>>>>   barometer                 batteryStatus1            batteryStatus2
>>>>>   batteryStatus3            batteryStatus4            batteryStatus5
>>>>>   batteryStatus6            batteryStatus7            batteryStatus8
>>>>>   cloudbase                 co                        co2
>>>>>   consBatteryVoltage        dewpoint                  dewpoint1
>>>>>   ET                        extraHumid1               extraHumid2
>>>>>   extraHumid3               extraHumid4               extraHumid5
>>>>>   extraHumid6               extraHumid7               extraHumid8
>>>>>   extraTemp1                extraTemp2                extraTemp3
>>>>>   extraTemp4                extraTemp5                extraTemp6
>>>>>   extraTemp7                extraTemp8                forecast
>>>>>   hail                      hailBatteryStatus         hailRate
>>>>>   heatindex                 heatindex1                heatingTemp
>>>>>   heatingVoltage            humidex                   humidex1
>>>>>   inDewpoint                inHumidity                inTemp
>>>>>   inTempBatteryStatus       leafTemp1                 leafTemp2
>>>>>   leafWet1                  leafWet2                  lightning_distance
>>>>>   lightning_disturber_count lightning_energy          
>>>>> lightning_noise_count
>>>>>   lightning_strike_count    luminosity                maxSolarRad
>>>>>   nh3                       no2                       noise
>>>>>   o3                        outHumidity               outTemp
>>>>>   outTempBatteryStatus      pb                        pm10_0
>>>>>   pm1_0                     pm2_5                     pressure
>>>>>   radiation                 rain                      rainBatteryStatus
>>>>>   rainRate                  referenceVoltage          rxCheckPercent
>>>>>   signal1                   signal2                   signal3
>>>>>   signal4                   signal5                   signal6
>>>>>   signal7                   signal8                   snow
>>>>>   snowBatteryStatus         snowDepth                 snowMoisture
>>>>>   snowRate                  so2                       soilMoist1
>>>>>   soilMoist2                soilMoist3                soilMoist4
>>>>>   soilTemp1                 soilTemp2                 soilTemp3
>>>>>   soilTemp4                 supplyVoltage             txBatteryStatus
>>>>>   UV                        uvBatteryStatus           windBatteryStatus
>>>>>   windchill                 windDir                   windGust
>>>>>   windGustDir               windrun                   windSpeed
>>>>> 
>>>>> On Saturday, June 1, 2024 at 5:58:01 PM UTC-7 Rob Cranfill wrote:
>>>>>> Upgraded to 4.10 to 5.0.2, thanks to help here. But now my Belchertown 
>>>>>> is dying and restarting the whole shebang with a "database is locked" 
>>>>>> error. 
>>>>>> 
>>>>>> Ideas?
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO __main__: retrying...
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: Loading station 
>>>>>> type Vantage (weewx.drivers.vantage)
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: StdConvert 
>>>>>> target unit is 0x1
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.wxservices: 
>>>>>> StdWXCalculate will use data binding wx_binding
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: Archive will use 
>>>>>> data binding wx_binding
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: Record 
>>>>>> generation will be attempted in 'hardware'
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: The archive 
>>>>>> interval in the configuration file (300) does not match the station 
>>>>>> hardware interval (60).
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: Using archive 
>>>>>> interval of 60 seconds (specified by hardware)
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: StationRegistry: 
>>>>>> Station will be registered.
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: Wunderground-PWS: 
>>>>>> Data for station KWASEATT418 will be posted
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: PWSWeather: Data 
>>>>>> for station SEAWALL01 will be posted
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: CWOP: Posting not 
>>>>>> enabled.
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: WOW: Posting not 
>>>>>> enabled.
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.restx: AWEKAS: Posting 
>>>>>> not enabled.
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO weewx.engine: 'pyephem' 
>>>>>> detected, extended almanac data is available
>>>>>> Jun 01 17:45:41 pi4 weewxd[3438608]: INFO __main__: Starting up weewx 
>>>>>> version 5.0.2
>>>>>> Jun 01 17:45:42 pi4 weewxd[3438608]: INFO weewx.engine: Clock error is 
>>>>>> -0.23 seconds (positive is fast)
>>>>>> Jun 01 17:45:42 pi4 weewxd[3438608]: INFO weewx.engine: Using binding 
>>>>>> 'wx_binding' to database 'weewx.sdb'
>>>>>> Jun 01 17:45:42 pi4 weewxd[3438608]: INFO weewx.manager: Starting 
>>>>>> backfill of daily summaries
>>>>>> Jun 01 17:45:42 pi4 weewxd[3438608]: INFO weewx.manager: Daily summaries 
>>>>>> up to date
>>>>>> Jun 01 17:45:43 pi4 weewxd[3438608]: INFO weewx.engine: Starting main 
>>>>>> packet loop.
>>>>>> Jun 01 17:45:46 pi4 weewxd[3438608]: ERROR weewx.restx: StationRegistry: 
>>>>>> Failed to publish record 2024-06-01 17:43:00 PDT (1717288980): HTTP 
>>>>>> Error 429: TOO MANY REQUESTS
>>>>>> Jun 01 17:47:20 pi4 weewxd[3438608]: INFO weewx.engine: Main loop 
>>>>>> exiting. Shutting engine down.
>>>>>> Jun 01 17:47:20 pi4 weewxd[3438608]: INFO weewx.engine: Shutting down 
>>>>>> StdReport thread
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: 
>>>>>> Evaluation of template 
>>>>>> /etc/weewx/skins/Belchertown/json/weewx_data.json.tmpl failed with 
>>>>>> exception '<class 'weedb.OperationalError'>'
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** 
>>>>>> Ignoring template /etc/weewx/skins/Belchertown/json/weewx_data.json.tmpl
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: **** 
>>>>>> Reason: database is locked
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>> Traceback (most recent call last):
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     return fn(*args, **kwargs)
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>            ^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     return sqlite3.Cursor.execute(self, *args, **kwargs)
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>> sqlite3.OperationalError: database is locked
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>> During handling of the above exception, another exception occurred:
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>> Traceback (most recent call last):
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weewx/cheetahgenerator.py", line 334, in 
>>>>>> generate
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     unicode_string = compiled_template.respond()
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "_etc_weewx_skins_Belchertown_json_weewx_data_json_tmpl.py", line 
>>>>>> 3368, in respond
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weewx/cheetahgenerator.py", line 797, in filter
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     filtered = str(val)
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>                ^^^^^^^^
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weewx/tags.py", line 486, in __str__
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     vh = self._do_query()
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>          ^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weewx/tags.py", line 500, in _do_query
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     result = weewx.xtypes.get_aggregate(self.obs_type, self.timespan,
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weewx/xtypes.py", line 136, in get_aggregate
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     return xtype.get_aggregate(obs_type, timespan, aggregate_type, 
>>>>>> db_manager,
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>            
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weewx/xtypes.py", line 599, in get_aggregate
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     row = db_manager.getSql(DailySummaries.agg_sql_dict[aggregate_type] 
>>>>>> % inter_dict)
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>           
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weewx/manager.py", line 579, in getSql
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     _cursor.execute(sql, sqlargs)
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>   File "/usr/share/weewx/weedb/sqlite.py", line 52, in guarded_fn
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>>     raise weedb.OperationalError(e)
>>>>>> Jun 01 17:47:32 pi4 weewxd[3438608]: ERROR weewx.cheetahgenerator: ****  
>>>>>> weedb.OperationalError: database is locked
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine: Caught 
>>>>>> unrecoverable exception in generator 
>>>>>> 'weewx.cheetahgenerator.CheetahGenerator'
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****  database is locked
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****  Traceback (most recent call last):
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      return fn(*args, **kwargs)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****             ^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weedb/sqlite.py", line 233, in execute
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      return sqlite3.Cursor.execute(self, *args, **kwargs)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****  sqlite3.OperationalError: database is locked
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****  During handling of the above exception, another exception occurred:
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****  Traceback (most recent call last):
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weewx/reportengine.py", line 220, in run
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      obj.start()
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weewx/reportengine.py", line 409, in start
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      self.run()
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in 
>>>>>> run
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      ngen = self.generate(gen_dict[section_name], section_name, 
>>>>>> self.gen_ts)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****             
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in 
>>>>>> generate
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      ngen += self.generate(section[subsection], subsection, gen_ts)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in 
>>>>>> generate
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      ngen += self.generate(section[subsection], subsection, gen_ts)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 244, in 
>>>>>> generate
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      start_ts = default_archive.firstGoodStamp()
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weewx/manager.py", line 330, in 
>>>>>> firstGoodStamp
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      _row = self.getSql("SELECT MIN(dateTime) FROM %s" % 
>>>>>> self.table_name)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****             
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weewx/manager.py", line 579, in getSql
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      _cursor.execute(sql, sqlargs)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: Traceback (most recent call last):
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****    File "/usr/share/weewx/weedb/sqlite.py", line 52, in guarded_fn
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weedb/sqlite.py", line 38, in guarded_fn
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     return fn(*args, **kwargs)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:            ^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weedb/sqlite.py", line 233, in execute
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     return 
>>>>>> sqlite3.Cursor.execute(self, *args, **kwargs)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:            
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: sqlite3.OperationalError: database 
>>>>>> is locked
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: During handling of the above 
>>>>>> exception, another exception occurred:
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: Traceback (most recent call last):
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weewx/reportengine.py", line 220, in run
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     obj.start()
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weewx/reportengine.py", line 409, in start
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     self.run()
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 166, in run
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     ngen = 
>>>>>> self.generate(gen_dict[section_name], section_name, self.gen_ts)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:            
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     ngen += 
>>>>>> self.generate(section[subsection], subsection, gen_ts)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:             
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 226, in generate
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     ngen += 
>>>>>> self.generate(section[subsection], subsection, gen_ts)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:             
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 244, in generate
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     start_ts = 
>>>>>> default_archive.firstGoodStamp()
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:                
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weewx/manager.py", line 330, in firstGoodStamp
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     _row = self.getSql("SELECT 
>>>>>> MIN(dateTime) FROM %s" % self.table_name)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:            
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weewx/manager.py", line 579, in getSql
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     _cursor.execute(sql, sqlargs)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:   File 
>>>>>> "/usr/share/weewx/weedb/sqlite.py", line 52, in guarded_fn
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]:     raise weedb.OperationalError(e)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: weedb.OperationalError: database is 
>>>>>> locked
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****      raise weedb.OperationalError(e)
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****  weedb.OperationalError: database is locked
>>>>>> Jun 01 17:47:37 pi4 weewxd[3438608]: ERROR weewx.reportengine:         
>>>>>> ****  Generator terminated
>>>>>> Jun 01 17:47:40 pi4 weewxd[3438608]: ERROR weewx.engine: Unable to shut 
>>>>>> down StdReport thread
>>>>>> Jun 01 17:47:41 pi4 weewxd[3438608]: CRITICAL __main__: Database 
>>>>>> OperationalError exception: database is locked
>>>>>> Jun 01 17:47:41 pi4 weewxd[3438608]: CRITICAL __main__:     ****  
>>>>>> Waiting 2 minutes then retrying...
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO __main__: retrying...
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: Loading station 
>>>>>> type Vantage (weewx.drivers.vantage)
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: StdConvert 
>>>>>> target unit is 0x1
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.wxservices: 
>>>>>> StdWXCalculate will use data binding wx_binding
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: Archive will use 
>>>>>> data binding wx_binding
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: Record 
>>>>>> generation will be attempted in 'hardware'
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: The archive 
>>>>>> interval in the configuration file (300) does not match the station 
>>>>>> hardware interval (60).
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: Using archive 
>>>>>> interval of 60 seconds (specified by hardware)
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: StationRegistry: 
>>>>>> Station will be registered.
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: Wunderground-PWS: 
>>>>>> Data for station KWASEATT418 will be posted
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: PWSWeather: Data 
>>>>>> for station SEAWALL01 will be posted
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: CWOP: Posting not 
>>>>>> enabled.
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: WOW: Posting not 
>>>>>> enabled.
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.restx: AWEKAS: Posting 
>>>>>> not enabled.
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO weewx.engine: 'pyephem' 
>>>>>> detected, extended almanac data is available
>>>>>> Jun 01 17:49:41 pi4 weewxd[3438608]: INFO __main__: Starting up weewx 
>>>>>> version 5.0.2
>>>>>> Jun 01 17:49:42 pi4 weewxd[3438608]: INFO weewx.engine: Clock error is 
>>>>>> -1.13 seconds (positive is fast)
>>>>>> Jun 01 17:49:42 pi4 weewxd[3438608]: INFO weewx.engine: Using binding 
>>>>>> 'wx_binding' to database 'weewx.sdb'
>>>>>> Jun 01 17:49:42 pi4 weewxd[3438608]: INFO weewx.manager: Starting 
>>>>>> backfill of daily summaries
>>>>>> Jun 01 17:49:42 pi4 weewxd[3438608]: INFO weewx.manager: Daily summaries 
>>>>>> up to date
>>>>>> Jun 01 17:49:43 pi4 weewxd[3438608]: INFO weewx.engine: Starting main 
>>>>>> packet loop.
>>>>>> Jun 01 17:50:21 pi4 weewxd[3438608]: ERROR weewx.restx: StationRegistry: 
>>>>>> Failed to publish record 2024-06-01 17:47:00 PDT (1717289220): HTTP 
>>>>>> Error 429: TOO MANY REQUESTS
>>>>>> 
>>>>>> ...
>>>>>> 
>>>>>> 
>>>>>> 
>> 
>> 
>> -- 
>> 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] 
>> <mailto:[email protected]>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/weewx-user/645740ae-ff23-46c4-9aac-331073c2ee9dn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/weewx-user/645740ae-ff23-46c4-9aac-331073c2ee9dn%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 [email protected] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/weewx-user/CAPq0zEBp58qW8w8KvSDumO101u0KumP-QnTMnKOwuZ8n%2BhTvLA%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/weewx-user/CAPq0zEBp58qW8w8KvSDumO101u0KumP-QnTMnKOwuZ8n%2BhTvLA%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/3D27EC4A-97D0-4502-89C7-431B367BB9BB%40geddy.au.

Reply via email to