Peter Quinn (p q) suggests that maybe the problem with weewx not finding the Acurite station might be permissions.
That's a great suggestion, but I don't think it is permissions.
I have added user weewx to all the groups I'm in: dialout,cdrom,sudo,audio,video,plugdev,games,users,input,render,netdev,spi,i2c,gpio and weewx (just to be sure).
I also tried running weewx from the command line as root with the same result of not finding the device.
I'm starting to think it's a problem of USB device numbering w.r.t. whatever strategy weewx is using vs. the Raspberry Pi 5.
It makes me ask the question: Is anyone out there using an Acurite station with weewx on a Raspberry Pi 5 successfully? (I would expect the answer is yes, but I want to be sure.)
More details follow:
To try to understand this, I ran weewx under strace.
Currently, lsusb shows: (I've been trying different ports)
Bus 003 Device 003: ID 045e:001e Microsoft Corp. IntelliMouse Explorer
Bus 003 Device 002: ID 24c0:0003 Chaney Instrument Model 01036 weather
center
Here is some strace output.
openat(AT_FDCWD, "/sys/bus/usb/devices/usb4/descriptors", O_RDONLY|O_CLOEXEC) = 9
read(9, "\22\1\0\3\t\0\3\tk\35\3\0\22\6\3\2\1\1\t\2\37\0\1\1\0\340\0\t\4\0\0\1"..., 256) = 49
close(9) = 0
recvfrom(7, NULL, 0, MSG_PEEK|MSG_TRUNC, NULL, NULL) = -1 EAGAIN (Resource temporarily unavailable)
mmap(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffece280000
getpid() = 2492
This next line is where it puts this in the log:
Jul 15 20:01:12 capecod weewxd[2969]: DEBUG weewx.drivers.acurite: Found station at bus= device=
(where bus= and device= indicate it hasn't found the port of the acurite properly)
sendto(3, "<15>weewxd[2492]: DEBUG weewx.dr"..., 77, 0, NULL, 0) = 77
Then it tries to open /dev/bus/usb/003/002 which seems like it maybe (?) matches the lsusb output above. However, when I cat /sys/bus/usb/devices/3-2/product the result is "Microsoft IntelliMouse® Explorer" which seems wrong. If it's opening the wrong usb device, it's not surprise it isn't working.
openat(AT_FDCWD, "/dev/bus/usb/003/002", O_RDWR|O_CLOEXEC) = 9
Then it tries to do a bunch of ioctls on that device, most of which seem to fail.
ioctl(9, USBDEVFS_GET_CAPABILITIES, 0x1a4cdb84) = 0
ioctl(9, USBDEVFS_GETDRIVER, 0x7fffd72b96b0) = -1 ENODATA (No data available)
ioctl(9, USBDEVFS_IOCTL, 0x7fffd72b96a0) = -1 ENODATA (No data available)
ioctl(9, USBDEVFS_SETCONFIGURATION, 0x7fffd72b960c) = -1 EPROTO (Protocol error)
ioctl(9, USBDEVFS_CLAIMINTERFACE, 0x7fffd72b95d4) = 0
openat(AT_FDCWD, "/sys/bus/usb/devices/3-1/bConfigurationValue", O_RDONLY|O_CLOEXEC) = 10
read(10, "1\n", 19) = 2
close(10) = 0
ioctl(9, USBDEVFS_SETINTERFACE, 0x7fffd72b95b0) = -1 EPROTO (Protocol error)
timerfd_settime(6, TFD_TIMER_ABSTIME, {it_interval={tv_sec=0,
tv_nsec=0}, it_value={tv_sec=200, tv_nsec=288749571}}, NULL) = 0
ioctl(9, USBDEVFS_SUBMITURB, 0x1a49efd0) = 0
read(5, "\1\0\0\0\0\0\0\0", 8) = 8
ppoll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=9, events=POLLOUT}], 3, {tv_sec=60, tv_nsec=0}, NULL, 0) = 1 ([{fd=9, revents=POLLOUT}], left {tv_sec=59, tv_nsec=997897751})
ioctl(9, USBDEVFS_REAPURBNDELAY, 0x7fffd72b95b0) = 0
timerfd_settime(6, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(9, USBDEVFS_REAPURBNDELAY, 0x7fffd72b95b0) = -1 EAGAIN (Resource temporarily unavailable)
ioctl(9, USBDEVFS_RELEASEINTERFACE, 0x7fffd72b9534) = 0
getpid() = 2492
sendto(3, "<11>weewxd[2492]: ERROR weewx.dr"..., 117, 0, NULL, 0) = 117
clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, {tv_sec=229, tv_nsec=291213340},
It feels to me like it's somehow getting confused about the bus/device/port numbers.
Not sure how to proceed. I would have thought that lots of people would have already run weeewx on pi 5, so I would be surprised if this were a software bug.
--Jim--