How do I manage the position of my KNX rollershutters?

I have a KNX Binding and I successfully use OpenHAB to switch on and off my lights, and to move my rollershutters up and down. But I don’t seem to find a way to control its postion or to use them in groups or give other commands.
I think the problem starts at the Group Address at the KNX Binding in Paper UI itself. All my rollershutters have this type of Group Address:
My third rollershutter has the GA UpDown 1/0/3, StopMove 1/1/3
My fourth rollershutter has 1/0/4 and 1/1/4
And so on.
How do I find what I can fill in as Group Address for the exact position?
And will that open up a world of possibilities?
I don’t use a *.things, only a *.items and a *.sitemap.

Hardware: Zennio KNX ABB i-bus IPS/S 2.1

2021-02-18 18:03:24.585 [ome.event.ItemCommandEvent] - Item ‘Rolluik_0_Bureau’ received command DOWN
2021-02-18 18:03:24.593 [nt.ItemStatePredictedEvent] - Rolluik_0_Bureau predicted to become DOWN
2021-02-18 18:03:24.605 [vent.ItemStateChangedEvent] - Rolluik_0_Bureau changed from 0 to 100

You have to configure additional GA for position.

Thank you for your answer. I will have to do that in ETS, not OpenHAB, I presume?

You have to link a group address to the position object of your actuator in ETS and then link your roller shutter channel to it in OH.
See the roller shutter documentation for the KNX binding.

To have them act in groups there are basically two options:

  • link them on KNX level by using the same group address for multiple actors objects (e.g.for all up/down objects) and link this GA to any item in OH.
  • Link by creating group items in OH and have the items become a member of the group

Advantage of solution 1: Your can put that address on a switch and trigger it without OH running.
I have set up both solutions, the KNX one as a backup in case OH fails.

In fact, you can use both options at the same time. But in question of position, it’s unusual to control absolute position directly in knx.
A more common way to control position of multiple blinds in knx would be to configure knx scenes.

So, I’ll recommend two exclusive GA per actuator channel, one for control position, the other for position status. This way you’re able to control the position and get the actual position, may it be a command originated from openHAB or from knx.

Actually I use the absolute positioning through Alexa voice commands and (very seldom) in my UI.
With button switches it’s impossible (or you have to buy expensive wall controllers) and having scenes is the way to go. But utilizing my Echo it is quite useful.
I second your setup with separate addresses for position and setpoint, I had proven useful for me that way too.

Thank you both for your inspiration. I found out in ETS that there are no configured group addresses for position and positioning. I will try to add them and then add those addresses in the OpenHAB binding.

Sorry to hijack this thread, but mainly directed @Oggerschummer and @Udo_Hartmann : how would I define the absolute position in knx, and how (if at all) do I define the setpoint / position status?

as a sample definition from my setup:

Type rollershutter :  WJ_EG_L "WJ_EG_L" [ upDown = "2/0/0", stopMove = "2/0/1", position = "2/0/2" ]

2/0/2 would be the absolute position . where does the status of the position go to? Like this, I assume?

position = "2/0/4+2/0/2"

Thanks for your help!

Some example from my OH3-Installation:

label: KNX x.x.x Rademacher Rollotube-X somewhere
thingTypeUID: knx:device
  pingInterval: 6000
  address: x.x.x
  readInterval: 3600
  vendor: Rademacher
  fetch: false
bridgeUID: knx:ip:Weinzierl730
location: Somewhere
  - id: SHUTTER
    channelTypeUID: knx:rollershutter
    label: Rolladen
    description: null
      upDown: 3/x/x
      stopMove: 4/x/x
      position: 13/x/x+<12/x/x
    channelTypeUID: knx:contact
    label: Rolladen Fehler
    description: null
      ga: 5/x/x

“<” is the key to success.

I’m using scenes so OH3 is always guessing if they are open or closed.
This is the reason why I’m also using the absolute position now, in this case GA “<1/1/12”.
But OH3 is still guessing, e.g. first it jumps from 0%->100%, after a stop between it jumps back from 100% to e.g. 35%. I think it is the autoupdate features. Can I somehow disable it in OH3?

  • id: RolloCoach
    channelTypeUID: knx:rollershutter
    label: Rollo Coach
    description: “”
    upDown: 1/1/10
    stopMove: 1/1/11
    position: <1/1/12

If you are working with absolut positions, the OH3 MainUI can not handle this. A value > 0% and < 100% always completely removes the rollershutter icon in the MainUI.

Maybe another approach is even better. Is something like this is working?
upDown: 1/1/10<1/1/13

The GA 1/1/13 would send a 0 for up, and a 1 for down.

Set Item Metadata Auto Update to “Don’t force auto-update” (i.e. no minus and no hook)

I have a related problem with KNX rollershutter, which I hope someone can assist with.

I have this my Things file:

        Type rollershutter : WindowMaster      "Light"       [ upDown="1/0/2+1/0/3", stopMove="1/0/4", position="1/0/1" ]
        Type rollershutter : WindowMaster1     "Light"       [ upDown="<1/0/2+<1/0/3" ]
        Type rollershutter : WindowMaster2     "Light"       [ stopMove="<1/0/4" ]
        Type rollershutter : WindowMaster3     "Light"       [ position="<1/0/1" ]

where #1, 2 and 3 is simply to try some alternatives.

Here is a snippet from ETS diagnostics

#	Time	Service	Flags 	Prio	Source Address	Source Name	Destination Address	Destination Name	Hop Count	Type	DPT	Info
11	19-01-2023 20:22:28,739	from bus		Low	1.1.23	BE-JTA5504.01 Blind Push Button Smart 55 with time switch and colour display	1/0/2	Up	6	GroupValue_Write		$01 | Down
12	19-01-2023 20:22:34,810	from bus		Low	1.1.23	BE-JTA5504.01 Blind Push Button Smart 55 with time switch and colour display	1/0/4	Stop	6	GroupValue_Write		$01 | Start
13	19-01-2023 20:22:34,857	from bus		Low	1.1.4	Satel WindowMaster	1/0/1	PositionFeedback	6	GroupValue_Write		$40 | 25%

My problem is that I never get any start/stop values or up/down values. Rows in OH event.logs file only shows update of the actual position. It is the items, which are connected to “Windowmaster” and “Windowmaster3”. As you can see from the ETS log the GA mentioned is actually updated.
Can anyone spot, what I have missed?

Why do you use upDown with 2 group adresses? Try this: (1/0/1 - set % of rollershutter, 1/0/5 it`s feedback % )

        Type rollershutter : WindowMaster      "Light"       [ upDown="1/0/2", stopMove="1/0/4", position="1/0/1+<1/0/5" ]

I don’t get this setup.

  1. WindowMaster: Why link two group addresses in upDown (as Pavel mentioned) ? You only need the one that is is linked to the knx communication object for up and down movement as defined in ETS.
    As always with knx only the first GA linked will be written to.
  2. WindowMaster2: Why two addresses again? The “<” makes no sense here.
  3. The “Light” seems to be wrong as well btw.

Taken from my YAML example from above (I use the first part of the GA to differentiate the kind of communication object/functionality that lies behind it):

configuration: upDown: 3/x/x stopMove: 4/x/x position: 13/x/x+<12/x/x

3/x/x is the GA to trigger the movement, 3/x/x ist linked to the communication object for stoping it. 13/x/x is the for setting a position and 12/x/x is the one used to have the actual position (status) of the shutter.

So in your notation this would look somehow like this:

 [ upDown="3/x/x", stopMove="4/x/x", position="13/x/x+<12/x/x" ]

Nothing more is required. If it does not work I guess you are using the wrong or misconfigured group addresses.

@Pavel , @Oggerschummer
Thank you both for your input, which I will look into. Unfortunately, I am travelling now with no access to my KNX setup, so it will take 1-2 weeks before I can try it out and respond.

Again, thank for your feedback. My things file now looks like this:

Type rollershutter : WindowMaster "Light" [ upDown="1/0/2", stopMove="1/0/4", position="1/0/0+<1/0/1" ]

The item file is:

Rollershutter WindowMaster       "WindowMaster"             <blinds>         {channel="knx:device:bridge:generic:WindowMaster"}

and the Group Addresses from ETS looks like this:

A snippet from the ETS Diagnostics shows this:

#	Time	Service	Flags 	Prio	Source Address	Source Name	Destination Address	Destination Name	Hop Count	Type	DPT	Info
2	02-03-2023 21:19:31,657	from bus		Low	1.1.23	BE-JTA5504.01 Blind Push Button Smart 55 with time switch and colour display	1/0/2	Up	6	GroupValue_Write		$00 | Up
3	02-03-2023 21:19:53,005	from bus		Low	1.1.23	BE-JTA5504.01 Blind Push Button Smart 55 with time switch and colour display	1/0/4	Stop	6	GroupValue_Write		$00 | Stop
4	02-03-2023 21:19:53,063	from bus		Low	1.1.4	Satel WindowMaster	1/0/1	PositionFeedback	6	GroupValue_Write		$00 | 0%

The ETS Diagnostics clearly shows:

  • an Up command is sent to 1/0/2
  • a Stop command is sent to 1/0/4

The command “tail -f events.log” never shows Up or Stop being sent to my WindowMaster item. It only shows “Item ‘WindowMaster’ changed from 100 to 0” or “Item ‘WindowMaster’ changed from 0 to 100” depending on the direction.

I would like to be able to detect the commands up/down or stop in openhab. I have found a workaround based on the changes in actual position, where I can derive up/down + stop physical press. But it is a more clean solution to get it directly from the KNX bus.


What reason is to know about it?

Easy done :slight_smile: simply use the correct Channel Type, this is rollershuter-control, NOT rollershutter.

When using the *-control channel, openHAB will act as an actuator, not as the switch (i.e.: an incomming message will be interpreted as a received command, while a non-control channel will be interpreted as an update), so you only need a rule with trigger received command like this:

    Item MyRollershutterControlItem received command
    switch(receivedCommand) {
        case   UP : {...}
        case STOP : {...}
        case DOWN : {...}
1 Like

I would like to know this, because I have extended status information in my UI. Very often you only have opened/closed or maybe actual position state. However, I also have current actual live movement. So if the blinds are up, and someone press the physical down button, the blinds begin moving down. In my UI, I am then showing “closing…” until either a Stop or position state is all down.

My UI is Apple Homekit which supports a variety of extended live status for hardware, which is quite nice.

Ok, can you give me name of you knx shutter controler? Some of them have separate objects like moving and stoping.

As I remember, Homekit starts show status like “moving” when get command to open, and stop it when got status of position.