Hi All,
in the process of trying to migrate my production installation of openHAB 1.8 (running for several years) to OH2, I’m doing some test of KNX bindings, and I’m facing some problems.
On a clean installation of openHAB 2 (2.2.0 Release build) on a windows 7 machine (OH1 runs on a different pc) I installed the KNX binding, with the following knx.cfg
# KNX gateway IP address
ip=192.168.7.107
# Local KNX Binding bus address.
busaddr=15.1.250
# Ignore local KNX Events, prevents internal events coming from
ignorelocalevents=true
# KNX IP connection type. Could be either TUNNEL or ROUTER (optional, defaults to TUNNEL)
type=TUNNEL
# KNX gateway port (optional, defaults to 3671)
port=3671
# Local endpoint to specify the multicast interface, no port is used (optional)
localIp=192.168.7.100
# 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
autoReconnectPeriod=10
that is the same configuration of the OH1 knx binding (except for busaddr and localIp).
My KNX installation talk with my LAN by a KNX IP BAOS 771 (Weinzierl)
I’m testing just 1 item (same definition of a working item in OH1):
Problem
OpenHAB log shows warnings for missing answers to reading request, but state is updated correctly
Switch Light01 "light 01" { knx="1.001:6/1/1+<6/1/2" }
Starting openHAB result in following log:
2018-02-03 19:05:06.506 [INFO ] [nx.internal.connection.KNXConnection] - Established connection to KNX bus on 192.168.7.107:3671 in mode TUNNEL.
2018-02-03 19:05:06.672 [vent.ItemStateChangedEvent] - Light01 changed from NULL to ON
2018-02-03 19:05:09.560 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Cannot read value for item 'Light01' from KNX bus: no confirmation reply received for L-Data.req from 15.1.250 to 6/1/2, low priority hop count 6 repeat tpdu 00 00: timeout
2018-02-03 19:05:09.568 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Remaining retries for address '6/1/2' = '2'
2018-02-03 19:05:09.561 [WARN ] [tuwien.auto.calimero ] - KNXnet/IP Tunneling 192.168.7.107:3671: response timeout waiting for confirmation
tuwien.auto.calimero.exception.KNXTimeoutException: no confirmation reply received for L-Data.req from 15.1.250 to 6/1/2, low priority hop count 6 repeat tpdu 00 00
at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:236) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:269) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:149) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:263) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:304) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:240) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.readFromGroup(ProcessCommunicatorImpl.java:486) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.read(ProcessCommunicatorImpl.java:422) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBindingDatapointReaderTask.readFromKNXBus(KNXBindingDatapointReaderTask.java:99) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBindingDatapointReaderTask.run(KNXBindingDatapointReaderTask.java:67) [228:org.openhab.binding.knx:1.11.0]
2018-02-03 19:05:12.624 [WARN ] [tuwien.auto.calimero ] - KNXnet/IP Tunneling 192.168.7.107:3671: response timeout waiting for confirmation
tuwien.auto.calimero.exception.KNXTimeoutException: no confirmation reply received for L-Data.req from 15.1.250 to 6/1/2, low priority hop count 6 repeat tpdu 00 00
at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:236) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:269) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:149) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:263) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:304) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:240) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.readFromGroup(ProcessCommunicatorImpl.java:486) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.read(ProcessCommunicatorImpl.java:422) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBindingDatapointReaderTask.readFromKNXBus(KNXBindingDatapointReaderTask.java:99) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBindingDatapointReaderTask.run(KNXBindingDatapointReaderTask.java:67) [228:org.openhab.binding.knx:1.11.0]
2018-02-03 19:05:12.624 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Cannot read value for item 'Light01' from KNX bus: no confirmation reply received for L-Data.req from 15.1.250 to 6/1/2, low priority hop count 6 repeat tpdu 00 00: timeout
2018-02-03 19:05:12.667 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Remaining retries for address '6/1/2' = '1'
2018-02-03 19:05:15.726 [WARN ] [tuwien.auto.calimero ] - KNXnet/IP Tunneling 192.168.7.107:3671: response timeout waiting for confirmation
tuwien.auto.calimero.exception.KNXTimeoutException: no confirmation reply received for L-Data.req from 15.1.250 to 6/1/2, low priority hop count 6 repeat tpdu 00 00
at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:236) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:269) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:149) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:263) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:304) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:240) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.readFromGroup(ProcessCommunicatorImpl.java:486) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.read(ProcessCommunicatorImpl.java:422) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBindingDatapointReaderTask.readFromKNXBus(KNXBindingDatapointReaderTask.java:99) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBindingDatapointReaderTask.run(KNXBindingDatapointReaderTask.java:67) [228:org.openhab.binding.knx:1.11.0]
2018-02-03 19:05:15.726 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Cannot read value for item 'Light01' from KNX bus: no confirmation reply received for L-Data.req from 15.1.250 to 6/1/2, low priority hop count 6 repeat tpdu 00 00: timeout
2018-02-03 19:05:15.781 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Remaining retries for address '6/1/2' = '0'
2018-02-03 19:05:18.838 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Cannot read value for item 'Light01' from KNX bus: no confirmation reply received for L-Data.req from 15.1.250 to 6/1/2, low priority hop count 6 repeat tpdu 00 00: timeout
2018-02-03 19:05:18.845 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Give up, could not read address '6/1/2' after '3' retries.
2018-02-03 19:05:18.838 [WARN ] [tuwien.auto.calimero ] - KNXnet/IP Tunneling 192.168.7.107:3671: response timeout waiting for confirmation
tuwien.auto.calimero.exception.KNXTimeoutException: no confirmation reply received for L-Data.req from 15.1.250 to 6/1/2, low priority hop count 6 repeat tpdu 00 00
at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:236) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:269) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:149) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:263) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:304) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:240) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.readFromGroup(ProcessCommunicatorImpl.java:486) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.read(ProcessCommunicatorImpl.java:422) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBindingDatapointReaderTask.readFromKNXBus(KNXBindingDatapointReaderTask.java:99) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBindingDatapointReaderTask.run(KNXBindingDatapointReaderTask.java:67) [228:org.openhab.binding.knx:1.11.0]
2018-02-03 19:06:10.079 [ome.event.ItemCommandEvent] - Item 'Light01' received command OFF
2018-02-03 19:06:10.201 [vent.ItemStateChangedEvent] - Light01 changed from ON to OFF
2018-02-03 19:06:11.121 [ome.event.ItemCommandEvent] - Item 'Light01' received command ON
2018-02-03 19:06:11.281 [vent.ItemStateChangedEvent] - Light01 changed from OFF to ON
So, the KNX TUNNEL connection is Established, and immediately after the item is updated with the correct state (the light is really ON).
But after 3 seconds log shows a timeout warning:
(from the previous log)
2018-02-03 19:05:06.672 [vent.ItemStateChangedEvent] - Light01 changed from NULL to ON
2018-02-03 19:05:09.560 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Cannot read value for item 'Light01' from KNX bus: no confirmation reply received for L-Data.req from 15.1.250 to 6/1/2, low priority hop count 6 repeat tpdu 00 00: timeout
2018-02-03 19:05:09.568 [WARN ] [al.bus.KNXBindingDatapointReaderTask] - Autorefresh: Remaining retries for address '6/1/2' = '2'
If I press a KNX switch to turn OFF or ON the light openHAB receives correctly all the updates (last 4 lines in log)
Also, the ETS monitor shows:
Every openHAB reading attemp, I can see in ETS monitor a message from OH (15.1.250) to the bus, and and immediately after a answer is been sent by the KNX bus.
With one-item configuration this warning could be ignored, but for a large knx installation openHAB become very very slow (means unusable…) to update all items at startup. OpenHAB log is spammed by these warnings continuously.
Is anyone else using KNX facing the same problems?
Another question for who know the answer:
Why the definition
Number EnergyMeter_Power "Power [%.2f%% Kw]" { autoupdate="false", knx="0/2/7" }
without
autoupdate="false"
doesn’t work as openhab 1 ?
Infact, omitting that, the knx binding try to write on the bus the value just received.
2018-02-03 19:54:52.124 [WARN ] [tuwien.auto.calimero ] - KNXnet/IP Tunneling 192.168.7.107:3671: response timeout waiting for confirmation
tuwien.auto.calimero.exception.KNXTimeoutException: no confirmation reply received for L-Data.req from 15.1.250 to 0/2/7, low priority hop count 6 repeat tpdu 00 80 00 41
at tuwien.auto.calimero.knxnetip.ClientConnection.doExtraBlockingModes(ClientConnection.java:236) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.ConnectionBase.send(ConnectionBase.java:269) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.knxnetip.KNXnetIPTunnel.send(KNXnetIPTunnel.java:149) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.onSend(KNXNetworkLinkIP.java:263) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.AbstractLink.send(AbstractLink.java:304) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.link.KNXNetworkLinkIP.sendRequestWait(KNXNetworkLinkIP.java:240) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:466) [228:org.openhab.binding.knx:1.11.0]
at tuwien.auto.calimero.process.ProcessCommunicatorImpl.write(ProcessCommunicatorImpl.java:438) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBinding.writeToKNX(KNXBinding.java:149) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.binding.knx.internal.bus.KNXBinding.internalReceiveUpdate(KNXBinding.java:126) [228:org.openhab.binding.knx:1.11.0]
at org.openhab.core.binding.AbstractBinding.receiveUpdate(AbstractBinding.java:113) [200:org.openhab.core.compat1x:2.2.0]
at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:39) [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:1142) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:?]
at java.lang.Thread.run(Thread.java:745) [?:?]
2018-02-03 19:54:52.124 [WARN ] [.binding.knx.internal.bus.KNXBinding] - Value '0.65' could not be sent to the KNX bus using datapoint 'command DP 0/2/7 EnergyMeter_Power, DPT main 0 id 9.001, low priority' - retrying one time: no confirmation reply received for L-Data.req from 15.1.250 to 0/2/7, low priority hop count 6 repeat tpdu 00 80 00 41
Thanks to all!