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 <[email protected]> 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 <[email protected]> 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 [email protected].
>>>>> 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 [email protected].
>>>
>> 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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/weewx-user/c7af570c-a746-438e-8464-2190691c7dfan%40googlegroups.com.