After updating DietPi to version 9.1.1 I am getting GPIOzero BadPinFactory errors again. I tried commenting out the weewx user in the service file as above, but the error remains.
● weewx.service - WeeWX Loaded: loaded (/lib/systemd/system/weewx.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Thu 2024-02-22 21:02:32 AEDT; 12min ago Docs: https://weewx.com/docs Main PID: 23495 (code=exited, status=1/FAILURE) CPU: 1.834s Feb 22 21:02:32 NapsberryPi weewxd[23495]: File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 291, in _default_pin_factory Feb 22 21:02:32 NapsberryPi weewxd[23495]: raise BadPinFactory('Unable to load any default pin factory!') Feb 22 21:02:32 NapsberryPi weewxd[23495]: gpiozero.exc.BadPinFactory: Unable to load any default pin factory! Feb 22 21:02:32 NapsberryPi weewxd[23495]: CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 291, in _default_pin_factory Feb 22 21:02:32 NapsberryPi weewxd[23495]: CRITICAL __main__: **** raise BadPinFactory('Unable to load any default pin factory!') Feb 22 21:02:32 NapsberryPi weewxd[23495]: CRITICAL __main__: **** gpiozero.exc.BadPinFactory: Unable to load any default pin factory! Feb 22 21:02:32 NapsberryPi weewxd[23495]: CRITICAL __main__: **** Exiting. Feb 22 21:02:32 NapsberryPi systemd[1]: weewx.service: Main process exited, code=exited, status=1/FAILURE Feb 22 21:02:32 NapsberryPi systemd[1]: weewx.service: Failed with result 'exit-code'. Feb 22 21:02:32 NapsberryPi systemd[1]: weewx.service: Consumed 1.834s CPU time. On Monday 12 February 2024 at 1:01:24 pm UTC+11 Glen N wrote: > I was having a no start problem after upgrading RPi3B running DietPi. I > tried Tom's suggestion and it fixed the problem. > > Prior to the "fix" my log file showed: > -- Journal begins at Mon 2024-02-12 11:47:21 AEDT, ends at Mon 2024-02-12 > 12:40:34 AEDT. -- > Feb 12 11:47:23 SystemName systemd[1]: Started WeeWX. > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Initializing weewxd > version 5.0.1 > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Command line: > /usr/share/weewx/weewxd.py /etc/weewx/weewx.conf > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Using Python 3.9.2 > (default, Feb 28 2021, 17:03:44) > [GCC 10.2.1 20210110] > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Located at > /usr/bin/python3 > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Platform > Linux-6.1.21-v8+-aarch64-with-glibc2.31 > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Locale: > 'en_AU.UTF-8' > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Entry path: > /usr/share/weewx/weewxd.py > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: WEEWX_ROOT: > /etc/weewx > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Configuration file: > /etc/weewx/weewx.conf > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: User module: > /etc/weewx/bin/user > Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Debug: 0 > Feb 12 11:47:24 SystemName weewxd[309]: INFO weewx.engine: Loading station > type FineOffsetUSB (weewx.drivers.fousb) > Feb 12 11:47:24 SystemName weewxd[309]: INFO weewx.drivers.fousb: driver > version is 1.3 > Feb 12 11:47:24 SystemName weewxd[309]: INFO weewx.drivers.fousb: polling > mode is PERIODIC > Feb 12 11:47:24 SystemName weewxd[309]: INFO weewx.drivers.fousb: polling > interval is 60 > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.drivers.fousb: found > station on USB bus= device= > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: StdConvert > target unit is 0x11 > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.wxservices: > StdWXCalculate will use data binding wx_binding > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: Archive will > use data binding wx_binding > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: Record > generation will be attempted in 'software' > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: Using archive > interval of 300 seconds (software record generation) > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: StationRegistry: > Station will not be registered: no station_url specified. > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: > Wunderground-PWS: Data for station ITEATR7 will be posted > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: PWSWeather: Data > for station THISTLEWIND will be posted > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: CWOP: Posting > not enabled. > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: WOW: Posting not > enabled. > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: AWEKAS: Posting > not enabled. > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: 'pyephem' > detected, extended almanac data is available > Feb 12 11:47:25 SystemName weewxd[309]: INFO __main__: Starting up weewx > version 5.0.1 > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: Using binding > 'wx_binding' to database 'weewx.sdb' > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.manager: Starting > backfill of daily summaries > Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.manager: Daily > summaries up to date > Feb 12 11:47:26 SystemName weewxd[309]: INFO weewx.drivers.fousb: > synchronising to the weather station (quality=0) > Feb 12 11:47:57 SystemName weewxd[309]: INFO weewx.drivers.fousb: unstable > read: blocks differ for ptr 0x001380 > Feb 12 11:49:44 SystemName weewxd[309]: ERROR weewx.drivers.fousb: invalid > data in get_records at 0x09b0, 2024-02-08T18:19:29 > Feb 12 11:49:47 SystemName weewxd[309]: > /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: > Falling back from rpigpio: No module named 'RPi' > Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn( > Feb 12 11:49:47 SystemName weewxd[309]: > /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: > Falling back from lgpio: No module named 'lgpio' > Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn( > Feb 12 11:49:47 SystemName weewxd[309]: > /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: > Falling back from rpio: No module named 'RPIO' > Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn( > Feb 12 11:49:47 SystemName weewxd[309]: > /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: > Falling back from pigpio: No module named 'pigpio' > Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn( > Feb 12 11:49:47 SystemName weewxd[309]: > /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: > Falling back from native: unable to open /dev/gpiomem or /dev/mem; upgrade > your kernel or run as root > Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn( > Feb 12 11:49:47 SystemName weewxd[309]: INFO weewx.engine: Main loop > exiting. Shutting engine down. > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: Caught > unrecoverable exception: > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > Unable to load any default pin factory! > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > Traceback (most recent call last): > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/share/weewx/weewxd.py", line 166, in main > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > engine.run() > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/share/weewx/weewx/engine.py", line 174, in run > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > self.dispatchEvent(weewx.Event(weewx.STARTUP)) > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > callback(event) > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/share/weewx/weewx/engine.py", line 610, in startup > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > self._catchup(self.engine.console.genStartupRecords) > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/share/weewx/weewx/engine.py", line 726, in _catchup > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD, > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > callback(event) > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/etc/weewx/bin/user/cputemp.py", line 17, in new_archive_record > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > cpu = CPUTemperature() > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 108, in > __call__ > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > self = super(GPIOMeta, cls).__call__(*args, **kwargs) > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line > 277, in __init__ > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > super(CPUTemperature, self).__init__( > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line > 69, in __init__ > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > super(PolledInternalDevice, self).__init__(pin_factory=pin_factory) > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line > 42, in __init__ > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > super(InternalDevice, self).__init__(pin_factory=pin_factory) > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/lib/python3/dist-packages/gpiozero/mixins.py", line 218, in > __init__ > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > super(EventsMixin, self).__init__(*args, **kwargs) > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 250, in > __init__ > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > Device.pin_factory = Device._default_pin_factory() > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 291, in > _default_pin_factory > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > raise BadPinFactory('Unable to load any default pin factory!') > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > gpiozero.exc.BadPinFactory: Unable to load any default pin factory! > Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** > Exiting. > Feb 12 11:49:47 SystemName weewxd[309]: Traceback (most recent call last): > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/share/weewx/weewxd.py", line 265, in <module> > Feb 12 11:49:47 SystemName weewxd[309]: main() > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/share/weewx/weewxd.py", line 166, in main > Feb 12 11:49:47 SystemName weewxd[309]: engine.run() > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/share/weewx/weewx/engine.py", line 174, in run > Feb 12 11:49:47 SystemName weewxd[309]: > self.dispatchEvent(weewx.Event(weewx.STARTUP)) > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent > Feb 12 11:49:47 SystemName weewxd[309]: callback(event) > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/share/weewx/weewx/engine.py", line 610, in startup > Feb 12 11:49:47 SystemName weewxd[309]: > self._catchup(self.engine.console.genStartupRecords) > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/share/weewx/weewx/engine.py", line 726, in _catchup > Feb 12 11:49:47 SystemName weewxd[309]: > self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD, > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent > Feb 12 11:49:47 SystemName weewxd[309]: callback(event) > Feb 12 11:49:47 SystemName weewxd[309]: File > "/etc/weewx/bin/user/cputemp.py", line 17, in new_archive_record > Feb 12 11:49:47 SystemName weewxd[309]: cpu = CPUTemperature() > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 108, in __call__ > Feb 12 11:49:47 SystemName weewxd[309]: self = super(GPIOMeta, > cls).__call__(*args, **kwargs) > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line 277, in > __init__ > Feb 12 11:49:47 SystemName weewxd[309]: super(CPUTemperature, > self).__init__( > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line 69, in > __init__ > Feb 12 11:49:47 SystemName weewxd[309]: super(PolledInternalDevice, > self).__init__(pin_factory=pin_factory) > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line 42, in > __init__ > Feb 12 11:49:47 SystemName weewxd[309]: super(InternalDevice, > self).__init__(pin_factory=pin_factory) > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/lib/python3/dist-packages/gpiozero/mixins.py", line 218, in __init__ > Feb 12 11:49:47 SystemName weewxd[309]: super(EventsMixin, > self).__init__(*args, **kwargs) > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 250, in __init__ > Feb 12 11:49:47 SystemName weewxd[309]: Device.pin_factory = > Device._default_pin_factory() > Feb 12 11:49:47 SystemName weewxd[309]: File > "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 291, in > _default_pin_factory > Feb 12 11:49:47 SystemName weewxd[309]: raise BadPinFactory('Unable to > load any default pin factory!') > Feb 12 11:49:47 SystemName weewxd[309]: gpiozero.exc.BadPinFactory: Unable > to load any default pin factory! > Feb 12 11:49:47 SystemName systemd[1]: weewx.service: Main process exited, > code=exited, status=1/FAILURE > Feb 12 11:49:47 SystemName systemd[1]: weewx.service: Failed with result > 'exit-code'. > Feb 12 11:49:47 SystemName systemd[1]: weewx.service: Consumed 2.701s CPU > time. > > On Thursday 8 February 2024 at 2:12:44 am UTC+11 Tom Keffer wrote: > >> Something to try: edit the weewx service file and change permissions back >> to root. The service file should be located at >> /lib/systemd/system/weewx.service. Comment out the User and Group lines. >> When you're done, it will look something like this: >> >> [Service] >> >> ExecStart=weewxd /etc/weewx/weewx.conf >> >> StandardOutput=null >> >> StandardError=journal+console >> >> RuntimeDirectory=weewx >> >> RuntimeDirectoryMode=775 >> >> # User=weewx >> >> # Group=weewx >> >> Then restart weewxd. >> >> Let us know if that makes a difference. >> >> -tk >> >> On Wed, Feb 7, 2024 at 6:14 AM Rich Strle <ri...@strle.com> wrote: >> >>> Hi Tom, it happens every time. Attached is a log of what happened when I >>> turned off the Pi, restarted the Pi, shut down weewx, and restarted weewx. >>> >>> I running a fresh RasberryPi Debian install. Vantage Pro2 with a >>> WeatherLinkIP attached to a VantagePro2 console. >>> >>> Attached is what happened with my most recent boot and the log file. >>> >>> >>> >>> On Wednesday, February 7, 2024 at 7:54:14 AM UTC-6 Tom Keffer wrote: >>> >>>> Rich, >>>> >>>> One other question: does this happen after a reboot? Or, every time? >>>> >>>> If it's only after a reboot, the problem could be that the network >>>> isn't ready by the time the VP2 needs it. >>>> >>>> >>>> On Tue, Feb 6, 2024 at 7:51 PM Rich Strle <ri...@strle.com> wrote: >>>> >>>>> I've been following the 5.0 issues. I have updated to 5.0.1 and done >>>>> the usermod but I'm still having issues. RaspberryPi 3 B+ My Vantage Pro >>>>> is >>>>> connected via ethernet using the IP adaptor. I appreciate all the work >>>>> that's gone into this free product. >>>>> >>>>> vp2pi@rpivp2:~ $ sudo apt update >>>>> vp2pi@rpivp2:~ $ sudo apt install weewx >>>>> >>>>> vp2pi@rpivp2:~ $ sudo usermod -aG dialout weewx >>>>> >>>>> vp2pi@rpivp2:~ $ sudo systemctl status weewx >>>>> * weewx.service - WeeWX >>>>> Loaded: loaded (/lib/systemd/system/weewx.service; enabled; >>>>> vendor preset: enabled) >>>>> Active: failed (Result: exit-code) since Tue 2024-02-06 21:19:31 >>>>> CST; 3min 18s ago >>>>> Docs: https://weewx.com/docs >>>>> Process: 460 ExecStart=weewxd /etc/weewx/weewx.conf (code=exited, >>>>> status=4) >>>>> Main PID: 460 (code=exited, status=4) >>>>> CPU: 966ms >>>>> >>>>> Feb 06 21:19:31 rpivp2 weewxd[460]: CRITICAL weewx.engine: **** >>>>> Vantage.__init__(self, **config_dict[DRIVER_NAME]) >>>>> Feb 06 21:19:31 rpivp2 weewxd[460]: CRITICAL weewx.engine: **** >>>>> File "/usr/share/weewx/weewx/drivers/vantage.py", line 536, in __init__ >>>>> Feb 06 21:19:31 rpivp2 weewxd[460]: CRITICAL weewx.engine: **** >>>>> self.port.openPort() >>>>> Feb 06 21:19:31 rpivp2 weewxd[460]: CRITICAL weewx.engine: **** >>>>> File "/usr/share/weewx/weewx/drivers/vantage.py", line 359, in openPort >>>>> Feb 06 21:19:31 rpivp2 weewxd[460]: CRITICAL weewx.engine: **** >>>>> raise weewx.WeeWxIOError(ex) >>>>> Feb 06 21:19:31 rpivp2 weewxd[460]: CRITICAL weewx.engine: **** >>>>> weewx.WeeWxIOError: [Errno 101] Network is unreachable >>>>> Feb 06 21:19:31 rpivp2 weewxd[460]: CRITICAL __main__: Unable to load >>>>> driver: [Errno 101] Network is unreachable >>>>> Feb 06 21:19:31 rpivp2 weewxd[460]: CRITICAL __main__: **** >>>>> Exiting... >>>>> Feb 06 21:19:31 rpivp2 systemd[1]: weewx.service: Main process exited, >>>>> code=exited, status=4/NOPERMISSION >>>>> Feb 06 21:19:31 rpivp2 systemd[1]: weewx.service: Failed with result >>>>> 'exit-code'. >>>>> vp2pi@rpivp2:~ $ sudo usermod -aG dialout weewx >>>>> >>>>> -- >>>>> 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/2c3336ab-72b9-49bb-a602-be652a00e531n%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/weewx-user/2c3336ab-72b9-49bb-a602-be652a00e531n%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 weewx-user+...@googlegroups.com. >>> >> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/weewx-user/e62e3dcb-fc4b-4f2a-a986-99783e3c164fn%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/weewx-user/e62e3dcb-fc4b-4f2a-a986-99783e3c164fn%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 weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/c7af570c-a746-438e-8464-2190691c7dfan%40googlegroups.com.