KNX issue

Hi Community,

in my OpenHAB logfile I am receiving the following error:

_2018-04-02 08:28:21.594 [ERROR] [.binding.knx.internal.bus.KNXBinding] - Value 'ON' could not be sent to the KNX bus using datapoint 'command DP 1/1/22 og_buero_licht_decke, DPT main 0 id 1.001, low priority' - giving up after second try: no confirmation reply received for L-Data.req from 0.5.5 to 1/1/22, low priority hop count 6 repeat tpdu 00 81_

_        2018-04-02 08:28:21.594 [WARN ] [tuwien.auto.calimero                ] - KNXnet/IP Tunneling 224.0.23.12:3671: response timeout waiting for confirmation_

_        tuwien.auto.calimero.exception.KNXTimeoutException: no confirmation reply received for L-Data.req from 0.5.5 to 1/1/22, low priority hop count 6 repeat tpdu 00 81_

_        	at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:236) [233:org.openhab.binding.knx:1.11.0]_

_        	at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:269) [233:org.openhab.binding.knx:1.11.0]_

_        	at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:149) [233:org.openhab.binding.knx:1.11.0]_

_        	at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:263) [233:org.openhab.binding.knx:1.11.0]_

_        	at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:304) [233:org.openhab.binding.knx:1.11.0]_

_        	at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:240) [233:org.openhab.binding.knx:1.11.0]_

_        	at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:466) [233:org.openhab.binding.knx:1.11.0]_

_        	at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:438) [233:org.openhab.binding.knx:1.11.0]_

_        	at org.openhab.binding.knx.internal.bus.KNXBinding.writeToKNX(KNXBinding.java:158) [233:org.openhab.binding.knx:1.11.0]_

_        	at org.openhab.binding.knx.internal.bus.KNXBinding.internalReceiveCommand(KNXBinding.java:112) [233:org.openhab.binding.knx:1.11.0]_

_        	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [200:org.openhab.core.compat1x:2.2.0]_

_        	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [200:org.openhab.core.compat1x:2.2.0]_

_        	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]_

_        	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]_

_        	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]_

_        	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]_

_        	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]_

_        	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]_

_        	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) [?:?]_

It seems to me that it cannot receive confirmation from KNX to OpenHAB properly so I assume that it might be the KNX-Binding configuration.

Does this sound familiar to anyone?

Regards and thanks in advance

Mathias

Hi,

You need to post more info like: your knx.cfg etc

I see a potential error in your config: Tunneling 224.0.23.12:3671
if you use tunnel mode, you should specify the IP of the KNX/IP interface. This IP is for routing.

Hi,

thanks for your quick reply.

My knx.cfg looks like this:

# KNX gateway IP address 
# (optional, if serialPort or connection type 'ROUTER' is specified)
ip=224.0.23.12

# Local KNX Binding bus address.
# Use it, when two or more openHAB Instances are connected to the same KNX bus.
# (optional, defaults to 0.0.0)
busaddr=0.5.5

# Ignore local KNX Events, prevents internal events coming from
# 'openHAB event bus' a second time to be sent back to the 'openHAB event bus'.
# Note: To send back events second time is a Bug, but for backward compatibility, the behavior is not changed.
# For new installations, its recommend to set "ignorelocalevents=true"
# (optional, defaults to false)
#ignorelocalevents=true

# KNX IP connection type. Could be either TUNNEL or ROUTER (optional, defaults to TUNNEL)
# Note: If you cannot get the ROUTER mode working (even if it claims it is connected), 
# use TUNNEL mode instead with setting both the ip of the KNX gateway and the localIp.
type=TUNNEL

# KNX gateway port (optional, defaults to 3671)
# Note: If you use eibd, setting to 6720
port=3671

# Local endpoint to specify the multicast interface, no port is used (optional)
localIp=192.168.1.175

# Serial port of FT1.2 KNX interface (ignored, if ip is specified)
# Valid values are e.g. COM1 for Windows and /dev/ttyS0 or /dev/ttyUSB0 for Linux
#serialPort=/dev/ttyUSB1

# Pause in milliseconds between two read requests on the KNX bus during
# initialization (optional, defaults to 50)
#pause=

# Timeout in milliseconds to wait for a response from the KNX bus (optional, 
# defaults to 10000)
#timeout

# Number of read retries while initialization items from the KNX bus (optional,
# defaults to 3)
#readRetries

# Seconds between connect retries when KNX link has been lost
# 0 means never retry, it will only reconnect on next write or read request
# Note: without periodic retries all events will be lost up to the next read/write
#       request
# (optional, default is 0)
#autoReconnectPeriod=30

### Auto refresh feature
# Number of entries permissible in the item refresher queue. 
# (optional, defaults to 10000)
#maxRefreshQueueEntries=

# Number of parallel threads for refreshing items. (optional, defaults to 5)
#numberOfThreads=

# Seconds to wait for an orderly shutdown of the auto refresher's 
# ScheduledExecutorService. (optional, defaults to 5)
#scheduledExecutorServiceShutdownTimeoutString=

# Use NAT (Network Address Translation)
#  (optional; defaults to false)
#useNAT=true

I connect my Raspi 3 with openHAB and KNXD via USB to my knx system. So far it works fine since I am able to switch lights on and off but unfortunately the error occurs as written in my previous post.
I also have a slight delay in the communication. Once a light turned on it takes at least two seconds to turn it off when I press “off” immediately after. So obviousely the system is busy in the meantime…

Do you need more information?

Thanks in advance and best regards

Mathias

I’m facing the same errors as described in my post:

https://community.openhab.org/t/openhab-2-and-knx-binding-no-confirmation-reply-received-for-l-data-req/39569

Yesterday I tried the new KNX 2 binding, and I had the same kind of errors

so, the knxd process is acting as the Router. Post that config also please.

try the following routing config for the KNX Binding in openHAB2 and check the logs:

type=ROUTER
ip=224.0.23.12
localIp=192.168.1.175
busaddr=0.5.5
ignorelocalevents=true

I assume that you are using KNX1 binding (not KNX2)

This is the knxd config file (/etc/knxd.conf)

# configuration for knxd.service
KNXD_OPTS="-e 0.5.0 -E 0.5.1:10 -u /tmp/eib -b usb:"

# The default options are "-u /tmp/eib -b ip:"
# which tell knxd to route between all of
#  /tmp/eib (legacy socket (-u))
#  multicast client (-b ip:).
# knxd's own bus address is 0.0.1; it will assign 0.0.2…0.0.9 to clients.
# The knxd.socket file also tells knxd to listen to
#  /run/eib (socket activation via systemd)
#  TCP port 6720 (socket activation via systemd)
# You *need* the -e option. Clients cannot connect without "-E".

# You can read knxd's logs with
# $ journalctl -u knxd --since "10 min ago"
# (or whatever). See the manpage for details.
# You need to be a member of the "adm" group.
# Add "-f9 -t1023" to the beginning of the command line for extensive logging.

# *** DO NOT use "-u" / "-u /run/knx" or "-i" / "-i 6720" here.
# Systemd already does that on behalf of knxd, via 'knx.socket'.

# *** DO NOT use both "-RS" and "-b ip:" (unless you specify a
# different multicast address on one of them). You'd create a loop.

# If you have KNX hardware on a serial port or USB, add the appropriate
# "-b TYPE:…" option. In this case, you probably want to set up a multicast
# server, not a client (i.e. use "-D -T -R -S", not "-b ip:").
# DO NOT use both.
#
# If your KNX hardware is a KNX/IP gateway that doesn't do multicast,
# use "-b ipt:192.168.1.2" (or its DNS name) to talk to it.
#
# KNX MUST NOT have more than one path between any two devices. Thus,
# you need to make sure that the KNX/IP gateway does not route multicast
# before you use both "-S" and "-b ipt:".

I’ve also tried to config the binding in the way you described. Once changing the configuration there is no communication to knxd anymore.
Just to clarify, I am using KNX1 Binding. What’s different in KNX2 Binding?

When changing it back to TUNNEL mode it works but the errors remain:

2018-04-03 19:54:26.499 [WARN ] [.binding.knx.internal.bus.KNXBinding] - Value 'OFF' could not be sent to the KNX bus using datapoint 'command DP 1/1/22 og_buero_licht_decke, DPT main 0 id 1.001, low priority' - retrying one time: no confirmation reply received for L-Data.req from 0.5.5 to 1/1/22, low priority hop count 6 repeat tpdu 00 80

2018-04-03 19:54:26.502 [WARN ] [tuwien.auto.calimero                ] - KNXnet/IP Tunneling 224.0.23.12:3671: response timeout waiting for confirmation

tuwien.auto.calimero.exception.KNXTimeoutException: no confirmation reply received for L-Data.req from 0.5.5 to 1/1/22, low priority hop count 6 repeat tpdu 00 80

	at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:236) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:269) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:149) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:263) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:304) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:240) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:466) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:438) [233:org.openhab.binding.knx:1.11.0]

	at org.openhab.binding.knx.internal.bus.KNXBinding.writeToKNX(KNXBinding.java:149) [233:org.openhab.binding.knx:1.11.0]

	at org.openhab.binding.knx.internal.bus.KNXBinding.internalReceiveCommand(KNXBinding.java:112) [233:org.openhab.binding.knx:1.11.0]

	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [200:org.openhab.core.compat1x:2.2.0]

	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [200:org.openhab.core.compat1x:2.2.0]

	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]

	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]

	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]

	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

	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) [?:?]

2018-04-03 19:54:29.504 [ERROR] [.binding.knx.internal.bus.KNXBinding] - Value 'OFF' could not be sent to the KNX bus using datapoint 'command DP 1/1/22 og_buero_licht_decke, DPT main 0 id 1.001, low priority' - giving up after second try: no confirmation reply received for L-Data.req from 0.5.5 to 1/1/22, low priority hop count 6 repeat tpdu 00 80

2018-04-03 19:54:29.504 [WARN ] [tuwien.auto.calimero                ] - KNXnet/IP Tunneling 224.0.23.12:3671: response timeout waiting for confirmation

tuwien.auto.calimero.exception.KNXTimeoutException: no confirmation reply received for L-Data.req from 0.5.5 to 1/1/22, low priority hop count 6 repeat tpdu 00 80

	at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:236) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:269) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:149) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:263) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:304) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:240) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:466) [233:org.openhab.binding.knx:1.11.0]

	at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:438) [233:org.openhab.binding.knx:1.11.0]

	at org.openhab.binding.knx.internal.bus.KNXBinding.writeToKNX(KNXBinding.java:158) [233:org.openhab.binding.knx:1.11.0]

	at org.openhab.binding.knx.internal.bus.KNXBinding.internalReceiveCommand(KNXBinding.java:112) [233:org.openhab.binding.knx:1.11.0]

	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [200:org.openhab.core.compat1x:2.2.0]

	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [200:org.openhab.core.compat1x:2.2.0]

	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]

	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]

	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]

	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

	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) [?:?]

Regards
Mathias

Does anyone have an idea how the problem can be solved?

It works with routing? Use routing.

I never got tunneling to work reliably for a longer period of time. Not in KNX1 and not in KNX2. Not with eibd/TPUART, not with a Weinzierl 730 and not with an Enertex IPRouter. Might simply be broken in Calimero (the underlying library).