Replies: 1 comment 2 replies
-
I have the same problem. Is there a solution in the meantime? |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Have you looked for this feature in other issues and in the docs?
Yes, we have briefly discussed this off-topic in another issue (sorry for that). But I'm not sure, if I explained this issue correctly over there - or if I'm misunderstanding something how KNX works. Sorry, @ascillato for bothering you again with this issue.
Is your feature request related to a problem? Please describe.
I'm using multiple Tasmota-based devices in KNX installations (KNX/IP and KNX/TP with a router). Everythings works as expected. E.g., I can switch a Tasmota/Gosund device using KNX/IP on and off via a Berker Switch which is connected KNX/TP. Every message sent on KNX/IP via multicast IP is forwarded to KNX/TP via this router and vice versa.
What is not working is that some KNX tools (e.g., ETS5 or GUIs) check the status of a device using
GetDeviceInfo
. This triggers aDeviceDescriptorRead
message, which is answered by all KNX devices that I've used in different installations. However, Tasmota's KNX implementation does not send replies, which leads to the situation, that some KNX visualization systems report this device as OFFLINE.There seem to be to different types, one using Group Communication and one not:
Describe the solution you'd like
Tasmota's KNX lib should answer these messages.
Describe alternatives you've considered
Ignoring offline devices from which I know that they are based on Tasmota.
Additional context
I've looked into this issue from multiple perspectives. I've seen this happening on OpenHab first, then I've used ETS5's bus monitor and then I tried sending those messages using ETS5's "Right click, get device info" feature.
Working message exchange between ETS5 and an KNX actor:
Request:
Response:
However, for my Tasmota-based devices, they don't send replies:
but I do see corresponding packets being sent on Wifi (using
tcpdump -i enp3s0 -vvXSs 1514 -vvv host 224.0.0.251 and port 3671
) and on the ETS5 bus monitor:To better understand what's happening, I found some source code, how Calimero's KNX implementation performs this check in function public boolean isAddressOccupied(final IndividualAddress devAddr).
It basically invokes
The implementation of public byte[] readDeviceDesc(final Destination dst, final int descType) is as follows:
Here is the code for
sendWait2
:Beta Was this translation helpful? Give feedback.
All reactions