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