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.