If the user weewxd is running doesn't have sufficient permissions to access the device, you get this error Message:
ERROR weewx.engine: Import of driver failed: The device has no langid (permission issue, no string descriptors supported or device error) (<class 'ValueError'>)
To fix this, I've added an udev rule.
First, find out vendor and device id:
pi@rpi:~$ lsusb
Bus 002 Device 002: ID 0781:5583 SanDisk Corp. Ultra Fit
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 6666:5555 Prototype product Vendor ID Weather Direct Light Wireless Device
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Vendor Id is 6666, device Id is 5555
Then, create and edit a file with the udev rules:
pi@rpi:~$ sudo nano /etc/udev/rules.d/99-ws28xx.rules
The content of the file:
SUBSYSTEM=="usb", ATTR{idVendor}=="6666", ATTR{idProduct}=="5555", MODE="666"
Restart udev and unplug/replug the device (or restart the machine)
I don't know if there is a better way or if there is any other issue with doing it this way, but this gets things working on Raspberry Pi OS :)