Hi, I have a similar (not yet critical with only one USB attached, it doesn’t change if not touched) problem myself, maybe someone did work it out with hassio (Raspberry PI) ?
Also an out of topic question to @poratnir - how do you communicate with this “USB port RS485 converter” in hassio ? And which one do you have ?
For an RFXTrx433 USB Transceiver, this is how it works:
run this in a terminal: udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)
You need to locate the place where it gives you the correct value for your device, ATTRS{manufacturer} and/or ATTRS{product} and take not of the ATTRS{idVendor}ATTRS{idProduct} and ATTRS{serial}:
edit the following file with your preferred editor: edit the /etc/udev/rules.d/99-usb-serial.rules and add this line: ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A1XETWB5", SYMLINK+="RFXTrx433"
Replace the values in ATTRS{idVendor}ATTRS{idProduct} and ATTRS{serial} with the ones you found in previous step, replace RFXTrx433 with a name that makes sense to you .
now type: ls /dev/serial/by-id/
(You may have to reboot your machine if nothing shows up).
In your config, instead of providing e.g. /dev/ttsUSB0 you can provide this: /dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1XETWB5-if00-port0
(replace usb-RFXCOM_RFXtrx433_A1XETWB5-if00-port0 with the name of the device found in previous step)
Now it does not matter which USB port your device is connected to, it will always be found.
if you follow the guide that I wrote, you should see at least 1 entry when typing ls /dev/serial/by-id/
that’s how you verify that it works.
then in the application that needs access to your USB device, you enter the address that starts with ls /dev/serial/by-id/ instead of /dev/ttsUSB0 and it should work