The module works by group of 6 outputs at a time. so a switch module with 12 outputs is updated 6 by 6, even if you change output 1 only, output 1 to 6 will be updated. (nikobus internal ways of working, can’t be changed)
So HA needs to know correct status of the outputs, if you have not set “impacted_module” yet for your buttons, you can be between 2 scheduled refreshes and the output state in HA is not yet in sync.
Changing the output 1 to ON with others first 6 OFF, will send 01 00 00 00 00 00 to Nikobus.
Now you turn on output 2 on a physical button, as you are between 2 refresh cycle and “impacted module” for the button is not defined, HA is unaware yet, will be at next refresh.
Before next refresh, you change output 3 in HA, it will send 01 00 01 00 00 00, so turning OFF output 2 as HA trust the state is OFF as unaware yet you turned output 2 ON by physical button.
I could refresh the module state each time a button is pressed, to make sure I have the latest status from Nikobus, but this is reducing the user experience as integration would be slower to answer to user commands etc… so if you set ALL you button impacted module, you will be fixed.
On the USB side, I would not recommand your solution, but fix /dev/usbxxx. There are many documentation on the matter out there. if you share how you run HA, which platform etc… I could advice.
example how to lock your USB behaviour, give me more details about your setup so I can be more specific
udevadm info --name=/dev/ttyUSB1 --attribute-walk
sudo nano /etc/udev/rules.d/99-usb-serial.rules
SUBSYSTEM==“tty”, ATTRS{idVendor}==“067b”, ATTRS{idProduct}==“2303”, SYMLINK+=“ttyUSBProlific”
sudo udevadm control --reload-rules
sudo udevadm trigger