weewx itself works without problems - it can add new entries into 
weewx.sdb, and it'S running  right now.

But when trying to manually tweak weewx.sdb using sqlite3 commands, sqlite3 
complains. Using .recover seems to make it worse - its sql output contains 
some completely broken lines with datetime being 7 or 74 or unprintable 
bnary data. Clearly weewxd rejects to use that "recovered" weewx.sdb.

Currently I try to follow 
https://groups.google.com/g/weewx-user/c/PJuWj35o8TM
Luckily the transformation process should run for ~30min (data is stored on 
a SSD).

But howto identify the location of a broken weewx.sdb? E.g. if I try to run 
the sqlite3 command
select date(datetime, 'unixepoch', 'localtime') from archive;
It outputs data till 2018-03-31. And then there is an sqlite3 error 
message. Only the date conversion seems to fail. If I stay with integer 
datetime all data seems to be accessible.

Tom Keffer schrieb am Mittwoch, 20. März 2024 um 13:28:57 UTC+1:

> This could be anything. We will need to see more of the log to tell. For 
> example, you could be asking for a date one month after January 30.
>
> Set debug=1, restart weewxd, post the log from startup through the error.
>
> On Wed, Mar 20, 2024 at 3:57 AM 'Michael Waldor' via weewx-user <
> [email protected]> wrote:
>
>> Sadly those mysterious rows only appear AFTER .recover,  they appear 
>> within weewx.sql.
>> The failing command is
>>
>> SELECT count(*)
>> FROM archive
>> WHERE
>>   date(datetime, 'unixepoch', 'localtime')
>>   between '2024-03-15' and '2024-03-15';
>>
>> But that command works fine AFTER .recover.
>>
>> The error message from weewxd clearly indicates wrong datetime:
>>
>> Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     ****     
>>  last_d = datetime.date.fromtimestamp(weeutil.weeutil.startOfArchiveDay(
>> Mär 20 11:34:37 imurr9 weewxd[15172]:     time_dt = 
>> datetime.datetime.fromtimestamp(time_ts)
>> Mär 20 11:34:37 imurr9 weewxd[15172]: OverflowError: timestamp out of 
>> range for platform time_t
>> Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     ****    File 
>> "/usr/share/weewx/weeutil/weeutil.py", line 1196, in startOfArchiveDay
>> Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     ****     
>>  time_dt = datetime.datetime.fromtimestamp(time_ts)
>> Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     **** 
>>  OverflowError: timestamp out of range for platform time_t
>> Mär 20 11:34:37 imurr9 weewxd[15172]: CRITICAL __main__:     ****  Exiting
>> Michael Waldor schrieb am Mittwoch, 20. März 2024 um 10:43:13 UTC+1:
>>
>>> I do have a first idea: There are entries within weewx.sdb where 
>>> datetime is 0 or 7. Those values clearly are no valid timestamps.
>>> I'll proceed in that direction ...
>>>
>>> Michael Waldor schrieb am Mittwoch, 20. März 2024 um 10:04:57 UTC+1:
>>>
>>>> Some days ago I've stopped weewx for roughly one day (I did change the 
>>>> GPIO connections of my raspberry pi4). Now I wanted to insert some data 
>>>> into my weewx.sdb from that timespan.
>>>>
>>>> When trying some sqlite3 commands (on a local copy of weewx.sdb - as an 
>>>> exercise a simple count) sqlite3 failed with corrupt database. OK, can 
>>>> imagine that that might have happened sometimes during the last 5 years. 
>>>> Thus I tried to rebuild my database by
>>>>
>>>> mv weewx.sdb weewx_corrupt.sdb
>>>> sqlite3 weewx_corrupt.sdb .recover > weewx.sql
>>>> sqlite3 weewx.sdb < weewx.sql
>>>>
>>>> Now my sqlite3 commands worked as expected, i.e. the newly created 
>>>> weewx.sdb seemed to be fixed. Keep in mind that I did not modify 
>>>> weewx.sql. 
>>>> Thus a potential error might still have "survived" within the newly 
>>>> created 
>>>> weewx.sdb.
>>>>
>>>> I then checked the modified weewx.sdb copied into /var/lib/weewx (weewx 
>>>> itself was NOT running) with
>>>>
>>>> weectl database check
>>>>
>>>> and got no error messages. But weewxd did not like that modified 
>>>> weewx.sdb. It reports "OverflowError: timestamp out of range for ..." when 
>>>> starting weewx.
>>>>
>>>> To me it's difficult to tell
>>>> 1. whether my original weewx.sdb is corrupt at all (weewxd works fine)
>>>> 2. if it's corrupt howto fix it.
>>>>
>>>> Hope somebody might have a suggestion, Michael
>>>>
>>>> -- 
>> 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/b00628cf-ebf4-4fc2-a8bb-a193447e9476n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/weewx-user/b00628cf-ebf4-4fc2-a8bb-a193447e9476n%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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/e2a4a04c-f05c-486c-9306-9d52690a3d28n%40googlegroups.com.

Reply via email to