Nice!  I didn't know it could do that! Thanks for the commands!  Here is 
the debug output.

Jim

On Friday, December 5, 2025 at 12:56:50 PM UTC-5 vince wrote:

> 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.
>
>
> On Friday, December 5, 2025 at 9:35:43 AM UTC-8 Jim B. wrote:
>
>> 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?
>>
>> On Friday, December 5, 2025 at 10:16:56 AM UTC-5 Tom Keffer wrote:
>>
>>> 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
>>>
>>> On Fri, Dec 5, 2025 at 7:02 AM Jim B. <[email protected]> wrote:
>>>
>>>> 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 <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: 331msDec 05 
>>>> 07:27:20 stormpi weewxd[106042]: CRITICAL __main__:     ****    File 
>>>> "/usr/share/weewx/weeutil/weeutil.py", line 1405, in get_objectDec 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/FAILUREDec 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 rootDec 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/FAILUREDec 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_objectDec 
>>>> 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 loadServicesDec 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 mainDec 
>>>> 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_objectDec 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 loadServicesDec 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 mainDec 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.0Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.manager: Daily summary version is 4.0Dec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Loading service 
>>>> weewx.restx.StdCustomAPIDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Finished loading service weewx.restx.StdAWEKASDec 05 
>>>> 08:16:59 
>>>> stormpi weewxd[107494]: INFO weewx.restx: AWEKAS: Data will be uploaded 
>>>> for 
>>>> user basicjimDec 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.StdAWEKASDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Finished loading service weewx.restx.StdWOWDec 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.StdWOWDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Finished loading service weewx.restx.StdCWOPDec 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.StdCWOPDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Finished loading service weewx.restx.StdPWSweatherDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: INFO weewx.restx: PWSWeather: Data for 
>>>> station KANSASOH will be postedDec 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.StdPWSweatherDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Finished loading service weewx.restx.StdWundergroundDec 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.StdWundergroundDec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> weewx.restx.StdStationRegistryDec 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.StdStationRegistryDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> DEBUG 
>>>> weewx.engine: Finished loading service user.forecast.XTideForecastDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: XTide: 
>>>> forecast will not be runDec 05 08:16:59 stormpi weewxd[107494]: ERROR 
>>>> user.forecast: MainThread: XTide: location (location) has not been 
>>>> specifiedDec 05 08:16:59 stormpi weewxd[107494]: INFO user.forecast: 
>>>> MainThread: XTide: forecast version 3.5Dec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Loading service 
>>>> user.forecast.XTideForecastDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Finished loading service user.forecast.DSForecastDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: DS: 
>>>> forecast will not be runDec 05 08:16:59 stormpi weewxd[107494]: ERROR 
>>>> user.forecast: MainThread: DS: API key (api_key) is not specifiedDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: DS: 
>>>> forecast version 3.5Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Loading service user.forecast.DSForecastDec 05 08:16:59 
>>>> stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> user.forecast.WWOForecastDec 05 08:16:59 stormpi weewxd[107494]: ERROR 
>>>> user.forecast: MainThread: WWO: forecast will not be runDec 05 08:16:59 
>>>> stormpi weewxd[107494]: ERROR user.forecast: MainThread: WWO: API key 
>>>> (api_key) is not specifiedDec 05 08:16:59 stormpi weewxd[107494]: INFO 
>>>> user.forecast: MainThread: WWO: forecast version 3.5Dec 05 08:16:59 
>>>> stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Loading service 
>>>> user.forecast.WWOForecastDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Finished loading service user.forecast.AerisForecastDec 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.278Dec 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.5Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Loading service user.forecast.AerisForecastDec 05 08:16:59 
>>>> stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> user.forecast.UKMOForecastDec 05 08:16:59 stormpi weewxd[107494]: ERROR 
>>>> user.forecast: MainThread: UKMO: forecast will not be runDec 05 08:16:59 
>>>> stormpi weewxd[107494]: ERROR user.forecast: MainThread: UKMO: location is 
>>>> not specifiedDec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: 
>>>> MainThread: UKMO: API key (api_key) is not specifiedDec 05 08:16:59 
>>>> stormpi 
>>>> weewxd[107494]: INFO user.forecast: MainThread: UKMO: forecast version 
>>>> 3.5Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading 
>>>> service user.forecast.UKMOForecastDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> DEBUG weewx.engine: Finished loading service user.forecast.OWMForecastDec 
>>>> 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: OWM: 
>>>> forecast will not be runDec 05 08:16:59 stormpi weewxd[107494]: ERROR 
>>>> user.forecast: MainThread: OWM: API key (api_key) is not specifiedDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: INFO user.forecast: MainThread: OWM: 
>>>> forecast version 3.5Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Loading service user.forecast.OWMForecastDec 05 08:16:59 
>>>> stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> user.forecast.WUForecastDec 05 08:16:59 stormpi weewxd[107494]: ERROR 
>>>> user.forecast: MainThread: WU: forecast will not be runDec 05 08:16:59 
>>>> stormpi weewxd[107494]: ERROR user.forecast: MainThread: WU: API key 
>>>> (api_key) is not specifiedDec 05 08:16:59 stormpi weewxd[107494]: INFO 
>>>> user.forecast: MainThread: WU: forecast version 3.5Dec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Loading service 
>>>> user.forecast.WUForecastDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Finished loading service user.forecast.NWSForecastDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: MainThread: NWS: 
>>>> forecast will not be runDec 05 08:16:59 stormpi weewxd[107494]: ERROR 
>>>> user.forecast: MainThread: NWS: forecast office ID (foid) is not 
>>>> specifiedDec 05 08:16:59 stormpi weewxd[107494]: ERROR user.forecast: 
>>>> MainThread: NWS: location ID (lid) is not specifiedDec 05 08:16:59 stormpi 
>>>> weewxd[107494]: INFO user.forecast: MainThread: NWS: forecast version 
>>>> 3.5Dec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading 
>>>> service user.forecast.NWSForecastDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> DEBUG weewx.engine: Finished loading service 
>>>> user.forecast.ZambrettiForecastDec 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.0Dec 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.5Dec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Loading service 
>>>> user.forecast.ZambrettiForecastDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> DEBUG weewx.engine: Finished loading service weewx.engine.StdArchiveDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Use LOOP data in 
>>>> hi/low calculations: 1Dec 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_bindingDec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: 
>>>> Loading service weewx.engine.StdArchiveDec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> weewx.wxxtypes.StdDeltaDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Loading service weewx.wxxtypes.StdDeltaDec 05 08:16:59 
>>>> stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> weewx.wxxtypes.StdRainRaterDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Loading service weewx.wxxtypes.StdRainRaterDec 05 08:16:59 
>>>> stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> weewx.wxxtypes.StdPressureCookerDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> DEBUG weewx.engine: Loading service weewx.wxxtypes.StdPressureCookerDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading 
>>>> service weewx.wxxtypes.StdWXXTypesDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> DEBUG weewx.engine: Loading service weewx.wxxtypes.StdWXXTypesDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading 
>>>> service weewx.wxservices.StdWXCalculateDec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.manager: Daily summary version is 4.0Dec 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_bindingDec 05 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: 
>>>> Loading service weewx.wxservices.StdWXCalculateDec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> weewx.engine.StdQCDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Loading service weewx.engine.StdQCDec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> weewx.engine.StdCalibrateDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Loading service weewx.engine.StdCalibrateDec 05 08:16:59 
>>>> stormpi weewxd[107494]: DEBUG weewx.engine: Finished loading service 
>>>> weewx.engine.StdConvertDec 05 08:16:59 stormpi weewxd[107494]: INFO 
>>>> weewx.engine: StdConvert target unit is 0x1Dec 05 08:16:59 stormpi 
>>>> weewxd[107494]: DEBUG weewx.engine: Loading service 
>>>> weewx.engine.StdConvertDec 05 08:16:59 stormpi weewxd[107494]: DEBUG 
>>>> weewx.engine: Finished loading service weewx.engine.StdTimeSynchDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: DEBUG weewx.engine: Loading service 
>>>> weewx.engine.StdTimeSynchDec 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.StdTimeSynchDec 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_epochDec 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 typeDec 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.10Dec 
>>>> 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 engineDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> DEBUG __main__: loop_on_init: FalseDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> INFO __main__: Groups:       weewxDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> INFO __main__: Group:        weewxDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> INFO __main__: User:         weewxDec 05 08:16:59 stormpi weewxd[107494]: 
>>>> INFO __main__: Debug:        1Dec 05 08:16:59 stormpi weewxd[107494]: INFO 
>>>> __main__: User module:  /etc/weewx/bin/userDec 05 08:16:59 stormpi 
>>>> weewxd[107494]: INFO __main__: Config file:  /etc/weewx/weewx.confDec 05 
>>>> 08:16:59 stormpi weewxd[107494]: INFO __main__: WEEWX_ROOT:   
>>>> /etc/weewxDec 
>>>> 05 08:16:59 stormpi weewxd[107494]: INFO __main__: Entry path:   
>>>> /usr/share/weewx/weewxd.pyDec 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.36Dec 05 08:16:59 stormpi 
>>>> weewxd[107494]: INFO __main__: Located at:   /usr/bin/python3Dec 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.confDec 05 08:16:59 stormpi weewxd[107494]: INFO 
>>>> __main__: 
>>>> Initializing weewxd version 5.2.0Dec 05 08:16:59 stormpi sudo[107490]: 
>>>> pam_unix(sudo:session): session closed for user rootDec 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 weewxDec 
>>>> 05 08:16:53 stormpi sudo[107486]: pam_unix(sudo:session): session closed 
>>>> for user rootDec 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.confDec 05 08:16:45 stormpi 
>>>> sudo[107475]: pam_unix(sudo:session): session closed for user rootDec 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?
>>>>
>>>> -- 
>>>> 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/cbb84fe2-d8b4-493e-9a0f-372fe00ec644n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/weewx-user/cbb84fe2-d8b4-493e-9a0f-372fe00ec644n%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 visit 
https://groups.google.com/d/msgid/weewx-user/faca9677-23a6-4ae6-9f94-188e01430695n%40googlegroups.com.
System info
  Platform:       Linux-6.12.47+rpt-rpi-2712-aarch64-with-glibc2.36
  Python Version: 3.11.2

Load Information
   1 minute load average:  0.07    
   5 minute load average:  0.19    
  15 minute load average:  0.09    

General Weewx info
  Weewx version 5.2.0 detected.

Currently installed extensions
Extension Name    Version   Description
Belchertown       1.3.1     A clean modern skin with real time streaming 
updates and interactive charts. Modeled after BelchertownWeather.com
Hfw               0.3.2     WeeWX support for plotting observational data using 
Highcharts.
forecast          3.5       Generate and display weather and tide forecasts.
wcloud            0.12      Upload weather data to WeatherCloud.
weatherflowudp    1.10.2    Capture data from WeatherFlow Bridge via UDP 
broadcast packets

Archive info
  Database name:        weewx.sdb
  Table name:           archive
  Version               4.0
  Unit system:          1 (US)
  First good timestamp: 1970-01-20 18:21:00 EST (1725660)
  Last good timestamp:  2025-12-02 18:39:00 EST (1764718740)
  Number of records:    704516
  weewx (weewx.conf) is set to use an archive interval of 60 seconds.
  The station hardware was not interrogated to determine the archive interval.

Supported SQL keys
  dateTime                  usUnits                   interval                 
  altimeter                 appTemp                   appTemp1                 
  barometer                 batteryStatus1            batteryStatus2           
  batteryStatus3            batteryStatus4            batteryStatus5           
  batteryStatus6            batteryStatus7            batteryStatus8           
  cloudbase                 co                        co2                      
  consBatteryVoltage        dewpoint                  dewpoint1                
  ET                        extraHumid1               extraHumid2              
  extraHumid3               extraHumid4               extraHumid5              
  extraHumid6               extraHumid7               extraHumid8              
  extraTemp1                extraTemp2                extraTemp3               
  extraTemp4                extraTemp5                extraTemp6               
  extraTemp7                extraTemp8                forecast                 
  hail                      hailBatteryStatus         hailRate                 
  heatindex                 heatindex1                heatingTemp              
  heatingVoltage            humidex                   humidex1                 
  inDewpoint                inHumidity                inTemp                   
  inTempBatteryStatus       leafTemp1                 leafTemp2                
  leafWet1                  leafWet2                  lightning_distance       
  lightning_disturber_count lightning_energy          lightning_noise_count    
  lightning_strike_count    luminosity                maxSolarRad              
  nh3                       no2                       noise                    
  o3                        outHumidity               outTemp                  
  outTempBatteryStatus      pb                        pm10_0                   
  pm1_0                     pm2_5                     pressure                 
  radiation                 rain                      rainBatteryStatus        
  rainRate                  referenceVoltage          rxCheckPercent           
  signal1                   signal2                   signal3                  
  signal4                   signal5                   signal6                  
  signal7                   signal8                   snow                     
  snowBatteryStatus         snowDepth                 snowMoisture             
  snowRate                  so2                       soilMoist1               
  soilMoist2                soilMoist3                soilMoist4               
  soilTemp1                 soilTemp2                 soilTemp3                
  soilTemp4                 supplyVoltage             txBatteryStatus          
  UV                        uvBatteryStatus           windBatteryStatus        
  windchill                 windDir                   windGust                 
  windGustDir               windrun                   windSpeed                

Databases configured in weewx.conf:
  archive_sqlite:
     database_name weewx.sdb           
            driver weedb.sqlite        
       SQLITE_ROOT /var/lib/weewx      
  archive_mysql:
     database_name weewx               
            driver weedb.mysql         
              host localhost           
              user weewx               
          password [redacted]               
  forecast_sqlite:
     database_name forecast.sdb        
            driver weedb.sqlite        
       SQLITE_ROOT /var/lib/weewx      

--- Start configuration file /etc/weewx/weewx.conf ---
# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2024 Tom Keffer <[email protected]>
# See the file LICENSE.txt for your rights.

##############################################################################

# This section is for general configuration information.

# Set to 1 for extra debug info, otherwise comment it out or set to zero.
debug = 1

# Whether to log successful operations. May get overridden below.
log_success = True

# Whether to log unsuccessful operations. May get overridden below.
log_failure = True

# This configuration file was created by ...
version = 5.1.0
config_path = /etc/weewx/weewx.conf
WEEWX_ROOT = /etc/weewx

##############################################################################

#   This section is for information about the station.

[Station]
    
    # Description of the station location, such as your town.
    location = "Kansas, OH"
    
    # Latitude in decimal degrees. Negative for southern hemisphere.
    latitude = 41.24
    # Longitude in decimal degrees. Negative for western hemisphere.
    longitude = -83.278
    
    # Altitude of the station, with the unit it is in. This is used only
    # if the hardware cannot supply a value.
    altitude = 727, foot    # Choose 'foot' or 'meter' for unit
    
    # Set to type of station hardware. There must be a corresponding stanza
    # in this file, which includes a value for the 'driver' option.
    station_type = WeatherFlowUDP
    
    # If you have a website, you may specify an URL
    station_url = XXXXXX
    
    # The start of the rain year (1=January; 10=October, etc.). This is
    # downloaded from the station if the hardware supports it.
    rain_year_start = 1
    
    # Start of week (0=Monday, 6=Sunday)
    week_start = 6

##############################################################################
#[WeatherFlowUDP]
# driver = user.weatherflowudp
# log_raw_packets = False
# udp_address = <broadcast>
# udp_address = 0.0.0.0
# udp_address = 255.255.255.255
# udp_port = 50222
# udp_timeout = 90
# share_socket = False

# [[sensor_map]]
# outTemp = air_temperature.AR-00004444.obs_air
# outHumidity = relative_humidity.AR-00004444.obs_air
# pressure =  station_pressure.AR-00004444.obs_air
# lightning_strikes =  lightning_strike_count.AR-00004444.obs_air
# avg_distance =  lightning_strike_avg_distance.AR-00004444.obs_air
# outTempBatteryStatus =  battery.AR-00004444.obs_air
# windSpeed = wind_speed.SK-00001234.rapid_wind
# windDir = wind_direction.SK-00001234.rapid_wind
# lux = illuminance.SK-00001234.obs_sky
# UV = uv.SK-00001234.obs_sky
# rain = rain_accumulated.SK-00001234.obs_sky
# windBatteryStatus = battery.SK-00001234.obs_sky
# radiation = solar_radiation.SK-00001234.obs_sky
# lightningYYY = distance.AR-00004444.evt_strike
# lightningZZZ = energy.AR-00004444.evt_strike

#[Simulator]
# This section is for the weewx weather station simulator.

# The time (in seconds) between LOOP packets.
#loop_interval = 2.5

# The simulator mode can be either 'simulator' or 'generator'.
# Real-time simulator. Sleep between each LOOP packet.
#mode = simulator
# Generator.  Emit LOOP packets as fast as possible (useful for testing).
#mode = generator

# The start time. Format is YYYY-mm-ddTHH:MM. If not specified, the
# default is to use the present time.
#start = 2011-01-01T00:00

# The driver to use.
#driver = weewx.drivers.simulator

##############################################################################

#   This section is for uploading data to Internet sites

[StdRESTful]
    
    # Uncomment and change to override logging for uploading services.
    # log_success = True
    # log_failure = True
    
    [[StationRegistry]]
        # To register this weather station at weewx.com, set this to true, and
        # set option 'station_url', located in the [Station] section above.
        register_this_station = True
    
    [[AWEKAS]]
        # This section is for configuring posts to AWEKAS.
        
        # If you wish to post to AWEKAS, set the option 'enable' to true, then
        # specify a username and password.
        # Use quotes around the password to guard against parsing errors.
        enable = true
        username = XXXXXX
        password = XXXXXX
    
    [[CWOP]]
        # This section is for configuring posts to CWOP.
        
        # If you wish to post to CWOP, set the option 'enable' to true,
        # then specify the station ID (e.g., CW1234).
        enable = false
        station = XXXXXX
        # If this is an APRS (radio amateur) station, specify the
        # passcode (e.g., 12345). Otherwise, ignore.
        passcode = XXXXXX
    
    [[PWSweather]]
        # This section is for configuring posts to PWSweather.com.
        
        # If you wish to post to PWSweather.com, set the option 'enable' to
        # true, then specify a station and password.
        # Use quotes around the password to guard against parsing errors.
        enable = true
        station = XXXXXX
        password = XXXXXX
    
    [[WOW]]
        # This section is for configuring posts to WOW.
        
        # If you wish to post to WOW, set the option 'enable' to true, then
        # specify a station and password.
        # Use quotes around the password to guard against parsing errors.
        enable = false
        station = XXXXXX
        password = XXXXXX
    
    [[Wunderground]]
        # This section is for configuring posts to the Weather Underground.
        
        # If you wish to post to the Weather Underground, set the option
        # 'enable' to true,  then specify a station (e.g., 'KORHOODR3'). Use
        # the station key (find it at
        # https://www.wunderground.com/member/devices) for the password.
        enable = false
        station = XXXXXX
        password = XXXXXX
        
        
        # Set the following to True to have weewx use the WU "Rapidfire"
        # protocol. Not all hardware can support it. See the User's Guide.
        rapidfire = False
    
    [[StdCustomAPI]]
        #Custom for Weatherstage.com lilmontae on reddit
        enable = true
        apiURL = https://weatherstage.com/ingest/basicjim
        station = XXXXXX
        password = XXXXXX
        
        # Set the following to True to have weewx pull the values every one 
second and hit your API with them
        # Not all hardware can support it. See the User's Guide.
        rapidfire = False
    
    [[WeatherCloud]]
        id = XXXXXX
        key = XXXXXX

##############################################################################

#   This section specifies what reports, using which skins, to generate.

[StdReport]
    
    # Where the skins reside, relative to WEEWX_ROOT
    SKIN_ROOT = skins
    
    # Where the generated reports should go, relative to WEEWX_ROOT
    HTML_ROOT = /var/www/html/weewx/
    
    # Uncomment and change to override logging for reports.
    # log_success = True
    # log_failure = True
    
    # The database binding indicates which data should be used in reports.
    data_binding = wx_binding
    
    # Each of the following subsections defines a report that will be run.
    # See the customizing guide to change the units, plot types and line
    # colors, modify the fonts, display additional sensor data, and other
    # customizations. Many of those changes can be made here by overriding
    # parameters, or by modifying templates within the skin itself.
    
    [[SeasonsReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = Seasons
        enable = false
    
    [[SmartphoneReport]]
        # The SmartphoneReport uses the 'Smartphone' skin, and the images and
        # files are placed in a dedicated subdirectory.
        skin = Smartphone
        enable = false
        HTML_ROOT = /var/www/html/weewx/smartphone
    
    [[MobileReport]]
        # The MobileReport uses the 'Mobile' skin, and the images and files
        # are placed in a dedicated subdirectory.
        skin = Mobile
        enable = false
        HTML_ROOT = /var/www/html/weewx/mobile
    
    [[StandardReport]]
        # This is the old "Standard" skin. By default, it is not enabled.
        skin = Standard
        enable = false
    
    
    
    [[Belchertown]]
        skin = Belchertown
        #HTML_ROOT = /var/www/html/weewx/skins/belchertown
        enable = true
        
        
        
        [[[Extras]]]
            
            # For help refer to the docs at 
https://github.com/poblabs/weewx-belchertown
            # and consult skin.conf for the configurable elements and their 
hierarchy
            
            # logo_image = "http://www.kansaswx.com/images/maph.png";
            footer_copyright_text = KansasWX.com
            
            
            #--- General Options ---
            # belchertown_debug = 0
            # belchertown_locale = "auto"
            theme = dark
            theme_toggle_enabled = 1
            logo_image = http://www.kansaswx.com/images/maph.png
            # logo_image_dark = ""
            site_title = Kansas Ohio Weather Central
            #station_observations = 
"barometer","dewpoint","outHumidity","rainWithRainRate","UV","cloudbase"
            beaufort_category = 1
            manifest_name = Kansas Ohio Weather Central
            # manifest_short_name = "MWW"
            # aeris_map = 0
            # radar_html = ''   #  (default seems to center on your lat/lon)
            # radar_html_dark = None
            # radar_zoom = 8
            radar_marker = 1
            almanac_extras = 1
            highcharts_enabled = 1
            # graph_page_show_all_button = 1
            # graph_page_default_graphgroup = "day"
            # highcharts_homepage_graphgroup = "day"
            # highcharts_decimal = "auto"
            # highcharts_thousands = "auto"
            # googleAnalyticsId = ""
            # pi_kiosk_bold = "false"
            # pi_theme = "auto"
            webpage_autorefresh = 300000
            # reload_hook_images = 0
            # reload_images_radar = 300
            # reload_images_hook_asi = -1
            # reload_images_hook_af = -1
            # reload_images_hook_as = -1
            # reload_images_hook_ac = -1
            # show_last_updated_alert = 0
            # last_updated_alert_threshold = 1800
            
            #--- MQTT Websockets (for Real Time Streaming) Options ---
            # mqtt_websockets_enabled = 0
            # mqtt_websockets_host = ""
            # mqtt_websockets_port = 8080
            # mqtt_websockets_ssl       = 0
            # mqtt_websockets_topic = ""
            # disconnect_live_website_visitor = 1800000
            
            #--- Forecast Options ---
            forecast_enabled = 1
            forecast_provider = aeris
            forecast_api_id = [redacted] 
            forecast_api_secret = [redacted] 
            forecast_units = us
            forecast_lang = en
            forecast_stale = 3540
            forecast_aeris_use_metar = 1
            forecast_interval_hours = 24
            forecast_alert_enabled = 1
            forecast_alert_limit = 1
            # forecast_show_daily_forecast_link = 0
            # forecast_daily_forecast_link = ""
            # aqi_enabled = 0
            # aqi_location_enabled = 0
            
            #--- Earthquake Options ---
            # earthquake_enabled = 0
            # earthquake_maxradiuskm = 1000
            # earthquake_stale = 10740
            # earthquake_server = USGS
            # geonet_mmi = 4
            
            #--- Social Options ---
            # facebook_enabled = 0
            # twitter_enabled = 0
            # twitter_hashtags = "weewx #weather"
            # social_share_html = ""
            
            #--- Kiosk Options ---
            # radar_html_kiosk = ""
            # radar_width_kiosk = 490
            # radar_height_kiosk = 362
            # mqtt_websockets_host_kiosk = ""
            # mqtt_websockets_port_kiosk = ""
            # mqtt_websockets_ssl_kiosk = ""
            # forecast_interval_hours_kiosk = 24
            # aqi_enabled_kiosk = 0
            
            #-------------------------------------------------------------
            #---
            #--- python's ConfigObj has a limitation in how it processes
            #--- comments, so we need to define an 'unused' variable below
            #--- to ensure that this whole stanza makes it into weewx.conf
            #--- 
            #--- please ignore the following 'unused' variable
            #---
            #-------------------------------------------------------------
            work_around_ConfigObj_limitations = true
    [[forecast]]
        skin = forecast
        HTML_ROOT = /var/www/html/weewx/forecast
    [[Highcharts]]
        skin = Highcharts
        [[[CheetahGenerator]]]
            [[[[ToDate]]]]
                [[[[[YearJSON]]]]]
                    stale_age = 3600
        [[[Units]]]
            [[[[Groups]]]]
                group_altitude = meter
                group_degree_day = degree_C_day
                group_pressure = hPa
                group_rain = mm
                group_rainrate = mm_per_hour
                group_speed = km_per_hour
                group_speed2 = km_per_hour2
                group_temperature = degree_C
            [[[[StringFormats]]]]
                centibar = %.0f
                cm = %.2f
                cm_per_hour = %.2f
                degree_C = %.1f
                degree_F = %.1f
                degree_compass = %.0f
                foot = %.0f
                hPa = %.1f
                inHg = %.3f
                inch = %.2f
                inch_per_hour = %.2f
                km_per_hour = %.0f
                km_per_hour2 = %.1f
                knot = %.0f
                knot2 = %.1f
                mbar = %.1f
                meter = %.0f
                meter_per_second = %.1f
                meter_per_second2 = %.1f
                mile_per_hour = %.0f
                mile_per_hour2 = %.1f
                mm = %.1f
                mmHg = %.1f
                mm_per_hour = %.1f
                percent = %.0f
                uv_index = %.1f
                volt = %.1f
                watt_per_meter_squared = %.0f
                NONE = N/A
            [[[[Labels]]]]
                centibar = cb
                cm = cm
                cm_per_hour = cm/hr
                degree_C = ° C
                degree_F = ° F
                degree_compass = °
                foot = feet
                hPa = hPa
                inHg = inHg
                inch = in
                inch_per_hour = in/hr
                km_per_hour = km/hr
                km_per_hour2 = km/hr
                knot = knots
                knot2 = knots
                mbar = mbar
                meter = meters
                meter_per_second = m/s
                meter_per_second2 = m/s
                mile_per_hour = mph
                mile_per_hour2 = mph
                mm = mm
                mmHg = mmHg
                mm_per_hour = mm/hr
                percent = %
                uv_index = Index
                volt = V
                watt_per_meter_squared = W/m²
                NONE = ""
        [[[Extras]]]
            [[[[MinRange]]]]
                outTemp = 10, degree_C
                windchill = 10, degree_C
                barometer = 20, hPa
                windSpeed = 10
                rain = 5, mm
                radiation = 500
                UV = 16
            [[[[WindRose]]]]
                title = Wind Rose
                source = windSpeed
                period = 86400, 604800, month, year
                aggregate_type = ""
                aggregate_interval = ""
                petals = 16
                petal_colors = aqua, 0x0099FF, 0x0033FF, 0x009900, 0x00CC00, 
0x33FF33, 0xCCFF00
                speedfactor = 0.0, 0.1, 0.2, 0.3, 0.5, 0.7, 1.0
                show_legend_title = True
                show_band_percent = True
                bullseye_percent = True
                precision = 1
                bullseye_size = 20
                bullseye_color = 0xFFFACD
                calm_limit = 0.5
    
    [[FTP]]
        # FTP'ing the results to a webserver is treated as just another report,
        # albeit one with an unusual report generator!
        skin = Ftp
        
        # If you wish to use FTP, set "enable" to "true", then fill out the
        # next four lines.
        # Use quotes around the password to guard against parsing errors.
        enable = true
        user = XXXXXX
        password = XXXXXX
        server = XXXXXX    # The ftp server name, e.g, www.myserver.org
        path = /public_html/    # The destination directory, e.g., /weather
        
        # Set to True for an FTP over TLS (FTPS) connection. Not all servers
        # support this.
        secure_ftp = False
        
        # To upload files from something other than what HTML_ROOT is set
        # to above, specify a different HTML_ROOT here.
        #HTML_ROOT = /var/www/html/weewx
        
        # Most FTP servers use port 21.
        port = 21
        
        # Set to 1 to use passive mode, zero for active mode
        passive = 1
    
    [[RSYNC]]
        # rsync'ing to a webserver is treated as just another report.
        skin = Rsync
        
        # If you wish to use rsync, you must configure passwordless ssh using
        # public/private key authentication from the user account that weewx
        # runs to the user account on the remote machine where the files
        # will be copied.
        #
        # If you wish to use rsync, set "enable" to "true", then
        # fill out server, user, and path.
        # The server should appear in your .ssh/config file.
        # The user is the username used in the identity file.
        # The path is the destination directory, such as /var/www/html/weather.
        # Be sure that the user has write permissions on the destination!
        enable = false
        server = XXXXXX
        user = XXXXXX
        path = replace_me
        
        # To upload files from something other than what HTML_ROOT is set
        # to above, specify a different HTML_ROOT here.
        #HTML_ROOT = /var/www/html/weewx
        
        # Rsync can be configured to remove files from the remote server if
        # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you
        # make a mistake in the remote path, you could could unintentionally
        # cause unrelated files to be deleted. Set to 1 to enable remote file
        # deletion, zero to allow files to accumulate remotely.
        delete = 0
    
    # Options in the [[Defaults]] section below will apply to all reports.
    # What follows are a few of the more popular options you may want to
    # uncomment, then change.
    [[Defaults]]
        
        # Which language to use for all reports. Not all skins support all
        # languages.  You can override this for individual reports.
        lang = en
        
        # Which unit system to use for all reports. Choices are 'us', 'metric',
        # or 'metricwx'.  You can override this for individual reports.
        unit_system = us
        
        [[[Units]]]
            
            # Option "unit_system" above sets the general unit system, but
            # overriding specific unit groups is possible. These are popular
            # choices. Uncomment and set as appropriate.  The unit is always
            # in the singular, e.g., 'mile_per_hour', NOT 'miles_per_hour'
            [[[[Groups]]]]
                # group_altitude     = meter              # Options are 'foot' 
or 'meter'
                # group_pressure     = mbar               # Options are 'inHg', 
'mmHg', 'mbar', or 'hPa'
                # group_rain         = mm                 # Options are 'inch', 
'cm', or 'mm'
                # group_rainrate     = mm_per_hour        # Options are 
'inch_per_hour', 'cm_per_hour', or 'mm_per_hour'
                # group_temperature  = degree_C           # Options are 
'degree_C', 'degree_F', or 'degree_K'
                # The following line is used to keep the above lines indented
                # properly. It can be ignored.
                unused = unused
            
            # Uncommenting the following section frequently results in more
            # attractive formatting of times and dates, but may not work in
            # your locale.
            [[[[TimeFormats]]]]
                # day        = %H:%M
                # week       = %H:%M on %A
                # month      = %d-%b-%Y %H:%M
                # year       = %d-%b-%Y %H:%M
                # rainyear   = %d-%b-%Y %H:%M
                # current    = %d-%b-%Y %H:%M
                # ephem_day  = %H:%M
                # ephem_year = %d-%b-%Y %H:%M
                # The following line is used to keep the above lines indented
                # properly. It can be ignored.
                unused = unused
        
        [[[Labels]]]
            # Users frequently change the labels for these observation types.
            [[[[Generic]]]]
                # inHumidity     = Inside Humidity
                # inTemp         = Inside Temperature
                # outHumidity    = Outside Humidity
                # outTemp        = Outside Temperature
                # extraTemp1     = Temperature1
                # extraTemp2     = Temperature2
                # extraTemp3     = Temperature3
                # The following line is used to keep the above lines indented
                # properly. It can be ignored.
                unused = unused

##############################################################################

#   This service converts the unit system coming from the hardware to a unit
#   system in the database.

[StdConvert]
    
    # The target_unit affects only the unit system in the database. Once
    # chosen it cannot be changed without converting the entire database.
    # Modification of target_unit after starting weewx will result in
    # corrupt data - the database will contain a mix of US and METRIC data.
    #
    # The value of target_unit does not affect the unit system for
    # reporting - reports can display US, Metric, or any combination of units.
    #
    # In most cases, target_unit should be left as the default: US
    #
    # In particular, those migrating from a standard wview installation
    # should use US since that is what the wview database contains.
    
    # DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING!
    target_unit = US    # Options are 'US', 'METRICWX', or 'METRIC'

##############################################################################

#   This section can adjust data using calibration expressions.

[StdCalibrate]
    
    [[Corrections]]
        # For each type, an arbitrary calibration expression can be given.
        # It should be in the units defined in the StdConvert section.
        # Example:
        foo = foo + 0.2

##############################################################################

#   This section is for quality control checks. If units are not specified,
#   values must be in the units defined in the StdConvert section.

[StdQC]
    
    [[MinMax]]
        barometer = 26, 32.5, inHg
        pressure = 24, 34.5, inHg
        outTemp = -40, 120, degree_F
        inTemp = 10, 120, degree_F
        outHumidity = 0, 100
        inHumidity = 0, 100
        windSpeed = 0, 120, mile_per_hour
        rain = 0, 10, inch

##############################################################################

#   This section controls the origin of derived values.

[StdWXCalculate]
    
    [[Calculations]]
        # How to calculate derived quantities.  Possible values are:
        #  hardware        - use the value provided by hardware
        #  software        - use the value calculated by weewx
        #  prefer_hardware - use value provide by hardware if available,
        #                      otherwise use value calculated by weewx
        
        pressure = prefer_hardware
        altimeter = prefer_hardware
        appTemp = prefer_hardware
        barometer = prefer_hardware
        cloudbase = prefer_hardware
        dewpoint = prefer_hardware
        ET = prefer_hardware
        heatindex = prefer_hardware
        humidex = prefer_hardware
        inDewpoint = prefer_hardware
        maxSolarRad = prefer_hardware
        rainRate = prefer_hardware
        windchill = prefer_hardware
        windrun = prefer_hardware

##############################################################################

#   For hardware that supports it, this section controls how often the
#   onboard clock gets updated.

[StdTimeSynch]
    
    # How often to check the weather station clock for drift (in seconds)
    clock_check = 14400
    
    # How much it can drift before we will correct it (in seconds)
    max_drift = 5

##############################################################################

#   This section is for configuring the archive service.

[StdArchive]
    
    # If the station hardware supports data logging then the archive interval
    # will be downloaded from the station. Otherwise, specify it (in seconds).
    archive_interval = 60
    
    # If possible, new archive records are downloaded from the station
    # hardware. If the hardware does not support this, then new archive
    # records will be generated in software.
    # Set the following to "software" to force software record generation.
    record_generation = hardware
    
    # Whether to include LOOP data in hi/low statistics.
    loop_hilo = True
    
    # Uncomment and change to override logging for archive operations.
    # log_success = True
    # log_failure = True
    
    # The data binding used to save archive records.
    data_binding = wx_binding

##############################################################################

#   This section binds a data store to a database.

[DataBindings]
    
    [[wx_binding]]
        # The database must match one of the sections in [Databases].
        # This is likely to be the only option you would want to change.
        database = archive_sqlite
        # The name of the table within the database.
        table_name = archive
        # The manager handles aggregation of data for historical summaries.
        manager = weewx.manager.DaySummaryManager
        # The schema defines the structure of the database.
        # It is *only* used when the database is created.
        schema = schemas.wview_extended.schema
    [[forecast_binding]]
        manager = weewx.manager.Manager
        schema = user.forecast.schema
        table_name = archive
        database = forecast_sqlite

##############################################################################

#   This section defines various databases.

[Databases]
    
    # A SQLite database is simply a single file.
    [[archive_sqlite]]
        database_name = weewx.sdb
        database_type = SQLite
    
    # MySQL
    [[archive_mysql]]
        database_name = weewx
        database_type = MySQL
    [[forecast_sqlite]]
        database_name = forecast.sdb
        database_type = SQLite

##############################################################################

#   This section defines defaults for the different types of databases.

[DatabaseTypes]
    
    # Defaults for SQLite databases.
    [[SQLite]]
        driver = weedb.sqlite
        # Directory in which database files are located, relative to WEEWX_ROOT
        SQLITE_ROOT = /var/lib/weewx
    
    # Defaults for MySQL databases.
    [[MySQL]]
        driver = weedb.mysql
        # The host where the database is located.
        host = localhost
        # The user name for logging in to the host.
        user = XXXXXX
        # Use quotes around the password to guard against parsing errors.
        password = XXXXXX

##############################################################################

#   This section configures the internal weewx engine.

[Engine]
    
    # This section specifies which services should be run and in what order.
    [[Services]]
        prep_services = weewx.engine.StdTimeSynch
        data_services = ,
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, 
weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
        xtype_services = weewx.wxxtypes.StdWXXTypes, 
weewx.wxxtypes.StdPressureCooker, weewx.wxxtypes.StdRainRater, 
weewx.wxxtypes.StdDelta
        archive_services = weewx.engine.StdArchive, 
user.forecast.ZambrettiForecast, user.forecast.NWSForecast, 
user.forecast.WUForecast, user.forecast.OWMForecast, 
user.forecast.UKMOForecast, user.forecast.AerisForecast, 
user.forecast.WWOForecast, user.forecast.DSForecast, user.forecast.XTideForecast
        restful_services = weewx.restx.StdStationRegistry, 
weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, 
weewx.restx.StdWOW, weewx.restx.StdAWEKAS, weewx.restx.StdCustomAPI
        report_services = weewx.engine.StdPrint, weewx.engine.StdReport
[WeatherFlowUDP]
    
    driver = user.weatherflowudp
    log_raw_packets = False
    # udp_address = <broadcast>
    # udp_address = 0.0.0.0
    udp_address = 255.255.255.255
    udp_port = 50222
    udp_timeout = 90
    share_socket = False
    
    #
    # IMPORTANT - please edit in 'your' sensor ID below
    #             (the value 'ST-00152751' here is an example only)
    #
    
    [[sensor_map]]
        outTemp = air_temperature.ST-00152751.obs_st
        outHumidity = relative_humidity.ST-00152751.obs_st
        pressure = station_pressure.ST-00152751.obs_st
        lightning_strikes = lightning_strike_count.ST-00152751.obs_st
        avg_distance = lightning_strike_avg_distance.ST-00152751.obs_st
        outTempBatteryStatus = battery.ST-00152751.obs_st
        windSpeed = wind_speed.ST-00152751.rapid_wind
        windDir = wind_direction.ST-00152751.rapid_wind
        luxXXX = illuminance.ST-00152751.obs_st
        UV = uv.ST-00152751.obs_st
        rain = rain_accumulated.ST-00152751.obs_st
        windBatteryStatus = battery.ST-00152751.obs_st
        radiation = solar_radiation.ST-00152751.obs_st
        lightningXXX = distance.ST-00152751.evt_strike
        lightningYYY = energy.ST-00152751.evt_strike
[Forecast]
    data_binding = forecast_binding
    #[[XTide]]
    #location = "INSERT_LOCATION_HERE (e.g., Boston)"
    #[[Zambretti]]
    #hemisphere = NORTH
    #[[NWS]]
    #lid = "INSERT_LOCATION_ID_HERE (e.g., MAZ014)"
    #foid = "INSERT_FORECAST_OFFICE_ID_HERE (e.g., BOX)"
    #[[WU]]
    #api_key = INSERT_WU_API_KEY_HERE
    #[[OWM]]
    #api_key = INSERT_OWM_API_KEY_HERE
    #[[UKMO]]
    #api_key = INSERT_UKMO_API_KEY_HERE
    #location = INSERT_UK_LOCATION_HERE
    [[Aeris]]
        client_id = [redacted] 
        client_secret = [redacted] 

Reply via email to