At the top of weewx.conf add "loop_on_init = True" to have it try basically continually. Until 5.1 comes out you'll need to grab an updated weewxd.py and overwrite your existing 5.x copy of that file so the option works. The latest version is at https://raw.githubusercontent.com/weewx/weewx/master/src/weewxd.py if you want to grab it sooner rather than later.
Worked for me here vs. the ecowitt driver under similar circumstances when I needed to take my network offline for a bit to update firmware on the network gear.... On Saturday, May 18, 2024 at 12:56:58 PM UTC-7 p q wrote: > Here's a dumb suggestion. I'm sure there will be smarter answers. Restart > weewx every day at 2am with a cron job whether it needs it or not. > > On Sat, May 18, 2024 at 12:45 PM Ben W. <proofof...@gmail.com> wrote: > >> Hello! >> >> Every so often, my home network (through eero) will upgrade causing >> devices to go offline/lose connection for a few minutes. >> >> The last two times my eero/network was updated in the early morning, >> WeeWx stopped when the connection was lost (expected). I cannot find how to >> set WeeWx to restart once the network is available again. >> >> The log from the most recent upgrade around 02:41 on the 15th: >> >> >> >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.restx: PWSWeather: >> Published record 2024-05-15 02:40:00 CDT (1715758800) >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.cheetahgenerator: >> Generated 8 files for report SeasonsReport in 0.38 seconds >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.imagegenerator: >> Generated 17 images for report SeasonsReport in 0.21 seconds >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.reportengine: Copied 0 >> files to /var/www/html/weewx >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.cheetahgenerator: >> Generated 6 files for report SmartphoneReport in 0.02 seconds >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.imagegenerator: >> Generated 6 images for report SmartphoneReport in 0.05 seconds >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.reportengine: Copied 0 >> files to /var/www/html/weewx/smartphone >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.cheetahgenerator: >> Generated 1 files for report MobileReport in 0.01 seconds >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.imagegenerator: >> Generated 4 images for report MobileReport in 0.03 seconds >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.reportengine: Copied 0 >> files to /var/www/html/weewx/mobile >> May 15 02:40:24 rpi5 weewxd[101529]: INFO weewx.cheetahgenerator: >> Generated 13 files for report StandardReport in 0.22 seconds >> May 15 02:40:25 rpi5 weewxd[101529]: INFO weewx.imagegenerator: >> Generated 12 images for report StandardReport in 0.11 seconds >> May 15 02:40:25 rpi5 weewxd[101529]: INFO weewx.reportengine: Copied 0 >> files to /var/www/html/weewx >> May 15 02:40:25 rpi5 weewxd[101529]: INFO weewx.cheetahgenerator: >> Generated 12 files for report Belchertown in 0.38 seconds >> May 15 02:40:25 rpi5 weewxd[101529]: INFO weewx.reportengine: Copied 3 >> files to /var/www/html/weewx/belchertown >> May 15 02:41:06 rpi5 weewxd[101529]: ERROR user.gw1000: Failed to obtain >> response to command 'CMD_GW1000_LIVEDATA' after 3 attempts >> May 15 02:41:06 rpi5 weewxd[101529]: ERROR user.gw1000: Unable to obtain >> live sensor data >> May 15 02:41:06 rpi5 weewxd[101529]: INFO weewx.engine: Main loop >> exiting. Shutting engine down. >> May 15 02:41:06 rpi5 weewxd[101529]: INFO weewx.engine: Shutting down >> StdReport thread >> May 15 02:41:06 rpi5 weewxd[101529]: ERROR user.gw1000: Failed to obtain >> response to command 'CMD_GW1000_LIVEDATA' after 3 attempts >> May 15 02:41:06 rpi5 weewxd[101529]: ERROR user.gw1000: Unable to obtain >> live sensor data >> May 15 02:41:07 rpi5 weewxd[101529]: INFO user.gw1000: GatewayCollector >> thread has been terminated >> May 15 02:41:17 rpi5 weewxd[101529]: ERROR user.gw1000: Unable to shut >> down GatewayCollector thread >> May 15 02:41:17 rpi5 weewxd[101529]: CRITICAL __main__: Caught >> WeeWxIOError: Failed to obtain response to command 'CMD_GW1000_LIVEDATA' >> after 3 attempts >> May 15 02:41:17 rpi5 weewxd[101529]: CRITICAL __main__: **** >> Waiting 60.0 seconds then retrying... >> May 15 02:41:27 rpi5 weewxd[101529]: ERROR user.gw1000: Failed to obtain >> response to command 'CMD_GW1000_LIVEDATA' after 3 attempts >> May 15 02:41:27 rpi5 weewxd[101529]: ERROR user.gw1000: Unable to obtain >> live sensor data >> May 15 02:42:17 rpi5 weewxd[101529]: INFO __main__: retrying... >> May 15 02:42:17 rpi5 weewxd[101529]: INFO weewx.engine: Loading station >> type GW1000 (user.gw1000) >> May 15 02:42:17 rpi5 weewxd[101529]: INFO user.gw1000: GatewayDriver: >> version is 0.6.1 >> May 15 02:42:17 rpi5 weewxd[101529]: INFO user.gw1000: device >> address is 192.168.7.206:45000 >> May 15 02:42:17 rpi5 weewxd[101529]: INFO user.gw1000: poll >> interval is 20 seconds >> May 15 02:42:39 rpi5 weewxd[101529]: ERROR user.gw1000: Failed to obtain >> response to command 'CMD_READ_STATION_MAC' after 3 attempts >> May 15 02:42:39 rpi5 weewxd[101529]: ERROR weewx.engine: Import of >> driver failed: Failed to obtain response to command 'CMD_READ_STATION_MAC' >> after 3 attempts (<class 'user.gw1000.GWIOError'>) >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> Traceback (most recent call last): >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> File "/usr/share/weewx/weewx/engine.py", line 115, in setupStation >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> self.console = loader_function(config_dict, self) >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> File "/etc/weewx/bin/user/gw1000.py", line 1907, in loader >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> return GatewayDriver(**config_dict[DRIVER_NAME]) >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> File "/etc/weewx/bin/user/gw1000.py", line 2523, in __init__ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> super(GatewayDriver, self).__init__(**stn_dict) >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> File "/etc/weewx/bin/user/gw1000.py", line 1156, in __init__ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> self.collector = GatewayCollector(ip_address=self.ip_address, >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> File "/etc/weewx/bin/user/gw1000.py", line 2818, in __init__ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> self.device = GatewayDevice(ip_address=ip_address, port=port, >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> File "/etc/weewx/bin/user/gw1000.py", line 6240, in __init__ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> self.api = GatewayApi(ip_address=ip_address, >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> File "/etc/weewx/bin/user/gw1000.py", line 4981, in __init__ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> self.mac = self.get_mac_address() >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> ^^^^^^^^^^^^^^^^^^^^^^ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> File "/etc/weewx/bin/user/gw1000.py", line 5416, in get_mac_address >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> response = self.send_cmd_with_retries('CMD_READ_STATION_MAC') >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> File "/etc/weewx/bin/user/gw1000.py", line 5670, in send_cmd_with_retries >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> raise GWIOError(_msg) >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL weewx.engine: **** >> user.gw1000.GWIOError: Failed to obtain response to command >> 'CMD_READ_STATION_MAC' after 3 attempts >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL __main__: Unable to load >> driver: Failed to obtain response to command 'CMD_READ_STATION_MAC' after 3 >> attempts >> May 15 02:42:39 rpi5 weewxd[101529]: CRITICAL __main__: **** >> Exiting... >> May 15 02:42:40 rpi5 systemd[1]: weewx.service: Main process exited, >> code=exited, status=4/NOPERMISSION >> May 15 02:42:40 rpi5 systemd[1]: weewx.service: Failed with result >> 'exit-code'. >> May 15 02:42:40 rpi5 systemd[1]: weewx.service: Consumed 2h 32min 7.226s >> CPU time. >> >> >> >> >> It took me three days to realize it wasn't running. I'm back online now >> but would like to avoid those gaps going forward. >> >> Thanks! >> >> -- >> 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 on the web visit >> https://groups.google.com/d/msgid/weewx-user/b48ffc02-f9af-4873-bd09-e1971d3ff08an%40googlegroups.com >> >> <https://groups.google.com/d/msgid/weewx-user/b48ffc02-f9af-4873-bd09-e1971d3ff08an%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > > > -- > Peter Quinn > (415)794-2264 <(415)%20794-2264> > -- 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+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/c3253ae5-8981-444b-a304-bcd7633de22cn%40googlegroups.com.