Knx errors

Hi,
I’m using USB knx bridge (at the time of purchase i was not aware IP bridge would be a much better option). I’m running this Calimero Project (calimero-project.github.io) as a server. unfortunately knxd did not work with my shitty usb interface. I suppose knxd would be more robust then this java based calimero server.
This runs on the same rpi3 as openhab itself (usb device connected to the same rpi3 )

every few days I get these kind of errors in openhab.log
now everything still works, even with these errors, maybe sometimes it gets slower (like needs 3 seconds to switch on a light - not sure if this behavior correlates with these errors, it could easily be so.

2023-08-09 21:12:41.643 [WARN ] [KNXnet/IP Tunneling 192.168.4.2:3671] - response timeout waiting for confirmation
tuwien.auto.calimero.KNXTimeoutException: no confirmation reply received for 0.0.0->1.5.133 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:435) ~[?:?]
	at org.openhab.binding.knx.internal.handler.AbstractKNXThingHandler.pollDeviceStatus(AbstractKNXThingHandler.java:148) ~[?:?]
	at org.openhab.binding.knx.internal.handler.AbstractKNXThingHandler.lambda$1(AbstractKNXThingHandler.java:190) ~[?:?]
	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) [?:?]

my knx.things

Bridge knx:ip:bridge [
    ipAddress="192.168.4.2",
    portNumber=3671,
    localIp="192.168.4.2",
    type="TUNNEL",
    readingPause=50,
    responseTimeout=10,
    readRetriesLimit=3,
    autoReconnectPeriod=60,
    localSourceAddr="0.0.0"
] {
    Thing device generic  [
        address="1.5.133",
        fetch=false,
        pingInterval=300,
        readInterval=3600
    ] {
        Type switch        : Foyer             "Light"         [ ga="1/5/26+<1/5/27" ]
        Type switch        : Dining            "Light"         [ ga="1/5/33+<1/5/35" ]
        Type dimmer        : DiningDimmer      "Light"         [ position="5.001:1/5/36+<1/5/70" ] 
        Type switch        : Living            "Light"         [ ga="1/5/29+<1/5/31" ]
        Type dimmer        : LivingDimmer      "Light"         [ position="5.001:1/5/32+<1/5/69" ] 
        Type switch        : Entrance          "Light"         [ ga="1/5/24+<1/5/25" ]
        Type switch        : Corridor          "Light"         [ ga="1/5/20+<1/5/21" ]
        Type switch        : Balcony1          "Light"         [ ga="1/5/38+<1/5/39" ]
        Type switch        : Balcony2          "Light"         [ ga="1/5/6+<1/5/7"   ]  
        Type switch        : KidsEntrance      "Light"         [ ga="1/5/12+<1/5/13" ]
        Type switch        : KidsRoom          "Light"         [ ga="1/5/14+<1/5/16" ]
        Type dimmer        : KidsDimmer        "Light"         [ position="5.001:1/5/19+<1/5/68" ]
        Type switch        : Dressing          "Light"         [ ga="1/5/4+<1/5/5"   ]	      
        Type switch        : Bedroom           "Light"         [ ga="1/5/1+<1/5/3"   ]
        Type dimmer        : BedroomDimmer     "Light"         [ position="5.001:1/5/11+<1/5/67" ]
        Type number        : LivingTemp        "Temperature"   [ ga="9.001:<1/5/44"  ]
	      Type number        : RoomsTemp         "Temperature"   [ ga="9.001:<1/5/55"  ]
        Type dimmer	       : ACLiving1         "Temperature"   [ position="5.001:1/5/48+<1/5/49" ]
	      Type number	       : ACLiving2         "Temperature"   [ ga="9.001:<1/5/45+<1/5/53" ]
	      Type switch	       : ACLiving3         "Temperature"   [ ga="1/5/46+<1/5/47" ]
        Type number        : ACLiving4         "Temperature"   [ ga="9.001:<1/5/53"  ]    
        Type dimmer	       : ACRooms1          "Temperature"   [ position="5.001:1/5/59+<1/5/60" ]
	      Type number        : ACRooms2          "Temperature"   [ ga="9.001:<1/5/56+<1/5/64" ]
        Type switch        : ACRooms3          "Temperature"   [ ga="1/5/57+<1/5/58" ]
	      Type number        : ACRooms4          "Temperature"   [ ga="9.001:<1/5/64"  ]
        Type number        : LivingOff         "Temperature"   [ ga="5.001:<1/5/22"  ]
        Type number        : CommonOff         "Temperature"   [ ga="5.001:<1/5/28"  ]
        Type number        : WelcomeOff        "Temperature"   [ ga="5.001:<1/5/50"  ]
        Type number        : HomeSleep         "Temperature"   [ ga="5.001:<1/5/43"  ]
          }
}

Just wondering if this config can be somehow optimized to prevent those errors, or its not related?
if some other combination of localSourceAddr or address of the generic thing would help. As I understand both of these should be some made up addresses that are not already used on the bus.
all knx devices have some 1.5.X address.
As I said, this setup works pretty good most of the time, and occasional slowness could be blamed on the fact that the bridge is USB java chemistry.

Try removing the physical address from the thing or do you use that feature? For normal group address communication this is not needed.

No I dont use it, i configured it as i was thinking something has to be configured (when looking at the examples)
so, it should be just like this:
Thing device generic [
fetch=false,
pingInterval=300,
readInterval=3600

with address line completely removed?

Correct

done, thx. now my generic knx thing looks online, before it was offline (but worked). definitely some good progress :slight_smile:

just checked my original issue from 2019:
knxd crash when trying to write to knx bus · Issue #415 · knxd/knxd · GitHub

and found out it was fixed
Fixed crash on send for USB devices by akellai · Pull Request #450 · knxd/knxd · GitHub

so i might give it a go, I have some mini tplink mr3020 openwrt router which could run knxd, if it works good, it will become my permanent knx ip gateway :slight_smile:

1 Like

migrated knx gateway to knxd on openwrt router.
It was a breeze!
Plug in usb to the router, opkg install knxd and everything works! it got configured and started automatically and I feel it works faster than calimero server (which took hours to install and configure)

1 Like