KNX Rollershutters and general position command [SOLVED]

  • Platform information:
    • Hardware: OrangePi+2 2Gb RAM/armv7l
    • OS: ARMBIAN 5.60 stable Debian GNU/Linux 9 (stretch) 4.14.70-sunxi
    • Java Runtime Environment: OpenJDK Client VM (Zulu Embedded (build 25.152-b76, mixed mode, Evaluation)
    • openHAB version: 2.3.0
  • Issue of the topic: How can I set a general positionnal command to all my rollershutters

Hi all,

I’ve just finished to set up my configuration in a brand new 2.3.0 OpenHAB, after a crash with the eMMC of my OrangePi+2, that was running OpenHAB 2.2 before.

I’ve successfully recovered the usage of my supervision under PaperUI.

I just can’t find how to set up a general positionnal command for all my rollershutters (neither in OpenHAB 2.3.0, nor in OpenHAB 2.2.0/KNXv1).

I defined all my rollershutters individualy (in .things file, and in .items file) and they are all working individually (via the rollershutter item in a sitemap).

All my ga’s for rollershutters are of this form :
-2/0/x : upDown setting
-2/1/x : stopMove setting
-2/2/x : position setting
-2/3/x : listeningGA for state

I also have a general ga for setting a precise position for all my rollershutters, stored in ga 0/0/3. For this, I defined a generic device in .things file, with a definition like this :

	Thing device generic [ address="1.0.100",fetch=false,pingInterval=300,readInterval=3600 ]
			Type number	:	PctVolets	"% Volets [%d %%]"	[ ga="5.001:<0/0/3" ]

In my .things file, I defined a rollershutter like this :

Type rollershutter 	:	VRGrenier		"Grenier"		[ upDown="2/0/17+<2/3/17", stopMove="2/1/17", position="2/2/17+<2/3/17" ]

In ETS, in the precise position parameter object of every rollershutter, both ga’s 2/2/x and 0/0/3 are set up.
Via a zennio Z41 control pannel, I’m able to set a value to the 0/0/3 ga, and all my rollershutters move to the correct position.

To reproduce this in OpenHAB, I would like to set a slider in a sitemap, like this :

Slider item=PctVolets label="% volets [%d %%]" icon="blinds"

Unfortunately, this doesn’t work at all. The number PctVolets is set up with the position I want, but no rollershutter move.

Any explanation ?

Thanks in advance for all.

Does ETS Bus Monitor show any telegrams being transmitted to the 0/0/3 GA ? (or anything useful in openhab.log?)

There is another way to achieve what you are looking for:

  1. Create a Group called gShutters
Group:Rollershutter		gShutters	"Master Shutters Control"	(All)
  1. Add all individual Rollershutter Items as members to this Group
    (you didn’t give us an example of one of your items, although your post is very well structured with info)

  2. Use a Slider in your sitemap pointing to the Group Item

Slider item=gShutters

Extra tips:
a) You can also use a state aggregation function on the gShutters Group if you would like:

Group:Rollershutter:AVG		gShutters	"AVG of Shutters [(%d)]"	(All)

b) You can have presets in your sitemap:

		Text label="Master Shutters Control" icon="blinds" {
			Switch item=gShutters mappings=[100="All Closed"]
			Switch item=gShutters mappings=[0="All Open"]

You have to use either a rollershutter channel or at least a dimmer channel to send percentType numbers.

But the first step is, to get positioning to work for single roller shutters.

Type rollershutter 	:	VRGrenier		"Grenier"		[ upDown="2/0/17+<2/3/17", stopMove="2/1/17", position="2/2/17+<2/3/17" ]

This can’t be correct, as UP/DOWN is DPT1 and position is DPT5.001. I’m pretty sure your roller shutter actuators will transmit the position, not the direction, so the correct configuration would be

Type rollershutter 	:	VRGrenier		"Grenier"		[ upDown="2/0/17", stopMove="2/1/17", position="5.001:2/2/17+<2/3/17" ]

Given a linked item

Rollershutter myShutter "Shutter [%d %%]" { channel="knx:device:bridge:generic:VRGrenier" }

You should be able to send a command for absolute position 66% by using


Please be aware that channels of things must be linked to items if you want to use them. A sitemap will only refer to items, never to channels.

When you have several roller shutters, it’s easy to group them and use the group to send commands to, but it’s also possible to send commands to a knx group:

Type rollershutter	:	rPctVolets	"% Volets [%d %%]"	[ position="0/0/3" ]

It’s not possible to get a correct status for a write only GA!
An item has to be linked to this channel:

Rollershutter PctVolets "% Volets [%d %%]" { channel="knx:device:bridge:generic:rPctVolets" }

Please avoid double use of names even if possible, as it’s not clear if you want to use a channel or an item.

Very correct!

He is using readInterval=3600 on the Thing with a position setting GA… This won’t work. He needs another “main” Status GA (if this possible in ETS… not sure).

Here is also one example from my setup:

		Thing device GW90857_11 "Shutter Actuator 11" @ "KNX" [ address="1.1.11", fetch=false, pingInterval=600, readInterval=0 ]
			Type	rollershutter :	Ch_111		"Channel 11.1"		[ upDown="2/1/8", stopMove="2/1/9", position="2/3/18+<2/2/18" ]
			Type	rollershutter :	Ch_112		"Channel 11.2"		[ upDown="2/0/0", stopMove="2/0/1", position="2/3/0+<2/2/0" ]
			Type	rollershutter :	Ch_113		"Channel 11.3"		[ upDown="2/0/2", stopMove="2/0/3", position="2/3/2+<2/2/2" ]
			Type	rollershutter :	Ch_114		"Channel 11.4"		[ upDown="2/0/4", stopMove="2/0/5", position="2/3/4+<2/2/4" ]

No, there is only one main GA per communication object, in fact, as this special GA is to command more than one device, which one should tell its position? How to display the position when some shutters are open and some are not?

In fact, I have set some knx roller shutter groups in my home, as there is only one wall switch for a pair of shutters (especially the kid’s rooms), and those wall switches display the status for the first shutter, not the second one.
So, I could move the second shutter up through openHAB, and the wall switch would still state a closed shutter, but for me this is an acceptable issue, as the shutters will almost ever be at the same position.

Speaking of openHAB, one could calculate the average and set the status for a W/O Item, but why? It’s very clear that this item simply has no status at all, it’s only to command all shutters with one GA. The status will be displayed for each single shutter, so there is no need for a virtual (and in most cases inaccurate, if not completely wrong) grouped status.

1 Like

Exactly my concern also.

Correct. Also, in my case… I don’t really look at the AVG value… it’s pointless :slight_smile:
I just have it there for no reason :stuck_out_tongue:

Hi everyone,

First of all, I would like to thank all of you for your concern and for all the tips you gave me during this night !

@Udo_Hartmann thank you for the correct KNX settings of a rollershutter item, according to my GA’s organization.

Thank’s also for the advices for naming all objects in my OpenHAB configuration. I will rewrite my files so they will certainly be more readable and easier for future maintaining. Of course, my items are linked to channels, and all rollershutter items a working well in my sitemap under PaperUI. In fact, I wasn’t displaying the position in each individual label of each rollershutter.

@Dim I will explore the possibility of grouping my rollershutters in OpenHAB. In my KNX installation this is done using specific KNX GA and is perhaps not the best in OpenHAB. I also saw the possibility to set presets. My use of this is for closing rollershutters to a fixed position, if the temperature of some rooms reaches a certain level, in order to stop sun energy. My house is very well insulated (built with MAGU technology) and I don’t want to have 30°C when I come back home in the evening.

I will try this at the end of my day, I’m at work and I cannot work on my installation from here.

I will keep you informed.

1 Like

Hi everyone,

I promised I would give you an update.

So I rewrote my files, according to @Udo_Hartmann’s advices :

  • Channels are now named differently as items
  • Rollershutters definition is now correct in .things file :
Type rollershutter 	:	cVRGrenier		"Grenier"		[ upDown="2/0/17", stopMove="2/1/17", position="5.001:2/2/17+<2/3/17" ]
  • Rollershutter item show now positional information :
Rollershutter 	VRGrenier		"Grenier [%d %%]"	<blinds> (gVRZoneEtage,gVRMaisonEst)	{ channel="knx:device:ABBIPS2_1:MaxInBox16_3:cVRGrenier" }

According to @Dim’s advices also, I created a group for my rollershutters (3 groups in fact because I want to shut them partially depending on whether the sun is east, south or west), and a slider in my sitemap :

Slider item=gVRMaisonEst label="Position volets EST" icon="blinds"

Everything works as I wanted to.

Thank you for this course about writing OpenHAB parameters.

1 Like


I am looking forward to seeing your rules so I can get some ideas also :slight_smile:

Excellent ! Have fun! :+1:

Hi @Dim

For the rules, I don’t know exactly how I will do this. For me there is an easy way and a much more complicated.

To start, I would look at the temperature of my living-room (which is in front of the south). And during a period (between 11AM and 6PM for example), if the temperature reaches 23°C, close partially the rollershutters at 50%. From 11AM to 1PM, I would close the rollershutters at the east and the south of the house. From 1 PM to 3 PM, I would only close the south ones. And from 3 PM to 6 PM, I would close the south and the west ones. Finally, at 2PM, I could open the east ones because the sun isn’t at the east anymore.

This easy way is empiric. The right way to do this according to me would be to use some informations, like the sun course in the sky, during the differents seasons, the real orientation of the house, or the outside brightness I would use to close the rollershutters a bit more if it’s really sunny.

I’m starting to experiment the easy way.

1 Like

You could automate these actions if you wanted… It’s not going to be easy to define everything but I am sure that you can find a way.

Something interesting here: Show Current Sun Position and Shadow of House (Generate SVG)

hi, i have a z41

what port and ip did you setup for connection?