Hi everyone. I have WeeWX set up on a Raspberry Pi with the GW1000 driver. I'm also using a service I wrote to add a wired rain gauge to the GPIO pins using the gpiozero library.
Here's the service: https://github.com/lordratner/weewx_gpio_raingauge/blob/main/gpio_rain_service.py The setup is on the bitter edge of a wifi network, so the components drop in and out of the connection. When the GW1000 drops out, WeeWX tries three times to query it, then seems to shutdown the loop: ERROR user.gw1000: Unable to obtain live sensor data INFO weewx.engine: Main loop exiting. Shutting engine down. INFO weewx.engine: Shutting down StdReport thread DEBUG weewx.engine: StdReport thread has been terminated INFO user.gw1000: Gw1000Collector thread has been terminated CRITICAL __main__: Caught WeeWxIOError: Failed to obtain response to command 'CMD_GW1000_LIVEDATA' after 3 attempts CRITICAL __main__: **** Waiting 60 seconds then retrying... It then goes through the whole process of launching the engine. When it gets to my service: DEBUG weewx.engine: Loading service user.gpio_rain_service.GpioRainGauge The service throws an error when it tries to reinitialize the GPIO pin. The pin is still set in gpiozero from before the loop exited, and you can't set a pin twice. How can I make my service run the close() process when the main loop is exited? This would free up the pin to be reassigned when the loop restarts. 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/6fbe0d9b-1df1-46df-8862-645dfd0fc04an%40googlegroups.com.
