Did I just screw up permissions?

40 views
Skip to first unread message

Jim B.

unread,
Dec 5, 2025, 10:02:28 AM (19 hours ago) Dec 5
to weewx-user
I had to manually recover my password on my raspberry pi running my WeeWx installation. I also (probably my critical error) let linux update. Since I did that, I noticed my webpage hasn't updated.

I am JUST STARTING to learn Linux, so I am sure that is part of my problem.

Digging in... 

Hardware: Raspberry Pi 5 (4GB)
OS: Debian Bookworm 12
WeeWx Ver: 5.1

The first thing I noticed is when I check the status it's failed.

brasic@stormpi:~ $ sudo systemctl status weewx
× weewx.service - WeeWX
     Loaded: loaded (/lib/systemd/system/weewx.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Fri 2025-12-05 07:27:20 EST; 18min ago
   Duration: 329ms
       Docs: https://weewx.com/docs
    Process: 106042 ExecStart=weewxd /etc/weewx/weewx.conf (code=exited, status=1/FAILURE)
   Main PID: 106042 (code=exited, status=1/FAILURE)
        CPU: 331ms

Dec 05 07:27:20 stormpi weewxd[106042]: CRITICAL __main__:     ****    File "/usr/share/weewx/weeutil/weeutil.py", line 1405, in get_object
Dec 05 07:27:20 stormpi weewxd[106042]: CRITICAL __main__:     ****      klass = getattr(module, klass_name)
Dec 05 07:27:20 stormpi weewxd[106042]: CRITICAL __main__:     ****              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 05 07:27:20 stormpi weewxd[106042]: CRITICAL __main__:     ****  AttributeError: module 'weewx.restx' has no attribute 'StdCustomAPI'
Dec 05 07:27:20 stormpi weewxd[106042]: CRITICAL __main__:     ****  Exiting.
Dec 05 07:27:20 stormpi weewxd[106042]:     klass = getattr(module, klass_name)
Dec 05 07:27:20 stormpi weewxd[106042]:             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 05 07:27:20 stormpi weewxd[106042]: AttributeError: module 'weewx.restx' has no attribute 'StdCustomAPI'
Dec 05 07:27:20 stormpi systemd[1]: weewx.service: Main process exited, code=exited, status=1/FAILURE
Dec 05 07:27:20 stormpi systemd[1]: weewx.service: Failed with result 'exit-code'.


I also notice that to edit the /etc/weewx/weewx.conf I need to use sudo nano /etc/weewx/weewx.conf rather than just nano.

When I checked the logs (journalctl -r), here is what I found...

Dec 05 08:17:01 stormpi CRON[107499]: pam_unix(cron:session): session closed for user root
Dec 05 08:17:01 stormpi CRON[107500]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
Dec 05 08:17:01 stormpi CRON[107499]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Dec 05 08:16:59 stormpi systemd[1]: weewx.service: Failed with result 'exit-code'.
Dec 05 08:16:59 stormpi systemd[1]: weewx.service: Main process exited, code=exited, status=1/FAILURE
Dec 05 08:16:59 stormpi weewxd[107494]: AttributeError: module 'weewx.restx' has no attribute 'StdCustomAPI'
Dec 05 08:16:59 stormpi weewxd[107494]:             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 05 08:16:59 stormpi weewxd[107494]:     klass = getattr(module, klass_name)
Dec 05 08:16:59 stormpi weewxd[107494]:   File "/usr/share/weewx/weeutil/weeutil.py", line 1405, in get_object
Dec 05 08:16:59 stormpi weewxd[107494]:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 05 08:16:59 stormpi weewxd[107494]:     obj = weeutil.weeutil.get_object(svc)(self, config_dict)
Dec 05 08:16:59 stormpi weewxd[107494]:   File "/usr/share/weewx/weewx/engine.py", line 157, in loadServices
Dec 05 08:16:59 stormpi weewxd[107494]:     self.loadServices(config_dict)
Dec 05 08:16:59 stormpi weewxd[107494]:   File "/usr/share/weewx/weewx/engine.py", line 89, in __init__
Dec 05 08:16:59 stormpi weewxd[107494]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 05 08:16:59 stormpi weewxd[107494]:     engine = weewx.engine.StdEngine(config_dict)
Dec 05 08:16:59 stormpi weewxd[107494]:   File "/usr/share/weewx/weewxd.py", line 121, in main
Dec 05 08:16:59 stormpi weewxd[107494]:     main()
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****  Exiting.
Dec 05 08:16:59 stormpi weewxd[107494]:   File "/usr/share/weewx/weewxd.py", line 226, in <module>
Dec 05 08:16:59 stormpi weewxd[107494]: Traceback (most recent call last):
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****  AttributeError: module 'weewx.restx' has no attribute 'StdCustomAPI'
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****      klass = getattr(module, klass_name)
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****    File "/usr/share/weewx/weeutil/weeutil.py", line 1405, in get_object
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****      obj = weeutil.weeutil.get_object(svc)(self, config_dict)
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 157, in loadServices
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****      self.loadServices(config_dict)
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 89, in __init__
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****      engine = weewx.engine.StdEngine(config_dict)
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****    File "/usr/share/weewx/weewxd.py", line 121, in main
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****  Traceback (most recent call last):
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__:     ****  module 'weewx.restx' has no attribute 'StdCustomAPI'
Dec 05 08:16:59 stormpi weewxd[107494]: CRITICAL __main__: Caught unrecoverable exception:
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.restx: Shut down StationRegistry thread.
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.restx: Shut down PWSWeather thread.
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.restx: Shut down AWEKAS thread.
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: Daily summary version is 4.0
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: Daily summary version is 4.0
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.restx.StdCustomAPI
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.restx.StdAWEKAS
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.restx: AWEKAS: Data will be uploaded for user basicjim
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: **** Trying 'weewx.schemas.wview_extended.schema'
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: **** Reason: No module named 'schemas'
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: Could not load schema 'schemas.wview_extended.schema'
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.restx.StdAWEKAS
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.restx.StdWOW
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.restx: WOW: Posting not enabled.
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.restx.StdWOW
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.restx.StdCWOP
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.restx: CWOP: Posting not enabled.
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.restx.StdCWOP
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.restx.StdPWSweather
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.restx: PWSWeather: Data for station KANSASOH will be posted
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: **** Trying 'weewx.schemas.wview_extended.schema'
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: **** Reason: No module named 'schemas'
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: Could not load schema 'schemas.wview_extended.schema'
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.restx.StdPWSweather
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.restx.StdWunderground
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.restx: Wunderground: Posting not enabled.
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.restx.StdWunderground
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.restx.StdStationRegistry
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.restx: StationRegistry: Station will be registered.
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.restx.StdStationRegistry
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service user.forecast.XTideForecast
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: XTide: forecast will not be run
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: XTide: location (location) has not been specified
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: XTide: forecast version 3.5
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service user.forecast.XTideForecast
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service user.forecast.DSForecast
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: DS: forecast will not be run
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: DS: API key (api_key) is not specified
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: DS: forecast version 3.5
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service user.forecast.DSForecast
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service user.forecast.WWOForecast
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: WWO: forecast will not be run
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: WWO: API key (api_key) is not specified
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: WWO: forecast version 3.5
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service user.forecast.WWOForecast
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service user.forecast.AerisForecast
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: Aeris: interval=10800 max_age=604800 client_id=XXXXXXXXXXXXXXXXX7JKG client_secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvcuT location=41.24,-83.278
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG user.forecast: MainThread: Aeris: last forecast issued 2025-12-02 17:29:16 EST (1764714556), requested 2025-12-02 17:29:16 EST (1764714556)
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: Aeris: forecast version 3.5
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service user.forecast.AerisForecast
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service user.forecast.UKMOForecast
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: UKMO: forecast will not be run
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: UKMO: location is not specified
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: UKMO: API key (api_key) is not specified
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: UKMO: forecast version 3.5
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service user.forecast.UKMOForecast
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service user.forecast.OWMForecast
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: OWM: forecast will not be run
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: OWM: API key (api_key) is not specified
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: OWM: forecast version 3.5
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service user.forecast.OWMForecast
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service user.forecast.WUForecast
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: WU: forecast will not be run
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: WU: API key (api_key) is not specified
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: WU: forecast version 3.5
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service user.forecast.WUForecast
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service user.forecast.NWSForecast
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: NWS: forecast will not be run
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: NWS: forecast office ID (foid) is not specified
Dec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: NWS: location ID (lid) is not specified
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: NWS: forecast version 3.5
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service user.forecast.NWSForecast
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service user.forecast.ZambrettiForecast
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: Zambretti: interval=600 max_age=604800 winddir_period=1800 pressure_period=10800 hemisphere=NORTH lower_pressure=950.0 upper_pressure=1050.0
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG user.forecast: MainThread: Zambretti: last forecast issued 2025-12-02 18:30:00 EST (1764718200), requested 2025-12-02 18:30:00 EST (1764718200)
Dec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: Zambretti: forecast version 3.5
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service user.forecast.ZambrettiForecast
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.engine.StdArchive
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.engine: Using archive interval of 60 seconds (specified in weewx configuration)
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.engine: Record generation will be attempted in 'hardware'
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.engine: Archive will use data binding wx_binding
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.engine.StdArchive
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdDelta
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.wxxtypes.StdDelta
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdRainRater
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.wxxtypes.StdRainRater
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdPressureCooker
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.wxxtypes.StdPressureCooker
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdWXXTypes
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.wxxtypes.StdWXXTypes
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.wxservices.StdWXCalculate
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: Daily summary version is 4.0
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: **** Trying 'weewx.schemas.wview_extended.schema'
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: **** Reason: No module named 'schemas'
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.manager: Could not load schema 'schemas.wview_extended.schema'
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.engine.StdQC
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.engine: StdConvert target unit is 0x1
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.engine.StdConvert
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: packet obs_st: ('time_epoch', 'wind_lull', 'wind_avg', 'wind_gust', 'wind_direction', 'wind_sample_interval', 'station_pressure', 'air_temperature', 'relative_humidit>
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: packet obs_st: ('time_epoch', 'wind_lull', 'wind_avg', 'wind_gust', 'wind_direction', 'wind_sample_interval', 'station_pressure', 'air_temperature', 'relative_humidit>
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: packet evt_strike: ('time_epoch', 'distance', 'energy')
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: packet evt_precip: time_epoch
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: packet rapid_wind: ('time_epoch', 'wind_speed', 'wind_direction')
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: packet obs_sky: ('time_epoch', 'illuminance', 'uv', 'rain_accumulated', 'wind_lull', 'wind_avg', 'wind_gust', 'wind_direction', 'battery', 'report_interval', 'solar_r>
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: packet obs_air: ('time_epoch', 'station_pressure', 'air_temperature', 'relative_humidity', 'lightning_strike_count', 'lightning_strike_avg_distance', 'battery', 'repo>
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: *** Sensor names per packet type
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: sensor map is {'outTemp': 'air_temperature.ST-00152751.obs_st', 'outHumidity': 'relative_humidity.ST-00152751.obs_st', 'pressure': 'station_pressure.ST-00152751.obs_s>
Dec 05 08:16:59 stormpi weewxd.py[107494]: weatherflowudp: MainThread: driver version is 1.10
Dec 05 08:16:59 stormpi weewxd[107494]: INFO weewx.engine: Loading station type WeatherFlowUDP (user.weatherflowudp)
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG __main__: Initializing engine
Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG __main__: loop_on_init: False
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Groups:       weewx
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Group:        weewx
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: User:         weewx
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Debug:        1
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: User module:  /etc/weewx/bin/user
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Config file:  /etc/weewx/weewx.conf
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: WEEWX_ROOT:   /etc/weewx
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Entry path:   /usr/share/weewx/weewxd.py
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Locale:       'en_GB.UTF-8'
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Platform:     Linux-6.6.31+rpt-rpi-2712-aarch64-with-glibc2.36
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Located at:   /usr/bin/python3
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Using Python: 3.11.2 (main, Apr 28 2025, 14:11:48) [GCC 12.2.0]
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Command line: /usr/share/weewx/weewxd.py /etc/weewx/weewx.conf
Dec 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Initializing weewxd version 5.2.0
Dec 05 08:16:59 stormpi sudo[107490]: pam_unix(sudo:session): session closed for user root
Dec 05 08:16:59 stormpi systemd[1]: Started weewx.service - WeeWX.
Dec 05 08:16:59 stormpi sudo[107490]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
Dec 05 08:16:59 stormpi sudo[107490]:   brasic : TTY=pts/0 ; PWD=/home/brasic ; USER=root ; COMMAND=/usr/bin/systemctl restart weewx
Dec 05 08:16:53 stormpi sudo[107486]: pam_unix(sudo:session): session closed for user root
Dec 05 08:16:50 stormpi sudo[107486]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
Dec 05 08:16:50 stormpi sudo[107486]:   brasic : TTY=pts/0 ; PWD=/home/brasic ; USER=root ; COMMAND=/usr/bin/nano /etc/weewx/weewx.conf
Dec 05 08:16:45 stormpi sudo[107475]: pam_unix(sudo:session): session closed for user root
Dec 05 08:16:05 stormpi sudo[107475]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
Dec 05 08:16:05 stormpi sudo[107475]:   brasic : TTY=pts/0 ; PWD=/home/brasic ; USER=root ; COMMAND=/usr/bin/nano /etc/weewx/weewx.conf

Any idea what I messed up and what direction to head in to fix it?

Tom Keffer

unread,
Dec 5, 2025, 10:16:56 AM (18 hours ago) Dec 5
to weewx...@googlegroups.com
You are getting an error,

AttributeError: module 'weewx.restx' has no attribute 'StdCustomAPI'

The problem is that you are trying to load a custom service called "weewx.restx.StdCustomAPI". This is conflicting with the module weewx.restx, which is part of the standard distribution.

I don't know where this custom service came from, but it should be named something else.

-tk

--
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 weewx-user+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/weewx-user/cbb84fe2-d8b4-493e-9a0f-372fe00ec644n%40googlegroups.com.

Jim B.

unread,
Dec 5, 2025, 12:35:43 PM (16 hours ago) Dec 5
to weewx-user
The strange thing is I wasn't getting it before I did my password reset.  Everything was working fine.

I am using the Belchertown Skin if that is relevant....

I am kind of stalled as to which direction to proceed.  Should I be troubleshooting permissions?  As I said, I have to sudo to nano /etc/weewx/weewx.conf and that's not normal, right?  Could this be a permission error?

vince

unread,
Dec 5, 2025, 12:56:50 PM (16 hours ago) Dec 5
to weewx-user
A couple things....
  • weewx 5 runs as user 'weewx' and group 'weewx', so if you add yourself to group weewx you can probably do everything (other than starting/stopping weewx itself) without needing sudo.  Check your group membership by running the 'groups' command.  If you are not in group weewx, run "sudo usermod -aG weewx pi" assuming you're running as user 'pi' there.  Log out and back in, and run 'groups' again and you should be in group weewx and able to edit weewx.conf without sudo.
  • if you run "weectl debug --output=somefilename" and post the output we can take a look at your setup.  Be sure to check it to make sure it correctly obfuscates any usernames/passwords in its output.  It's pretty good at it, but not perfect sometimes.

Jim B.

unread,
Dec 5, 2025, 12:59:03 PM (16 hours ago) Dec 5
to weewx-user
Here is the log from the last time that WeeWx loaded properly to first time that it errored out.  It looks like it may have been the bookworm update?
Log_File.txt

Jim B.

unread,
Dec 5, 2025, 1:14:52 PM (15 hours ago) Dec 5
to weewx-user
Nice!  I didn't know it could do that! Thanks for the commands!  Here is the debug output.

Jim

weewx_debug.txt

vince

unread,
Dec 5, 2025, 1:41:28 PM (15 hours ago) Dec 5
to weewx-user
Look at the bottom of weewx.conf for...

restful_services = weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS, weewx.restx.StdCustomAPI

I have no idea where that came from, but my wild guess is the Hfw extension you have installed.  I've never heard of that one before, and I can't even find it anywhere in a google search.  It's certainly not needed for Belchertown if that matters any.

oh - your logs were in reverse order.  Please don't do that.  It's far too painful to even try to read backwards with such an output.

Jim B.

unread,
Dec 5, 2025, 2:31:18 PM (14 hours ago) Dec 5
to weewx-user
Sorry about the reverse order! Like I said, I am new at Linux!

So, strange... I took my old weewx.conf from October (5.1) and renamed it to be the current config and weewx started, but it didn't use the skin.

I edited the current conf removing the weewx.restx.StdCustomAPI as you suggested, Vince, and everything is working as it was before my tragic update!  

Thanks so much for all the help!

Issue resolved. Lesson learned!

Jim



Reply all
Reply to author
Forward
0 new messages