enOcean Bridge problem after fuse blown

Although @Nadahar made a great improvement to the enOcean binding a few months ago, I just had a new instance of “bridge offline” after a fuse blew:

2026-07-30 19:47:57.858 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Invoer-/uitvoerfout in writeArray

There must be something off with the wiring of our oven, because it’s always when when it’s on that the “main” fuse blows. But it’s very rare: we use the oven plenty without any problem.

But more importantly: it still caused the bridge to go offline. And sadly, since I thought @Nadahar’s fix fixed that problem, I stopped TRACE logging the binding. So I have nothing more than that one line of log :frowning:

Obviously I started TRACE logging again, but maybe “Invoer-/uitvoerfout in writeArray” might already be a small hint. For starters: why is it in Dutch?

A bit more logs:

erik@MinipcLG2:/var/log/openhab$ cat events.log | grep -i "bridge:ccb063c185"
2026-07-30 19:47:57.858 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Invoer-/uitvoerfout in writeArray
2026-07-30 19:48:37.274 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (COMMUNICATION_ERROR): Invoer-/uitvoerfout in writeArray to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:48:37.295 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:49:37.296 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:49:37.309 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:50:37.310 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:50:37.329 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:51:37.331 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:51:37.343 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:52:37.344 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:52:37.355 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:53:37.358 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:53:37.377 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:54:37.377 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:54:37.390 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:55:37.391 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:55:37.404 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:56:37.405 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:56:37.417 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:57:37.419 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:57:37.438 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:58:37.439 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:58:37.458 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 19:59:37.460 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 19:59:37.470 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 20:00:37.472 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 20:00:37.484 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 20:01:37.486 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 20:01:37.505 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 20:02:37.506 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 20:02:37.518 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 20:03:37.519 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 20:03:37.538 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 20:04:37.540 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 20:04:37.559 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 20:05:37.560 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 20:05:37.578 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 20:06:37.579 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 20:06:37.596 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 20:07:37.597 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 20:07:37.615 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
2026-07-30 20:08:37.616 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_ERROR): Port could not be found to OFFLINE (CONFIGURATION_PENDING): opening serial port...
2026-07-30 20:08:37.625 [INFO ] [ab.event.ThingStatusInfoChangedEvent - 452       ] - Thing 'enocean:bridge:ccb063c185' changed from OFFLINE (CONFIGURATION_PENDING): opening serial port... to OFFLINE (CONFIGURATION_ERROR): Port could not be found
erik@MinipcLG2:/var/log/openhab$

It looks like the fuse blew at 2026-07-30 19:47:57. It makes sense that the bridge goes offline then, although I want to see how the code handles that. (I tried, but couldn’t find my way in the code. Also, the substring writeArray isn’t used in /org.openhab.binding.enocean, according to Eclipse, and I also couldn’t find it in Translating openhab-core to Dutch language - Crowdin…)

It looks like I turned the power back on at 2026-07-30 19:48:37. And then it “can’t find a port”…

I edited my log4j2.xml, but I never figured out how to get it “reloaded” while openHAB is still live. I would like to do that, so that I can log the process of disabling and re-enabling the bridge Thing, which I think will come online again then.

Edit:
Looking at the Thing in Main UI, I notice that none of the “Path” options are selected:

Could that option be “reset” when the fuse blew?

I went ahead and disabled and reenabled the Bridge Thing, and this happened:

HANDLER_CONFIGURATION_PENDING
{path=De waarde /dev/ttyUSB0 komt niet overeen met de toegestane parameteropties. Toegestane opties zijn: [ParameterOption [value="/dev/ttyUSB1", label="/dev/ttyUSB1"], ParameterOption [value="/dev/ttyS4", label="/dev/ttyS4"], ParameterOption [value="/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AB0P0ZII-if00-port0", label="/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AB0P0ZII-if00-port0"]]}

Apparently, this shifting from /dev/USB0 to /dev/USB1 is expected Linux behaviour. And look:

erik@MinipcLG2:/var/log/openhab$ dmesg | grep -i ttyUSB
[226741.083286] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[226759.055199] usb 1-4: FTDI USB Serial Device converter now attached to ttyUSB1
erik@MinipcLG2:/var/log/openhab$

So I guess the challenge is to get the binding to cope with this somehow…

Some more digging (and asking Claude), taught me that there’s a safe way: namely via the “device id”:

erik@MinipcLG2:/var/log/openhab$ ls -l /dev/serial/by-id/
totaal 0
lrwxrwxrwx 1 root root 13 jul 30 19:48 usb-FTDI_FT232R_USB_UART_AB0P0ZII-if00-port0 -> ../../ttyUSB1
erik@MinipcLG2:/var/log/openhab$

And that appears to be the third option on my list:

So I assume I fixed the problem forever for my setup.

I think the README could be clearer on that point. But since I don’t know how the option via device ID got there, I have no idea what to change to the README…