Ian, Glen, John,

I made the changes that Ian suggested and that seems to have done the 
trick!  I've pasted the log from the restart.   I've waited a couple of 
report periods, but there is no change in the gauges.  Thank you all for 
the progress so far!  

Started weewx.service - WeeWX.
INFO __main__: Initializing weewxd version 5.2.0
INFO __main__: Command line: /usr/share/weewx/weewxd.py 
/etc/weewx/weewx.conf
INFO __main__: Using Python: 3.13.5 (main, Jun 25 2025, 18:55:22) [GCC 
14.2.0]
INFO __main__: Located at:   /usr/bin/python3
INFO __main__: Platform:     Linux-6.12.47+rpt-rpi-v8-aarch64-with-glibc2.41
INFO __main__: Locale:       'en_US'
INFO __main__: Entry path:   /usr/share/weewx/weewxd.py
INFO __main__: WEEWX_ROOT:   /etc/weewx
INFO __main__: Config file:  /etc/weewx/weewx.conf
INFO __main__: User module:  /etc/weewx/bin/user
INFO __main__: Debug:        1
INFO __main__: User:         weewx
INFO __main__: Group:        weewx
INFO __main__: Groups:       weewx
DEBUG __main__: loop_on_init: False
DEBUG __main__: Initializing engine
INFO weewx.engine: Loading station type FileParse (user.fileparse)
INFO user.fileparse: Data file is /var/tmp/weewx/data.csv
INFO user.fileparse: Polling interval is 10.0
INFO user.fileparse: Label map is {'pressure': 'pressure', 'outTemp': 
'outTemp', 'inTemp': 'inTemp', 'outHumidity': 'outHumidity', 'inHumidity': 
'inHumidity', 'windSpeed': 'windSpeed', 'windDir': 'windDir', 'windGust': 
'windGust', 'windGustDir': 'windGustDir', 'supplyVoltage': 'supplyVoltage', 
'lightLevel': 'radiation', 'rain': 'rain'}
DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
DEBUG weewx.engine: Loading service weewx.engine.StdConvert
INFO weewx.engine: StdConvert target unit is 0x1
DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
DEBUG weewx.engine: Loading service weewx.engine.StdQC
DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding
DEBUG weewx.manager: Daily summary version is 4.0
DEBUG weewx.engine: Finished loading service weewx.wxservices.StdWXCalculate
DEBUG weewx.engine: Loading service weewx.wxxtypes.StdWXXTypes
DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdWXXTypes
DEBUG weewx.engine: Loading service weewx.wxxtypes.StdPressureCooker
DEBUG weewx.engine: Finished loading service 
weewx.wxxtypes.StdPressureCooker
DEBUG weewx.engine: Loading service weewx.wxxtypes.StdRainRater
DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdRainRater
DEBUG weewx.engine: Loading service weewx.wxxtypes.StdDelta
DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdDelta
DEBUG weewx.engine: Loading service weewx.engine.StdArchive
INFO weewx.engine: Archive will use data binding wx_binding
INFO weewx.engine: Record generation will be attempted in 'hardware'
INFO weewx.engine: Using archive interval of 300 seconds (specified in 
weewx configuration)
DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1
DEBUG weewx.engine: Finished loading service weewx.engine.StdArchive
DEBUG weewx.engine: Loading service weewx.restx.StdStationRegistry
INFO weewx.restx: StationRegistry: Registration not requested.
DEBUG weewx.engine: Finished loading service weewx.restx.StdStationRegistry
DEBUG weewx.engine: Loading service weewx.restx.StdWunderground
INFO weewx.restx: Wunderground: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdWunderground
DEBUG weewx.engine: Loading service weewx.restx.StdPWSweather
INFO weewx.restx: PWSweather: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdPWSweather
DEBUG weewx.engine: Loading service weewx.restx.StdCWOP
INFO weewx.restx: CWOP: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdCWOP
DEBUG weewx.engine: Loading service weewx.restx.StdWOW
INFO weewx.restx: WOW: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdWOW
DEBUG weewx.engine: Loading service weewx.restx.StdWOWBE
INFO weewx.restx: WOW-BE: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdWOWBE
DEBUG weewx.engine: Loading service weewx.restx.StdAWEKAS
INFO weewx.restx: AWEKAS: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdAWEKAS
DEBUG weewx.engine: Loading service weewx.engine.StdPrint
DEBUG weewx.engine: Finished loading service weewx.engine.StdPrint
DEBUG weewx.engine: Loading service weewx.engine.StdReport
INFO weewx.engine: 'pyephem' detected, extended almanac data is available
DEBUG weewx.engine: Finished loading service weewx.engine.StdReport
DEBUG weewx.engine: Loading service user.rtgd.RealtimeGaugeData
INFO user.rtgd: version is 0.5.5
DEBUG weewx.manager: Daily summary version is 4.0
INFO user.rtgd: Unknown block specified for scroller_text
INFO user.rtgd: gauge-data.txt will not be exported.
INFO user.rtgd: '/var/www/html/weewx/steelseries/gauge-data.txt' will be 
generated. min_interval is 2 seconds
DEBUG weewx.engine: Finished loading service user.rtgd.RealtimeGaugeData
INFO __main__: Starting up weewx version 5.2.0
DEBUG weewx.engine: Station does not support reading the time
INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
INFO weewx.manager: Starting backfill of daily summaries
INFO weewx.manager: Daily summaries up to date
INFO weewx.engine: Starting main packet loop.
DEBUG weewx.manager: Daily summary version is 4.0
DEBUG weewx.manager: Daily summary version is 4.0
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600400 (1763600400), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600400 (1763600400), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600400 (1763600400), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)
INFO user.rtgd: ts: 1763600590 (1763600590), self.cache[obs]['ts']: 
1763600590 (1763600590), max_age: 600 (600)

On Wednesday, November 19, 2025 at 6:55:25 PM UTC-5 Ian Millard wrote:

> Hi,
>
> The error in your WeeWX log shows a type mismatch in the RealtimeGaugeData 
> extension. The issue is that max_age is being treated as a string instead 
> of an integer when comparing timestamps.
>
>
> *Find the problematic line* (around line 2894):
>
> if obs in self.cache and ts - self.cache[obs]['ts'] <= max_age:
>
> *Modify it to ensure integer comparison*:
>
> if obs in self.cache and ts - self.cache[obs]['ts'] <= int(max_age):
>
>
> *Also check the calling function* (around line 2908) and ensure the max_age 
> parameter is passed as integer:
>
> packet[obs] = self.get_value(obs, ts, int(max_age))
>
> Cheers,
>
> Ian
>
>
> On 19 Nov 2025, at 22:37, 'Ron Walker' via weewx-user <
> [email protected]> wrote:
>
> Started weewx.service - WeeWX.
> INFO __main__: Initializing weewxd version 5.2.0
> INFO __main__: Command line: /usr/share/weewx/weewxd.py 
> /etc/weewx/weewx.conf
> INFO __main__: Using Python: 3.13.5 (main, Jun 25 2025, 18:55:22) [GCC 
> 14.2.0]
> INFO __main__: Located at:   /usr/bin/python3
> INFO __main__: Platform:     
> Linux-6.12.47+rpt-rpi-v8-aarch64-with-glibc2.41
> INFO __main__: Locale:       'en_US'
> INFO __main__: Entry path:   /usr/share/weewx/weewxd.py
> INFO __main__: WEEWX_ROOT:   /etc/weewx
> INFO __main__: Config file:  /etc/weewx/weewx.conf
> INFO __main__: User module:  /etc/weewx/bin/user
> INFO __main__: Debug:        1
> INFO __main__: User:         weewx
> INFO __main__: Group:        weewx
> INFO __main__: Groups:       weewx
> DEBUG __main__: loop_on_init: False
> DEBUG __main__: Initializing engine
> INFO weewx.engine: Loading station type FileParse (user.fileparse)
> INFO user.fileparse: Data file is /var/tmp/weewx/data.csv
> INFO user.fileparse: Polling interval is 10.0
> INFO user.fileparse: Label map is {'pressure': 'pressure', 'outTemp': 
> 'outTemp', 'inTemp': 'inTemp', 'outHumidity': 'outHumidity', 'inHumidity': 
> 'inHumidity', 'windSpeed': 'windSpeed', 'windDir': 'windDir', 'windGust': 
> 'windGust', 'windGustDir': 'windGustDir', 'supplyVoltage': 'supplyVoltage', 
> 'lightLevel': 'radiation', 'rain': 'rain'}
> DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
> DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
> DEBUG weewx.engine: Loading service weewx.engine.StdConvert
> INFO weewx.engine: StdConvert target unit is 0x1
> DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
> DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
> DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
> DEBUG weewx.engine: Loading service weewx.engine.StdQC
> DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
> DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
> INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding
> DEBUG weewx.manager: Daily summary version is 4.0
> DEBUG weewx.engine: Finished loading service 
> weewx.wxservices.StdWXCalculate
> DEBUG weewx.engine: Loading service weewx.wxxtypes.StdWXXTypes
> DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdWXXTypes
> DEBUG weewx.engine: Loading service weewx.wxxtypes.StdPressureCooker
> DEBUG weewx.engine: Finished loading service 
> weewx.wxxtypes.StdPressureCooker
> DEBUG weewx.engine: Loading service weewx.wxxtypes.StdRainRater
> DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdRainRater
> DEBUG weewx.engine: Loading service weewx.wxxtypes.StdDelta
> DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdDelta
> DEBUG weewx.engine: Loading service weewx.engine.StdArchive
> INFO weewx.engine: Archive will use data binding wx_binding
> INFO weewx.engine: Record generation will be attempted in 'hardware'
> INFO weewx.engine: Using archive interval of 300 seconds (specified in 
> weewx configuration)
> DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1
> DEBUG weewx.engine: Finished loading service weewx.engine.StdArchive
> DEBUG weewx.engine: Loading service weewx.restx.StdStationRegistry
> INFO weewx.restx: StationRegistry: Registration not requested.
> DEBUG weewx.engine: Finished loading service weewx.restx.StdStationRegistry
> DEBUG weewx.engine: Loading service weewx.restx.StdWunderground
> INFO weewx.restx: Wunderground: Posting not enabled.
> DEBUG weewx.engine: Finished loading service weewx.restx.StdWunderground
> DEBUG weewx.engine: Loading service weewx.restx.StdPWSweather
> INFO weewx.restx: PWSweather: Posting not enabled.
> DEBUG weewx.engine: Finished loading service weewx.restx.StdPWSweather
> DEBUG weewx.engine: Loading service weewx.restx.StdCWOP
> INFO weewx.restx: CWOP: Posting not enabled.
> DEBUG weewx.engine: Finished loading service weewx.restx.StdCWOP
> DEBUG weewx.engine: Loading service weewx.restx.StdWOW
> INFO weewx.restx: WOW: Posting not enabled.
> DEBUG weewx.engine: Finished loading service weewx.restx.StdWOW
> DEBUG weewx.engine: Loading service weewx.restx.StdWOWBE
> INFO weewx.restx: WOW-BE: Posting not enabled.
> DEBUG weewx.engine: Finished loading service weewx.restx.StdWOWBE
> DEBUG weewx.engine: Loading service weewx.restx.StdAWEKAS
> INFO weewx.restx: AWEKAS: Posting not enabled.
> DEBUG weewx.engine: Finished loading service weewx.restx.StdAWEKAS
> DEBUG weewx.engine: Loading service weewx.engine.StdPrint
> DEBUG weewx.engine: Finished loading service weewx.engine.StdPrint
> DEBUG weewx.engine: Loading service weewx.engine.StdReport
> INFO weewx.engine: 'pyephem' detected, extended almanac data is available
> DEBUG weewx.engine: Finished loading service weewx.engine.StdReport
> DEBUG weewx.engine: Loading service user.rtgd.RealtimeGaugeData
> INFO user.rtgd: version is 0.5.5
> DEBUG weewx.manager: Daily summary version is 4.0
> INFO user.rtgd: Unknown block specified for scroller_text
> INFO user.rtgd: gauge-data.txt will not be exported.
> INFO user.rtgd: '/var/www/html/weewx/steelseries/gauge-data.txt' will be 
> generated. min_interval is 2 seconds
> DEBUG weewx.engine: Finished loading service user.rtgd.RealtimeGaugeData
> INFO __main__: Starting up weewx version 5.2.0
> DEBUG weewx.engine: Station does not support reading the time
> INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
> INFO weewx.manager: Starting backfill of daily summaries
> INFO weewx.manager: Daily summaries up to date
> INFO weewx.engine: Starting main packet loop.
> DEBUG weewx.manager: Daily summary version is 4.0
> DEBUG weewx.manager: Daily summary version is 4.0
> INFO user.rtgd: ts: 1763588923 (1763588923), self.cache[obs]['ts']: 
> 1763588923 (1763588923), max_age: 600 (600)
> CRITICAL user.rtgd: Unexpected exception of type <class 'TypeError'>
> DEBUG user.rtgd: rtgdthread: **** Traceback (most recent call last):
> DEBUG user.rtgd: rtgdthread: ****   File "/etc/weewx/bin/user/rtgd.py", 
> line 1825, in run
> DEBUG user.rtgd: rtgdthread: ****     
> self.process_packet(_package['payload'])
> DEBUG user.rtgd: rtgdthread: ****     
> ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
> DEBUG user.rtgd: rtgdthread: ****   File "/etc/weewx/bin/user/rtgd.py", 
> line 1880, in process_packet
> DEBUG user.rtgd: rtgdthread: ****     cached_packet = 
> self.packet_cache.get_packet(_conv_packet['dateTime'],
> DEBUG user.rtgd: rtgdthread: ****                                         
>          self.max_cache_age)
> DEBUG user.rtgd: rtgdthread: ****   File "/etc/weewx/bin/user/rtgd.py", 
> line 2908, in get_packet
> DEBUG user.rtgd: rtgdthread: ****     packet[obs] = self.get_value(obs, 
> ts, max_age)
> DEBUG user.rtgd: rtgdthread: ****                   
> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
> DEBUG user.rtgd: rtgdthread: ****   File "/etc/weewx/bin/user/rtgd.py", 
> line 2894, in get_value
> DEBUG user.rtgd: rtgdthread: ****     if obs in self.cache and ts - 
> self.cache[obs]['ts'] <= max_age:
> DEBUG user.rtgd: rtgdthread: ****                             
>  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> DEBUG user.rtgd: rtgdthread: **** TypeError: '<=' not supported between 
> instances of 'int' and 'str'
> CRITICAL user.rtgd: Thread exiting. Reason: '<=' not supported between 
> instances of 'int' and 'str'
> INFO weewx.manager: Added record 2025-11-19 16:50:00 EST (1763589000) to 
> database 'weewx.sdb'
> INFO weewx.manager: Added record 2025-11-19 16:50:00 EST (1763589000) to 
> daily summary in 'weewx.sdb'
>
>
>

-- 
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 visit 
https://groups.google.com/d/msgid/weewx-user/dc5f17d5-1799-468e-bf3f-a76f99d0851an%40googlegroups.com.

Reply via email to