Hi all - my first comment on the community! I’ve been facing this same issue for a long time. Sometimes I don’t lose the connection in weeks, perhaps months, but many times it just takes a day or two. Seems it’s been getting worse over the last month or so. I’m using ABB 6136/APP-500 ControlTouch visualisation server as a tunnel to KNX bus. Based on this post there’s been similar issues with ABB devices.
openhab.log says:
2020-02-27 20:41:52.762 [WARN ] [Xnet/IP Tunneling 192.168.1.199:3671] - received service acknowledgment with wrong send sequence 237, expected 238 - ignored
2020-02-27 20:41:52.781 [ERROR] [Xnet/IP Tunneling 192.168.1.199:3671] - close connection - maximum send attempts
tuwien.auto.calimero.KNXAckTimeoutException: maximum send attempts, no service acknowledgment received
at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:250) ~[?:?]
at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:178) ~[?:?]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:243) ~[?:?]
at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:351) ~[?:?]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:222) ~[?:?]
at tuwien.auto.calimero.mgmt.TransportLayerImpl.connect(TransportLayerImpl.java:327) ~[?:?]
at tuwien.auto.calimero.mgmt.ManagementClientImpl.send(ManagementClientImpl.java:796) ~[?:?]
at tuwien.auto.calimero.mgmt.ManagementClientImpl.sendWait2(ManagementClientImpl.java:824) ~[?:?]
at tuwien.auto.calimero.mgmt.ManagementClientImpl.readDeviceDesc(ManagementClientImpl.java:447) ~[?:?]
at tuwien.auto.calimero.mgmt.ManagementProceduresImpl.isAddressOccupied(ManagementProceduresImpl.java:310) ~[?:?]
at org.openhab.binding.knx.internal.client.AbstractKNXClient.isReachable(AbstractKNXClient.java:338) ~[?:?]
at org.openhab.binding.knx.handler.AbstractKNXThingHandler.pollDeviceStatus(AbstractKNXThingHandler.java:144) ~[?:?]
at org.openhab.binding.knx.handler.AbstractKNXThingHandler.lambda$1(AbstractKNXThingHandler.java:184) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
so it seems similar to issues above you guys have.
My bridge settings are simple, I’ve removed all unnecessary lines after googling this issue, but this hasn’t helped:
Bridge knx:ip:bridge "KNX ControlTouch" @ "tekninen tila" [
type = "TUNNEL",
ipAddress = "192.168.1.199",
autoReconnectPeriod = 30
]
I’ve got roughly 50 KNX devices on my house, currently 20 of them has been defined as things on knx.things file.
So far I haven’t found a solution for this. It seems I need to implement some kind of auto-restart rule for the KNX binding. I’ve seen some examples. I think the key is what is the best way to detect the connection close. What’s your proposal?