KNX Expose not responding to GroupRead

Hi all! Happy to be here.

In the last year, I’ve come a long way with integrating HASS in my home. At this moment, for KNX alone, I have over 300 entities set-up, so things are going well. Love the system!

I’m writing this post because I’m, well, stuck. The story goes like this…

What I’m trying to accomplish is to expose a simple binary entity to the bus. I’ve created it myself using a template and it’s reporting as expected when I look at the developer tools. Basically it takes the status of a Nuki lock (linked via MQTT) and exposes a 1 when the lock is locked, or a 0 when it’s unlocked. Simple.

Now, I want to show this status on a room controller. It requires a 1-bit DPT. So basically, I did this:

  expose:
    - type: 'binary'
      entity_id: binary_sensor.poorten_en_sloten_sloten_status_voordeur_op_slot_binair
      address: 8/2/0
      respond_to_read: true
    - type: 'binary'
      entity_id: binary_sensor.poorten_en_sloten_sloten_status_zijdeur_op_slot_binair
      address: 8/2/1
      respond_to_read: true

This works yes and no. When the state of the entity changes, I can see a GroupWrite message on the bus.

But where it fails is when I send a GroupRead. There’s simply no answer from HASS.
The KNX integration log shows the request is received:

2023-05-11 18:48:32.798 DEBUG (MainThread) [xknx.cemi] Incoming CEMI confirmation: <CEMIFrame code="L_DATA_CON" info="CEMIInfo("")" data="CEMILData(src_addr="IndividualAddress("1.1.250")" dst_addr="GroupAddress("31/0/0")" flags="1001110111010000" tpci="TDataGroup()" payload="<GroupValueRead />")" />

But that’s basically it. Nothing happens. There is no response.

I’ve been tinkering, but no luck so far. Does anyone here have any clue about what is going wrong or what I’m missing?

Some tech specs:

  • Gateway = Thinka KNX
  • Connection type = automatic
  • Using fixed IP addresses
  • Installation type = Home Assistant OS 2023.5.2

Hi :wave:!
You are exposing 8/2/0 and 8/2/1 but the GroupValueRead is for 31/0/0. Make sure your device tries to reads the correct address.

Btw. respond_to_read: true is default anyway - you can safely omit that line.

Sorry, I think I messed up my screenshots and logs. Sp, to clarify…

When I manually lock the door, HASS sends a GroupWrite to the bus with the announcement the door is locked. This is correct.

Now, when I ask for an update with a GroupRead, this happens:

There is no reply from HASS.

The fact that HASS sends out a GroupWrite is great, but to have the system show the correct status of the doors after, for example, a bus reset following a power failure, it needs to respond to GroupRead too.

Good point about the respond_to_read, but let’s state that I’m trying everything I can think about. :slight_smile:

This works perfectly fine on my system.

Your rows in the group monitor are green and have the flag “c”. This means no device on the bus ACKs them.
Also the GroupValueRead telegrams come from the same source (1.1.250) as your GroupValueWrite from HA. Are you using HA to send the reads? Otherwise, there is probably something wrong with your tunnel endpoint addresses.

True, there is no device (yet) on the bus that’s waiting for the values. Would that make a difference?

The tunnel device, a Thinka KNX, has address 1.1.250. Both HASS as well as my ETS are using that device to link the KNX TP-bus to the IP-network.

What does your setup look like? Do you have a different IP gateway for both applications?

Not a different IP gateway.
When you connect to an IP interface it shall assign a unique address to that connection. The tunnel endpoint address.
Some interfaces only allow 1 concurrent connection - then it is ok to assign the address of the device itself. Otherwise it has to use a different address.

My assumption:
There is probably some internal logic preventing the Read from ETS to be forwarded to HA which has the same logical address.
Or it only supports a single connection and disconnects HA while ETS is connected. I don’t know the Thinka device, so can just guess there.

It looks like you’re on to something. HASS indeed sends out a reply when the Group Read is coming from the bus instead of from the network.

I will send an inquiry to Think asking them about this behavior.