"received invalid frame" error in log when setting up a KNX thing

Hello everyone

I hope someone can help me with this error I’m getting on a fresh new install of OpenHab 3.2.0
Here’s the details:

  • Platform information:

    • Hardware: RPI 3B
    • OS: OpenHabian
    • Java Runtime Environment:
      openjdk 11.0.13 2021-10-19 LTS
      OpenJDK Runtime Environment Zulu11.52+13-CA (build 11.0.13+8-LTS)
  • openHAB version: 3.2.0

  • Issue of the topic:
    “received invalid frame” error in log when setting up a KNX thing and it remains offline.
    This is a fresh new install . The KNX/IP Gateway, a Weinzierl KNX IP BAOS 772, is configured in tunnel mode and shows as online .

  • Here’s the configuration I have for the KNX binding and thing:
    KNX IP/Gateway

    UID: knx:ip:25e249feff
    label: KNX/IP Gateway
    thingTypeUID: knx:ip
    configuration:
    useNAT: false
    readRetriesLimit: 3
    ipAddress: 192.168.1.10
    autoReconnectPeriod: 60
    localIp: 192.168.1.40
    localSourceAddr: 0.0.0
    readingPause: 50
    type: TUNNEL
    portNumber: 3671
    responseTimeout: 10
    location: Sotão

Knx thing definiton

UID: knx:device:25e249feff:ec71f1b627
label: KNX Device_Sensor Luminosidade e temperatura
thingTypeUID: knx:device
configuration:
pingInterval: 600
address: 1.1.201
readInterval: 30
fetch: false
bridgeUID: knx:ip:25e249feff
location: Exterior

  • My logs report the following when I created the KNX Thing:

    23:40:46.686 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing ‘knx:device:25e249feff:ec71f1b627’ changed from UNINITIALIZED to INITIALIZING
    23:40:46.698 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing ‘knx:device:25e249feff:ec71f1b627’ changed from INITIALIZING to UNKNOWN
    23:40:47.720 [WARN ] [KNXnet/IP Tunneling 192.168.1.10:3671] - received invalid frame
    tuwien.auto.calimero.KnxRuntimeException: parsing cEMI
    at tuwien.auto.calimero.knxnetip.servicetype.ServiceRequest.lambda$static$0(ServiceRequest.java:75) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.servicetype.ServiceRequest.lambda$new$3(ServiceRequest.java:144) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.servicetype.ServiceRequest.service(ServiceRequest.java:207) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.handleServiceType(KNXnetIPTunnel.java:380) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.ConnectionBase.handleServiceType(ConnectionBase.java:373) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.ReceiverLoop.onReceive(ReceiverLoop.java:93) [bundleFile:?]
    at tuwien.auto.calimero.internal.UdpSocketLooper.receive(UdpSocketLooper.java:177) [bundleFile:?]
    at tuwien.auto.calimero.internal.UdpSocketLooper.loop(UdpSocketLooper.java:134) [bundleFile:?]
    at tuwien.auto.calimero.knxnetip.ReceiverLoop.run(ReceiverLoop.java:75) [bundleFile:?]
    at java.lang.Thread.run(Thread.java:829) [?:?]
    Caused by: tuwien.auto.calimero.KNXFormatException: length of tpdu exceeds available data: 0x61
    at tuwien.auto.calimero.cemi.CEMILDataEx.readPayload(CEMILDataEx.java:493) ~[bundleFile:?]
    at tuwien.auto.calimero.cemi.CEMILDataEx.(CEMILDataEx.java:181) ~[bundleFile:?]
    at tuwien.auto.calimero.cemi.CEMIFactory.create(CEMIFactory.java:87) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.servicetype.ServiceRequest.lambda$static$0(ServiceRequest.java:72) ~[bundleFile:?]
    … 9 more
    23:40:50.702 [WARN ] [KNXnet/IP Tunneling 192.168.1.10:3671] - response timeout waiting for confirmation
    tuwien.auto.calimero.KNXTimeoutException: no confirmation reply received for 0.0.0->1.1.201 L_Data.req, system priority hop count 6 repeat, tpdu 80
    at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:269) ~[?:?]
    at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:261) ~[?:?]
    at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:213) ~[?:?]
    at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:423) ~[?:?]
    at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:385) ~[?:?]
    at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:402) ~[?:?]
    at tuwien.auto.calimero.mgmt.TransportLayerImpl.connect(TransportLayerImpl.java:314) ~[?:?]
    at tuwien.auto.calimero.mgmt.TransportLayerImpl.sendData(TransportLayerImpl.java:333) ~[?:?]
    at tuwien.auto.calimero.mgmt.ManagementClientImpl.send(ManagementClientImpl.java:1275) ~[?:?]
    at tuwien.auto.calimero.mgmt.ManagementClientImpl.send(ManagementClientImpl.java:1259) ~[?:?]
    at tuwien.auto.calimero.mgmt.ManagementClientImpl.sendWait2(ManagementClientImpl.java:1295) ~[?:?]
    at tuwien.auto.calimero.mgmt.ManagementClientImpl.readDeviceDesc(ManagementClientImpl.java:595) ~[?:?]
    at tuwien.auto.calimero.mgmt.ManagementProceduresImpl.isAddressOccupied(ManagementProceduresImpl.java:391) ~[?:?]
    at org.openhab.binding.knx.internal.client.AbstractKNXClient.isReachable(AbstractKNXClient.java:343) ~[?:?]
    at org.openhab.binding.knx.internal.handler.AbstractKNXThingHandler.pollDeviceStatus(AbstractKNXThingHandler.java:148) ~[?:?]
    at org.openhab.binding.knx.internal.handler.AbstractKNXThingHandler.lambda$1(AbstractKNXThingHandler.java:188) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at java.lang.Thread.run(Thread.java:829) [?:?]
    23:40:50.754 [WARN ] [KNXnet/IP Tunneling 192.168.1.10:3671] - received invalid frame
    tuwien.auto.calimero.KnxRuntimeException: parsing cEMI
    at tuwien.auto.calimero.knxnetip.servicetype.ServiceRequest.lambda$static$0(ServiceRequest.java:75) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.servicetype.ServiceRequest.lambda$new$3(ServiceRequest.java:144) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.servicetype.ServiceRequest.service(ServiceRequest.java:207) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.handleServiceType(KNXnetIPTunnel.java:380) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.ConnectionBase.handleServiceType(ConnectionBase.java:373) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.ReceiverLoop.onReceive(ReceiverLoop.java:93) [bundleFile:?]
    at tuwien.auto.calimero.internal.UdpSocketLooper.receive(UdpSocketLooper.java:177) [bundleFile:?]
    at tuwien.auto.calimero.internal.UdpSocketLooper.loop(UdpSocketLooper.java:134) [bundleFile:?]
    at tuwien.auto.calimero.knxnetip.ReceiverLoop.run(ReceiverLoop.java:75) [bundleFile:?]
    at java.lang.Thread.run(Thread.java:829) [?:?]
    Caused by: tuwien.auto.calimero.KNXFormatException: length of tpdu exceeds available data: 0x61
    at tuwien.auto.calimero.cemi.CEMILDataEx.readPayload(CEMILDataEx.java:493) ~[bundleFile:?]
    at tuwien.auto.calimero.cemi.CEMILDataEx.(CEMILDataEx.java:181) ~[bundleFile:?]
    at tuwien.auto.calimero.cemi.CEMIFactory.create(CEMIFactory.java:87) ~[bundleFile:?]
    at tuwien.auto.calimero.knxnetip.servicetype.ServiceRequest.lambda$static$0(ServiceRequest.java:72) ~[bundleFile:?]
    … 9 more
    23:40:53.737 [WARN ] [KNXnet/IP Tunneling 192.168.1.10:3671] - response timeout waiting for confirmation
    tuwien.auto.calimero.KNXTimeoutException: no confirmation reply received for 0.0.0->1.1.201 L_Data.req, system priority hop count 6 repeat, tpdu 81
    at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:269) ~[?:?]
    at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:261) ~[?:?]
    at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:213) ~[?:?]
    at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:423) ~[?:?]
    at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:385) ~[?:?]
    at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:402) ~[?:?]
    at tuwien.auto.calimero.mgmt.TransportLayerImpl.sendDisconnect(TransportLayerImpl.java:604) ~[?:?]
    at tuwien.auto.calimero.mgmt.TransportLayerImpl.disconnectIndicate(TransportLayerImpl.java:585) ~[?:?]
    at tuwien.auto.calimero.mgmt.TransportLayerImpl.disconnect(TransportLayerImpl.java:325) ~[?:?]
    at tuwien.auto.calimero.mgmt.Destination.destroy(Destination.java:373) ~[?:?]
    at tuwien.auto.calimero.mgmt.Destination.close(Destination.java:386) ~[?:?]
    at tuwien.auto.calimero.mgmt.ManagementProceduresImpl.isAddressOccupied(ManagementProceduresImpl.java:390) ~[?:?]
    at org.openhab.binding.knx.internal.client.AbstractKNXClient.isReachable(AbstractKNXClient.java:343) ~[?:?]
    at org.openhab.binding.knx.internal.handler.AbstractKNXThingHandler.pollDeviceStatus(AbstractKNXThingHandler.java:148) ~[?:?]
    at org.openhab.binding.knx.internal.handler.AbstractKNXThingHandler.lambda$1(AbstractKNXThingHandler.java:188) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at java.lang.Thread.run(Thread.java:829) [?:?]
    23:40:53.763 [WARN ] [calimero.mgmt.TL 192.168.1.10:3671 ] - disconnected not gracefully (timeout)
    tuwien.auto.calimero.KNXTimeoutException: no confirmation reply received for 0.0.0->1.1.201 L_Data.req, system priority hop count 6 repeat, tpdu 81
    at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:269) ~[?:?]
    at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:261) ~[?:?]
    at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:213) ~[?:?]
    at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:423) ~[?:?]
    at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:385) ~[?:?]
    at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:402) ~[?:?]
    at tuwien.auto.calimero.mgmt.TransportLayerImpl.sendDisconnect(TransportLayerImpl.java:604) ~[?:?]
    at tuwien.auto.calimero.mgmt.TransportLayerImpl.disconnectIndicate(TransportLayerImpl.java:585) ~[?:?]
    at tuwien.auto.calimero.mgmt.TransportLayerImpl.disconnect(TransportLayerImpl.java:325) ~[?:?]
    at tuwien.auto.calimero.mgmt.Destination.destroy(Destination.java:373) ~[?:?]
    at tuwien.auto.calimero.mgmt.Destination.close(Destination.java:386) ~[?:?]
    at tuwien.auto.calimero.mgmt.ManagementProceduresImpl.isAddressOccupied(ManagementProceduresImpl.java:390) ~[?:?]
    at org.openhab.binding.knx.internal.client.AbstractKNXClient.isReachable(AbstractKNXClient.java:343) ~[?:?]
    at org.openhab.binding.knx.internal.handler.AbstractKNXThingHandler.pollDeviceStatus(AbstractKNXThingHandler.java:148) ~[?:?]
    at org.openhab.binding.knx.internal.handler.AbstractKNXThingHandler.lambda$1(AbstractKNXThingHandler.java:188) ~[?:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at java.lang.Thread.run(Thread.java:829) [?:?]
    23:40:53.781 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing ‘knx:device:25e249feff:ec71f1b627’ changed from UNKNOWN to OFFLINE

Does anyone have any clue of what’s the cause of the error and how to resolve it?

Thanks
Eurico