Connecting KNX wall buttons to Velux blinds

have 18 Velux window blinds (inside in and outside windows) that I would like to control through KNX push buttons mounted on the wall in each correspondingly named room. Right now they are configured through the velux controller and all work in home assistant.

velux blinds are named: cover.<room-name >-< inside | outside >

Buttons in KNX are defined in ETS as blind control element (short press/: up/down + long press: start/stop with the appropriate knx datatypes)

I have three questions:

  1. how to define the knx button setup for a combination of knx<—>velux setup? It seems like expose but that only works for sensors and switches or?
  2. do I need to define an automation or can the system somehow understand that the knx cover entity is equivalent to the velux entity?
  3. I guess this will be a templated automation instead of rolling out 18 individual automatons. Has anyone got a working equivalent or pointers?

Thanks for any pointers that might help.

1 Like

expose is for HA → Knx, not the other way around. So you could expose the covers status if you want.

To control a HA entity from Knx, create an automation using knx_event and map destination addresses to entities and payloads to service calls. See KNX - Home Assistant

Ad 2: a Knx cover entity is for controlling Knx covers from HA, not controlling HA covers from Knx.

Ad 3: Search the templates documentation for choose.

Thanks for the pointers. If I understand correctly adding the following should let me listen for knx_event messages

knx:
  event:
    # up/down addresses
    - address:
        - "6/7/21"
        - "6/7/11"
    # stop/move
    - address:
        - "6/7/22"
        - "6/7/12"

I see the group telegrams on the bus, but not anything inside the developer tools event monitor of home assistant. Any pointers?

knx:
  event:
    - address:
        # up/down addresses
        - "6/7/21"
        - "6/7/11"
        # stop/move
        - "6/7/22"
        - "6/7/12"

I’m not sure if you can use a key multiple times or if the last one replaces the former.

Have you restarted HA or reloaded the KNX integration (from integrations panel)?

thanks - can confirm it’s working now, and does indeed pick up all addresses in the list.

1 Like

I receive events, but as the documentation mentions, unless one sets the type you receive a null value:

event_type: knx_event
data:
  data: 0
  destination: 6/7/11
  direction: Incoming
  value: null
  source: 2.1.62
  telegramtype: GroupValueWrite
origin: LOCAL
time_fired: "2023-05-05T22:31:13.730638+00:00"
context:
  id: 01GZQ0MVJ2Q6GWFD38EXM0H80S
  parent_id: null
  user_id: null

So I’ve tried setting the DPT: event:

    # up/down addresses
    - address:
        - "6/7/21"
        - "6/7/11"
      type: "DPT 1.008"

but receive the following log message:

Invalid config for [knx]: type 'DPT 1.003' is not a valid DPT identifier for DPTBase. for dictionary value @ data['knx']['event'][0]['type']. Got 'DPT 1.003'. (See ?, line ?).
interestingly enough if I use DPT 9.001 the config validates.

Ultimately I just need the DPT to show up as a switch. Any pointers on what to set for the DPT type in the event definition?

Use the raw payload data for DPT 1, 2, 3. It’s an integer. For DPT 1 it will be just 0 or 1. There is no need to decode that further.

DPT 9 validates since that is a valid decoder (see list of sensor types in documentation). It will raise an error on runtime (when receiving telegrams) as the payload length doesn’t fit DPT 9.

you are right - I was seeing

value: null

and missing the

data: 1

in my event log.

Hi Simon,

Did you manage to to get this working in the end? I’m trying to do the same thing with 2 Velux MML solar blinds. I have them working in Home Assistant trough the integration and the Velux KLF200 gateway. I don’t want to spend 4 KNX actuator ports on this but still would like to use the knx buttons in the room to open and close. Was thinking longs press to fully close, short press to open. My idea was to use 2 binary switch group addresses for that (long and short press) and link them to the serivce calls in home assistant with an automation.

You can use Knx Interface device trigger for this now instead of knx_event

1 Like