Getting started with rollershutters

The main and first task I wanted to use Openhab (2) is controlling my rollershutters.

For each rollershutter I have two “real” buttons in the room and two relays in my switching cabinet (one for UP and one for DOWN). Currently 24 V are applied to the relays by hard wiring the switches to the relays (the switches prevent from enabling UP and DOWN simultaneously by mechanical design). There is no hardware sensor or input which allows reading the current state of the shutter.

Reading the buttons into OH and controlling the relays from OH already works (by using modbus binding 1.10.0 and wago 750 series clamps), so this should not be discussed here further.

I discovered the Rollershutter item, but is this the right starting point? How or where must I define e.g. the duration

  • for a complete open move
  • for a complete close move
  • to wait between toggling the direction

The next step would be, to enable the relay as long as I press the corresponding button, if I press it e.g. longer than 3 seconds, then latch the press and open/close completely until one of the two buttons is re-pressed to stop the movement etc… How would I achieve this?

Then there would be a next step: How can I store/calculate the current position and synchronize it e.g. if the shutter gets fully opened or close by command.

And how can this be multiplied for several shutters (>20)? Using groups?

I’ve been googling quite a lot, but I did not find a tutorial for this. Is this by default done by everyone else with a completely other hardware setup (knx modules with dedicated functions, just triggering them from OH, etc.)?

How do I get started with rollershutters?

Well, there have been a couple of discussions on the HW side of this, see e.g. this thread.

The bottom line is that no one seems to fully ever have made it, or made it but moved away from this “solution” because of too many problems in daily operation.
The reason is that to store/calculate the position in the OH server won’t work well (at least in the long run).
There’s various reasons why the position OH believes a shutter or blind is in can differ from the real position mainly because OH and most networks to connect OH to devices are not real-time systems with guaranteed (command) transmission in every situation.

Go get an actuator that does this store/calculate for you. There’s ZWave actuators like Fibaro FGRM222, KNX actuators to connect up to 8 rollershutters (various brands, e.g. MDT) and probably some more proprietary systems that’ll do it for you.

Once you use one of these, it’s as simple as to define a rollershutter item.
Whenever you want to control more than one window at a time, you would need to define a group and run a rule to cycle through the group and send commands to the individual group members.

I have several of the KNX 8-channel 230V Shutter actuators from MDT (model JAL-0810.02) and I find them very good. The sheer number of configuration options makes you realise there’s much more to shutter control than just switching a couple of relays. The integration with OpenHab was very straightforward. For someone who already uses KNX I think they’re a great option at roughly 30 EUR per shutter.

I use KNX as my primary control system, even for lighting (via a KNX / DALI gateway) so I already had the ETS software license, the KNX power supply and the KNX / IP interface. Having to invest in those just for shutter control would increase the cost per shutter significantly. I also have no wall switches for the shutters, so OpenHab on a Smartphone / Tablet provides the primary user interface.


i want to do almost the same with 13 rollershutters. Therefore I bought a UniPi Neuron L203 with 36 inputs and 28 relays based on a RasperryPi, controllable with Modbus (local Modbus server). The wiring is also done. Herence changing to other hardware is no option.

The “lowlevel” config with openHAB modbus-plugin is working (I can control the relays with Switch items and see the status of the push-buttons with Contact items).

Now I realized that it is not as easy as expected to do the “logic” part…
Did you find a solution to do the logic part? I guess it must be done “by hand” with rules.