Custom Component: Nikobus

No problem, we all started one day :grinning: that’s why we have a forum to help.

What if you use /dev/ttyUSB0 in the integration ?

Thx for helping i wil use /dev/ttyUSB0 for now

The integration accept any ttyUSB or ttyS, ttyUSB1 is just an example

It check if the connection_string starts with /dev/tty, followed by either USB or S, and ends with one or more digits. Examples of matching strings include:

  • /dev/ttyUSB0
  • /dev/ttyS1

Hi,

I seem to be having a connection issue with my USB device. I use the same USB serial controller as I use for openhab. There it works fine. This is the error I found:
[homeassistant.config_entries] Error setting up entry Nikobus - /dev/ttyUSB0 for nikobus

Is there some way I can validate and test myself where the issues can be? Could this maybe be related to permission issues on /dev/ttyUSB0 ?
I’m using latest Home-Assist version 2024.10.1 (OS 13.1), using HAOS

I see some read write errors in the console of the virtual machine, related to the serial adapter. Model of serial adapter is a PL2303

Could you enable debug log on the integration and provide logs following a restart ?

I would also need to know your HA install ? docker ? HAOS ? other ??

Oups sorry, first Welcome !! just saw first time you posted. So I will add a bit more guidance as I’m guessing you are starting with HA

So first go to Settings - Devices and Services - Nikobus and “enable debug logging”

then restart HA, as restart completes go to Settings - System - Logs use “niko” as filter, then click load full log, provide what is displayed on the screen.

Let’s start from there.

Seams you have permission issue, so HA is loaded in a VM ? virtualBox ? VMWare ? other …

its running on VMWARE, the other server that is running openhab is stopped, has not the attached usb device anymore, so I attached it to HA

Home Assistant Core
2024-10-07 22:21:24.453 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration nikobus which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-10-07 22:21:25.845 DEBUG (MainThread) [custom_components.nikobus] Starting setup of the Nikobus integration
2024-10-07 22:21:25.845 DEBUG (MainThread) [custom_components.nikobus.nikobus] Creating Nikobus instance with connection string: /dev/ttyUSB0
2024-10-07 22:21:37.731 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Nikobus - /dev/ttyUSB0 for nikobus
File "/config/custom_components/nikobus/nkbconnect.py", line 63, in _connect_serial
self._nikobus_reader, self._nikobus_writer = await serial_asyncio.open_serial_connection(
File "/config/custom_components/nikobus/__init__.py", line 26, in async_setup_entry
File "/config/custom_components/nikobus/coordinator.py", line 55, in connect
self.api = await Nikobus.create(self.hass, self._config_entry, self.connection_string, self.async_event_handler)
File "/config/custom_components/nikobus/nikobus.py", line 40, in create
File "/config/custom_components/nikobus/nikobus.py", line 48, in connect
if await self._nikobus_connection.connect():
File "/config/custom_components/nikobus/nkbconnect.py", line 34, in connect
File "/config/custom_components/nikobus/nkbconnect.py", line 66, in _connect_serial

Do you use USB passthrough in ESXi ? how do you run VMWare ? workstation on windows ? esx server ?

in HA can you see /dev/ttyUSB0 is Settings - System - Hardware - All hardware ?

Yes USB is attached to the VMWARE. Running on ESXi.
I can see the device information in the hardware info
I have these errors in the console (see attachments images) → will need to wait as I can only upload 1 image /4 minutes it seems.

Additional log information from the SSH access:

2024-10-07 22:26:35.628 ERROR (MainThread) [homeassistant.config_entries] Config entry '192.168.1.8' from integration sma has an invalid unique_id '3010653335', please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+sma%22
2024-10-07 22:27:29.090 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10122FA7324A64 after 3 attempts waiting for $0512
2024-10-07 22:27:29.091 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10122FA7324A64 after 3 attempts waiting for $1C2FA7
2024-10-07 22:27:41.062 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: {('nikobus', '01J9M0W63XZ2VSD6472K6MBBWJ'): 26.240630527}
2024-10-07 22:28:14.099 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10172FA7D9BA39 after 3 attempts waiting for $0517
2024-10-07 22:28:14.099 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10172FA7D9BA39 after 3 attempts waiting for $1C2FA7
2024-10-07 22:28:41.131 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: {('nikobus', '01J9M0W63XZ2VSD6472K6MBBWJ'): 26.240630527}
2024-10-07 22:28:59.112 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10122AC850F6FA after 3 attempts waiting for $0512
2024-10-07 22:28:59.112 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10122AC850F6FA after 3 attempts waiting for $1C2AC8
2024-10-07 22:29:29.422 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10122FA7324A64 after 3 attempts waiting for $0512
2024-10-07 22:29:29.422 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10122FA7324A64 after 3 attempts waiting for $1C2FA7
2024-10-07 22:29:41.206 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: {('nikobus', '01J9M0W63XZ2VSD6472K6MBBWJ'): 26.240630527}
2024-10-07 22:29:44.125 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10172AC8BB069A after 3 attempts waiting for $0517
2024-10-07 22:29:44.125 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10172AC8BB069A after 3 attempts waiting for $1C2AC8
2024-10-07 22:30:14.430 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10172FA7D9BA39 after 3 attempts waiting for $0517
2024-10-07 22:30:14.430 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10172FA7D9BA39 after 3 attempts waiting for $1C2FA7
2024-10-07 22:30:29.133 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10123A5D80996D after 3 attempts waiting for $0512
2024-10-07 22:30:29.133 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10123A5D80996D after 3 attempts waiting for $1C3A5D
2024-10-07 22:30:41.277 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: {('nikobus', '01J9M0W63XZ2VSD6472K6MBBWJ'): 26.240630527}
2024-10-07 22:30:59.438 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10122AC850F6FA after 3 attempts waiting for $0512
2024-10-07 22:30:59.438 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10122AC850F6FA after 3 attempts waiting for $1C2AC8
2024-10-07 22:31:14.152 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10123B88287095 after 3 attempts waiting for $0512
2024-10-07 22:31:14.152 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10123B88287095 after 3 attempts waiting for $1C3B88
2024-10-07 22:31:37.718 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Nikobus - /dev/ttyUSB0 for nikobus
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 594, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/nikobus/__init__.py", line 44, in async_setup_entry
    await coordinator.initial_update_data()
  File "/config/custom_components/nikobus/coordinator.py", line 83, in initial_update_data
    return await self.api.refresh_nikobus_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/nikobus/nikobus.py", line 81, in refresh_nikobus_data
    await self._refresh_module_type(self.dict_module_data['switch_module'])
  File "/config/custom_components/nikobus/nikobus.py", line 99, in _refresh_module_type
    group_state = await self.nikobus_command_handler.get_output_state(address, group) or ""
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/nikobus/nkbcommand.py", line 50, in get_output_state
    return await self.send_command_get_answer(command, address)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/nikobus/nkbcommand.py", line 88, in send_command_get_answer
    return await self._wait_for_ack_and_answer(command, _wait_command_ack, _wait_command_answer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/nikobus/nkbcommand.py", line 127, in _wait_for_ack_and_answer
    message = await asyncio.wait_for(self.nikobus_listener.response_queue.get(), timeout=COMMAND_ANSWER_WAIT_TIMEOUT)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/tasks.py", line 520, in wait_for
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/queues.py", line 158, in get
    await getter
asyncio.exceptions.CancelledError: Global task timeout
2024-10-07 22:31:37.723 WARNING (MainThread) [homeassistant.bootstrap] Setup timed out for stage 2 waiting on set() - moving forward
2024-10-07 22:31:44.445 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10172AC8BB069A after 3 attempts waiting for $0517
2024-10-07 22:31:44.445 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10172AC8BB069A after 3 attempts waiting for $1C2AC8
2024-10-07 22:32:29.455 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10123A5D80996D after 3 attempts waiting for $0512
2024-10-07 22:32:29.455 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10123A5D80996D after 3 attempts waiting for $1C3A5D
2024-10-07 22:33:14.465 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10123B88287095 after 3 attempts waiting for $0512
2024-10-07 22:33:14.465 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10123B88287095 after 3 attempts waiting for $1C3B88
2024-10-07 22:33:59.474 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10123A69F64E7E after 3 attempts waiting for $0512
2024-10-07 22:33:59.474 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10123A69F64E7E after 3 attempts waiting for $1C3A69
2024-10-07 22:34:44.484 ERROR (MainThread) [custom_components.nikobus.nkbcommand] ACK not received on $10123B89385168 after 3 attempts waiting for $0512
2024-10-07 22:34:44.484 ERROR (MainThread) [custom_components.nikobus.nkbcommand] Answer not received on $10123B89385168 after 3 attempts waiting for $1C3B89
2024-10-07 22:34:44.485 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 258, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 453, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 168, in async_update_listeners
    update_callback()
  File "/config/custom_components/nikobus/switch.py", line 69, in _handle_coordinator_update
    self._state = bool(self._dataservice.api.get_switch_state(self._address, self._channel))
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/nikobus/nikobus.py", line 159, in get_switch_state
    return self.get_bytearray_state(address, channel) == 0xFF
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/nikobus/nikobus.py", line 135, in get_bytearray_state
    return self._nikobus_module_states.get(address, bytearray())[channel - 1]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
IndexError: bytearray index out of range

In place of screenshots, found the messages also using dmesg

[   27.074870] pl2303 2-2.1:1.0: pl2303_vendor_write - failed to write [0008]: -110
[   28.077240] pl2303 2-2.1:1.0: pl2303_vendor_write - failed to write [0009]: -110
[   29.078437] pl2303 ttyUSB0: pl2303_get_line_request - failed: -110
[   30.081501] pl2303 ttyUSB0: pl2303_set_line_request - failed: -110
[   31.082787] pl2303 2-2.1:1.0: pl2303_vendor_read - failed to read [0080]: -110
[   32.085419] pl2303 ttyUSB0: pl2303_set_control_lines - failed: -110

ok, so you clearly have permission issue on the /dev/ttyUSB0

what report a ls -l /dev/ttyUSB0 ?

while you are on console:

lsmod | grep pl2303

sudo modprobe pl2303

lsusb

ls -l /dev/ttyUSB0
crw-rw----    1 root     audio     188,   0 Oct  7 22:41 /dev/ttyUSB0

lsmod | grep pl2303
pl2303                 24576  1

sudo modprobe pl2303
modprobe: can't change directory to '/lib/modules': No such file or directory

lsusb
Bus 001 Device 004: ID 067b:2303
Bus 001 Device 001: ID 1d6b:0001
Bus 001 Device 002: ID 0e0f:0003
Bus 002 Device 001: ID 1d6b:0002
Bus 001 Device 003: ID 0e0f:0002

Not sure if the errors of the USB device are related, because I also see them on the openhab installation, but seems to work just fine there.

try

sudo chmod 666 /dev/ttyUSB0

restart HA, NOT THE SERVER.

the chmod will not be persistant after reboot, just to try if setting the permission solves the problem.

I guess you were running OpenHAB as root, not HA. so permissions are not correct for HA to access ttyUSB try the chmod, see if it resolve.

sudo chmod 666 /dev/ttyUSB0
chmod: /dev/ttyUSB0: Read-only file system

do I need to remount the filesystem myself? or are there some ways to do that?
I’m not sure if I’m in the real console of the server.

Are you connected on the ESXi ? or HAOS in the VM ?

You need to be in the HAOS, there are addons you can install in HA that provide you root access to HAOS eg Advanced SSH & Web Terminal Current version: 19.0.0

You can also search more widely on the forum, as your problem is not related to the integration nor Nikobus but mounting USB on HAOS. I will monitor and continue to help, but time for me to call it a day. Will check back tomorrow.

1 Like

Using the addon Advanced SSH & Web terminal and disabled the protection mode.
and I’m accessing over SSH to the server

Then this is fine, got the same.

Do the same checks on the ESXi, what permission you have there ?

its suddenly seems to connect, but only happens ones. Seems something, after I restarted the server (no power off)
but then the timeout happend again

2024-10-07 23:31:35.250 DEBUG (MainThread) [custom_components.nikobus] Starting setup of the Nikobus integration
2024-10-07 23:31:35.250 DEBUG (MainThread) [custom_components.nikobus.nikobus] Creating Nikobus instance with connection string: /dev/ttyUSB0
2024-10-07 23:31:40.768 INFO (MainThread) [custom_components.nikobus.nkbconnect] Connected to serial port /dev/ttyUSB0
2024-10-07 23:31:40.768 INFO (MainThread) [custom_components.nikobus.nkbconnect] Nikobus handshake successful
2024-10-07 23:31:40.768 INFO (MainThread) [custom_components.nikobus.nkbconfig] Loading module data from /config/nikobus_module_config.json
2024-10-07 23:31:40.790 INFO (MainThread) [custom_components.nikobus.nkbconfig] Loading button data from /config/nikobus_button_config.json
2024-10-07 23:31:40.792 INFO (MainThread) [custom_components.nikobus.nikobus] Nikobus instance created and connected successfully
2024-10-07 23:31:40.792 INFO (MainThread) [custom_components.nikobus.nkbcommand] Nikobus Command Processing starting
2024-10-07 23:31:40.792 INFO (MainThread) [custom_components.nikobus.nkblistener] Nikobus Event Listener starting
2024-10-07 23:31:40.828 DEBUG (MainThread) [custom_components.nikobus.coordinator] Performing initial data refresh for Nikobus
2024-10-07 23:31:40.828 DEBUG (MainThread) [custom_components.nikobus.nikobus] Refreshing data for module address: A72F
2024-10-07 23:31:40.828 DEBUG (MainThread) [custom_components.nikobus.nkbcommand] Getting output state - Address: A72F, Group: 1
2024-10-07 23:31:40.828 DEBUG (MainThread) [custom_components.nikobus.nkbcommand] Sending command $10122FA7324A64 to address A72F, waiting for answer
2024-10-07 23:31:40.828 DEBUG (MainThread) [custom_components.nikobus.nkbcommand] Attempt 1 of 3 waiting for $0512 / $1C2FA7
2024-10-07 23:31:45.829 DEBUG (MainThread) [custom_components.nikobus.nkbcommand] Timeout waiting for ACK/Answer on attempt 1
2024-10-07 23:31:50.793 DEBUG (MainThread) [custom_components.nikobus.nkblistener] Read operation timed out. Waiting for next data...
2024-10-07 23:31:50.830 DEBUG (MainThread) [custom_components.nikobus.nkbcommand] Timeout waiting for ACK/Answer on attempt 1
2024-10-07 23:31:55.832 DEBUG (MainThread) [custom_components.nikobus.nkbcommand] Timeout waiting for ACK/Answer on attempt 1
2024-10-07 23:31:55.832 DEBUG (MainThread) [custom_components.nikobus.nkbcommand] Attempt 2 of 3 waiting for $0512 / $1C2FA7

Thx for your update below, I’m not able to reply anymore (3 replies max limit)
I will give it a try this evening

  • Just tried it out, and this is the output now. I will try that restart ones more:
2024-10-08 19:27:22.831 DEBUG (MainThread) [custom_components.nikobus.config_flow] Starting user step with input: {'connection_string': '/dev/ttyUSB0', 'has_feedback_module': False}
2024-10-08 19:27:22.831 ERROR (MainThread) [custom_components.nikobus.config_flow] IP/Port validation error: not enough values to unpack (expected 2, got 1)
2024-10-08 19:27:22.831 DEBUG (MainThread) [custom_components.nikobus.config_flow] Starting options step with input: None
2024-10-08 19:27:24.343 DEBUG (MainThread) [custom_components.nikobus.config_flow] Starting options step with input: {'refresh_interval': 120}
2024-10-08 19:27:24.343 DEBUG (MainThread) [custom_components.nikobus.config_flow] Creating entry with data: {'connection_string': '/dev/ttyUSB0', 'has_feedback_module': False, 'refresh_interval': 120}
2024-10-08 19:27:24.344 DEBUG (MainThread) [custom_components.nikobus] Starting setup of the Nikobus integration
2024-10-08 19:27:24.344 DEBUG (MainThread) [custom_components.nikobus.nikobus] Creating Nikobus instance with connection string: /dev/ttyUSB0
2024-10-08 19:27:35.624 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Nikobus - /dev/ttyUSB0 for nikobus

after the restart the OS(not shutdown) its again communicating a bit better. I will, to be sure, Install the nikobus software again, so I can make sure all addresses are correct. Already much appriciated the help on this! Thx!

Update 8/11/2024 - 22:38
For now all is working fine. Seems the wrong addresses, where causing lots of stability issues, and connectivity issues also.

Thx a lot for helping @fdebrus

Now it seems to be your module address, if you send the wrong module address, Nikobus will not reply to your query.

Have you copy/pasted the module address from openHAB ? then it’s wrong and cannot be used in HA. It has to be the module address you find in the Nikobus software.

So if your module address in openHAB is A72F use 2FA7 in HA.

1 Like

Hi Again, I still see issue with the connectivity, from time to time, I need to restart the server, to have it working again. This is the error I see in the debug logs:

2024-10-08 23:41:02.318 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Nikobus - /dev/ttyUSB0 for nikobus
Traceback (most recent call last):
File "/config/custom_components/nikobus/nkbconnect.py", line 63, in _connect_serial
self._nikobus_reader, self._nikobus_writer = await serial_asyncio.open_serial_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/serial_asyncio/__init__.py", line 504, in open_serial_connection
transport, _ = await create_serial_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/serial_asyncio/__init__.py", line 448, in create_serial_connection
serial_instance = serial.serial_for_url(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/serial/__init__.py", line 90, in serial_for_url
instance.open()
File "/usr/local/lib/python3.12/site-packages/serial/serialposix.py", line 336, in open
self._update_dtr_state()
File "/usr/local/lib/python3.12/site-packages/serial/serialposix.py", line 713, in _update_dtr_state
fcntl.ioctl(self.fd, TIOCMBIS, TIOCM_DTR_str)
OSError: [Errno 5] I/O error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 594, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/nikobus/__init__.py", line 26, in async_setup_entry
await coordinator.connect()
File "/config/custom_components/nikobus/coordinator.py", line 55, in connect
self.api = await Nikobus.create(self.hass, self._config_entry, self.connection_string, self.async_event_handler)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/nikobus/nikobus.py", line 40, in create
if await instance.connect():
^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/nikobus/nikobus.py", line 48, in connect
if await self._nikobus_connection.connect():
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/nikobus/nkbconnect.py", line 34, in connect
await self._connect_serial()
File "/config/custom_components/nikobus/nkbconnect.py", line 66, in _connect_serial
except (OSError, serial_asyncio.SerialException) as err:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'serial_asyncio' has no attribute 'SerialException'

any idea what this could be related to?
Ones this error happens, it also seems not to retry anymore.

OSError: [Errno 5] I/O error

This indicate you cannot reach /dev/ttyUSB0

You have a problem in your setup not related to the intégration. Search on the forum on how to setup USB devices.

It’s normal not to retry as there is a fault in the platform setup

Examples

Connecting USB adapter to a HA installation inside VMware - Configuration - Home Assistant Community (home-assistant.io)

Home assistant VM on VMWare ESXI 7.0 doesn’t goes USB Passthru - Hardware - Home Assistant Community (home-assistant.io)

USB-Bluetooth Passtrough VMware for Yale Access Bluetooth - Third party integrations - Home Assistant Community (home-assistant.io)

Issues with USB(skyconnect) on VMware ESXi - Installation - Home Assistant Community (home-assistant.io)