Well, I screwed up the line I wanted you to add.  Then end of that line should have been:

(ts, type(ts), self.cache[obs][‘ts’], type(self.cache[obs][‘ts’]), max_age, type(max_age)))

As I mentioned, the only way you could get this is if max_age is a string.
Are you sure you don’t have max_cache_age = “600” (i.e., the 600 in quotes) in weewx.conf?

On Nov 19, 2025, at 5:13 PM, 'Ron Walker' via weewx-user <[email protected]> wrote:

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.

--
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/87F4FCEE-7B7F-46D8-8AB7-1E710380D33E%40johnkline.com.

Reply via email to