Owserver: USB device path changes at reboot

HAOS running in a VM on proxmox

I have successfully set up owserver, but noticed that after a reboot, the path of the USB device (DS9490R) changes, making owserver inoperable.

Example:
on HAOS, lsusb before reboot
Bus 002 Device 019: ID 04fa:2490 <--- DS9490R -> #19

on HAOS, lsusb after reboot
Bus 002 Device 021: ID 04fa:2490 <--- DS9490R -> #21

I have already created a udev rule on HAOS (imported via USB stick and rebooting HAOS):
etc-udev-rulesd

Rule has been applied on HAOS:

…but still: in homeassistant → owserver → configuration, no /dev/ds9490r is shown.

How can I make the DS9490R accessible for owserver, so that it does not change path after a reboot?

Hi tmo,

Don’t use the short name that is just the port name.
Use the long name with the serial number in it.

There is no such thing as a “by-id” path for the DS9490R.

Hi,
I have a very similar issue. Running on a PI4 though but in my case the DS9490r does not show at all - only as a USB device (DEVNAME: /dev/bus/usb/001/011) but not anywhere else. It used to show up as /dev/ttyACM2 and in the /dev/serial/by-id/ but no longer.
It worked well up until Nov 16 when there was an power cut / reboot. Everything else works and I have verified the DS9490r on another computer.
Many same - maybe not.

Unplug the USB, and few seconds later plug it back in. Then go to your HA system’s console (or possibly ssh) linux shell enter: dmesg. If you know how to use less then enter dmesg | less. Either way, go to the end of the output to see what it says.

Thank you Tommy for replying! Mine sure shows up but still no difference else where (IE /dev/serial etc):

[79937.366282] usb 1-1.4: USB disconnect, device number 5
[79937.366566] usb 1-1.4: Failed to write 1-wire data to epox2: err=-19.
[79958.841079] usb 1-1.3: new full-speed USB device number 7 using xhci_hcd
179958.948058] usb 1-1.3: New USB device found, idVendor=04fa, idProduct=2490, bcdDevice= 0.02
[79958.948093] usb 1-1.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0

I disconnected from port 4 and reconnected a few seconds later to port 3.

If you are sure it use to show up as /dev/ttyACMx then I would also expect to also see a couple of lines that look like the following:

       cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device
       usbcore: registered new interface driver cdc_acm

If you have another linux sysem you can plug the usb device into to see if you get such messages, then it would suggest that your Pi4 is missing the cdc_acm kernel driver.

Sounds resonable. But I have two other USB-devices that pop up as ACMx-devices.
Disconeccting/reconnecting this one (Z-wave USB dongle) gives me this:

[187474.375406] usb 1-1.2: USB disconnect, device number 8
[187474.607328] usb 1-1.2: new full-speed USB device number 9 using xhci_hcd|
[187474.718351] usb 1-1.2: New USB device found, idVendor=0658, idProduct=0200, bcdDevice= 0.00
[187474.718387] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[187474.725813] cdc_acm 1-1.2:1.0: ttyACM1: USB ACM device

And that works just fine. Could there be something blocking the other from “registering”?

Yes indeed I would have expected the cdc_acm driver to be there and it is.

Looking at kernel usb device list, your device is listed (by mfg/vendor id):

04fa  Dallas Semiconductor
	2490  DS1490F 2-in-1 Fob, 1-Wire adapter
	4201  DS4201 Audio DAC

But looking at the source code, the cdc_acm driver does not list this device (by mfg/vendor id), so it must be another driver.

I was able to find an old HA Community Forum posting showing:

LOgs on RPI show:
[ 381.680965] usb 1-1.3: USB disconnect, device number 3
[ 385.759500] usb 1-1.3: new full-speed USB device number 4 using xhci_hcd
[ 385.866521] usb 1-1.3: New USB device found, idVendor=04fa, idProduct=2490, bcdDevice= 0.02
[ 385.866553] usb 1-1.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 385.898083] Driver for 1-wire Dallas network protocol.
[ 385.917059] usbcore: registered new interface driver DS9490R
[ 385.931827] w1_master_driver w1_bus_master1: Attaching one wire slave 81.000000344670 crc 01

So the driver must be a DS9490R. Doing some digging, it appears that the DS9490R is supported by the linux driver/file called the ds2490.c for direct 1wire chips as well as the ds9490r for USB .

Looking at the HAOS general buildroot config, I do see a DS2490 listed meaning the driver should be in HAOS, so I’m not sure why it was not registered in your case.

Do you have a /dev/9490r when the USB is plugged in?
What machine are you using to run your HAOS?

Thank you again for your thourough answers! :slight_smile:

As I wrote higher up - it used to work and I have verified the DS9490r HW on another computer. But since a power cycle of the HA-installation it does no longer.

I am running HA on a standard Raspberry Pi 4 - installed via a HA standard image put on the MicroSD card.

Update: Sorry - No I do not have /dev/9490r when the USB is plugged in.

Yeah I think the driver is missing for some reason on your HA RaspPi. May want to log an issue to HAOS on github to see what they say.

Thank you! Will do so. :+1: