Io-homecontrol / velux - something's in the bush

(Antares2001) #109

Hello @isenberg

thanks a lot for your reporting. I’m desperately looking for that solution to control my io-homecontrol Somfy roller shutters and garage door.

Could you please keep us updated, if you figure out more or get it running? That would be really great!

Thanks a lot!

(Ivan Rene Jessen) #111

If you what to control Somfy blinds, then you could use RFXcom, i’m using that and i works great.

Not sure abort your garage door, but you can see if it’s on the list of supported devices.

but i’m wondering if KLF200 can control somfy, then RFXcom could perhaps control my velux roof windows?

(Tobias Isenberg) #112

I will certainly report if I find out more, but this won’t happen before the end of April or beginning of May.

(Tobias Isenberg) #113

The RFXcom binding won’t work for most here since we are looking for ways to control Somfy’s io-Homecontrol devices, not devices with their (older) RTS protocol/communication. Thus the interest in the KLF200 which promises to be compatible with io-Homecontrol.

(Matthias) #114

i also have some Velux an Somfy IO Products, which aren’t integrated to my Openhab system at the moment.
I know the Tahoma, Conexxon and the KLF 200 discussions, but as a lot of other user’s i want to have an offline stearing possibility which is not limited in scenes.

At a internet search i find these “Gateways”, but i can’t read french and Google Translation wasn’t realy helpful…

The name of the system is Energeasy Connect:

For example they have a Din Rail Gateway, which is offerd by Rexel:
Basic Station:

(Matthias) #115

Power Modul:
IO Modul:

or a living room variant:

(Matthias) #116

the old version looks like the old Tahoma Box:

Does anyone have information or experience about these devices?
German Information would be the best…

Thanks a lot.

(Antares2001) #117

That looks interesting, indeed @Hein.

It would be especially interesting whether it a) works offline without a cloud and b) can be integrated in OpenHAB.

(Matthias) #118

at the official io Homecontrol Site:
the brand Overkiz can be found.
There are some descriptions in english. In the flyer for the Din Rails System they write “Online/Offline Mode”.

It seems that overkiz is the producer of the conexxon box. It’s mentioned in the pdf from the “OVERKIZ MINIBOX”.

Does nobody use these devices?

(Tobias Isenberg) #119

Ok, some more news, good and bad. The good new is that I now have a KLF 200 and that it worked—once. I was able to learn the Somfy roller shutters to the KLF in interface mode and could indeed control them via the Web interface. Then I tried to be smart and tried to change the password for the Web interface. Big mistake. Not only does Velux have quite strange ideas about the quality of a password (only letters and digits), but then I could not log in anymore with the new PW. Great. Well, I did a factory reset and now I am no longer able to re-learn the roller shutters. Did anyone have a similar experience?

(Tobias Isenberg) #120

Better news. I solved the problem with not being able to learn after the factory reset. The problem seems to have been that with the first learning cycles the Somfy roller shutter motors had memorized the io ID of the KLF 200 and then no longer responded to a new learning attempt from the KLF 200, which resulted in the messages of no new product being found that I saw. For the record and others to fix the same problem should they run into it, the solution was to reset the Somfy roller shutter motors to factory settings, the guy here explains this process very well:

Then you need to re-program each individual roller shutter again from scratch, again explained very well by the same guy:

After this process was done, I was again able to learn the roller shutter motors using the KLF 200 web interface and also record programs (which in my [English] interface are called programs, not scenes). I can thus confirm that, yes, the KLF 200 is able to learn and control Somfy io roller shutters (the latter so far with the KLF 200 local web interface). Interestingly, Velux themselves tells us on their website that, in order to control their products via an app, we should buy a Somfy TaHoma Connect box (which means for me that io products are and have to be compatible with each other, across companies):

At this point I have been able to confirm points (1) to (4) from my February 16 post, with the small constraint that for (4), one can only run pre-recorded programs/scenes, but one can record as many programs as needed and each roller shutter can be in multiple programs, so that one can have programs for individual roller shutters and programs that combine multiple roller shutters. Sorry for being so verbose, but I wish I had found a detailed description before and from other posts in this thread it seems that others are looking for the same information.

Now I am trying to integrate the bridge into my OpenHAB 2.2 installation (point (5) from the February 16 post). The straightforward approach did not quite work yet, I will keep you updated. Anyway, thanks to all who helped me along so far, it’s really nice to get such good support!


(Tobias Isenberg) #121

Good news, everyone, I now also figured out point (5). Because I am still on the official version 2.2, I had to use org.openhab.binding.velux-2.2.0-SNAPSHOT.jar from (which I had expected and which I simply copied to OpenHAB’s openhab2-addons directory). It now turns out, however, that the documentation on the mentioned GitHub page is incorrect (w.r.t. the needed options to link to the KLF 200 and some of the syntax of the options—in many cases ALLCAPS are needed) at least for this pre-compiled 2.2.0 snapshot version. The correct configuration is as follows (the Expire binding is needed in addition; example with 2 sets of shutters as defined on the KLF 200, with an open and a close action/scene/program each).

*.things file:

Bridge velux:klf200:home   [ bridgeURL="http://192.168.x.y", bridgePassword="velux123", timeoutMsecs=4000, retries=10 ] {
    Thing   scene   RS_Shutters1_Open              [ sceneName="RS_Shutters1_Open" ]
    Thing   scene   RS_Shutters1_Close             [ sceneName="RS_Shutters1_Close" ]
    Thing   scene   RS_Shutters2_Open              [ sceneName="RS_Shutters2_Open" ]
    Thing   scene   RS_Shutters2_Close             [ sceneName="RS_Shutters2_Close" ]

*.items file:

// Velux KLF 200 bridge channels
String  VELUX_BRIDGE_STATUS     "Velux Bridge Status"                { channel="velux:klf200:home:STATUS" }
String  VELUX_BRIDGE_FIRMWARE   "Velux Bridge Firmware version"      { channel="velux:klf200:home:FIRMWARE" }
String  VELUX_BRIDGE_IPADDRESS  "Velux Bridge IP Address"            { channel="velux:klf200:home:IPADDRESS" }
String  VELUX_BRIDGE_SUBNETMASK "Velux Bridge IP Subnet Mask"        { channel="velux:klf200:home:SUBNETMASK" }
String  VELUX_BRIDGE_DEFAULTGW  "Velux Bridge Default Gateway"       { channel="velux:klf200:home:DEFAULTGW" }
Switch  VELUX_BRIDGE_DHCP       "Velux Bridge DHCP Enabled [%s]"     { channel="velux:klf200:home:DHCP" }
String  VELUX_BRIDGE_WLANSSID   "Velux Bridge SSID"                  { channel="velux:klf200:home:WLANSSID" }
String  VELUX_BRIDGE_WLANPASSWD "Velux Bridge WLAN Password"         { channel="velux:klf200:home:WLANPASSWORD" }
Switch  VELUX_BRIDGE_DO_DETECTION "Velux Bridge Detection mode [%s]" { channel="velux:klf200:home:DETECTION" }

// one group for the actual items that talk to the KLF 200
Group gSomfyActual  "Actual Velux/Somfy Action Items"
// one group for the virtual items used for control on the sitemap
Group:Number gSomfyVirtual "Virtual Velux/Somfy Action Items"

// Velux/Somfy scene channels
Switch  SomfyRS_Shutters1_Open  "Somfy Shutters1 Open"  (gSomfyActual) { channel="velux:scene:home:RS_Shutters1_Open:ACTION", expire="1s,command=OFF" }
Switch  SomfyRS_Shutters1_Close "Somfy Shutters1 Close" (gSomfyActual) { channel="velux:scene:home:RS_Shutters1_Close:ACTION", expire="1s,command=OFF" }
Switch  SomfyRS_Shutters2_Open  "Somfy Shutters2 Open"  (gSomfyActual) { channel="velux:scene:home:RS_Shutters2_Open:ACTION", expire="1s,command=OFF" }
Switch  SomfyRS_Shutters2_Close "Somfy Shutters2 Close" (gSomfyActual) { channel="velux:scene:home:RS_Shutters2_Close:ACTION", expire="1s,command=OFF" }

// Velux/Somfy scene actual controls (virtual)
Number  SomfyRS_Shutters1 "Somfy Shutters1" <rollershutter> (gSomfyVirtual) { expire="1s,command=0" }
Number  SomfyRS_Shutters2 "Somfy Shutters2" <rollershutter> (gSomfyVirtual) { expire="1s,command=0" }

*.sitemaps excerpt:

Frame label="Rollershutters" {
	Switch item=SomfyRS_Shutters1 label="Roller Shutters 1" mappings=[1="▼", 2="▲"]
	Switch item=SomfyRS_Shutters2 label="Roller Shutters 2" mappings=[1="▼", 2="▲"]
Frame label="Infos/Settings" {

*.rules file:

rule "Velux-Somfy Action"
	Item gSomfyVirtual changed
	gSomfyVirtual.members.filter( s | (s.state as DecimalType) == 2).forEach[item |
		var actionItem = gSomfyActual.members.findFirst[name.equals( + "_Open")]
	gSomfyVirtual.members.filter( s | (s.state as DecimalType) == 1).forEach[item |
		var actionItem = gSomfyActual.members.findFirst[name.equals( + "_Close")]

Of course, no guarantees, yet things seem to work now for my configuration. There may still be some situations that I need to check, such as what happens when the system start up or reboots, but I hope this helps some of you. So long story short, you can control Somfy io roller shutters from OpenHAB using the Velux KLF 200.



(Andrea Riela) #122

Guys, I’ve a question.

At the moment I have 5 velux + 5 roller shutter managed via KLR-200 (one for each velux). No wires, everything is wireless.

I would like to know if KLF-200 is the right solution to connect everything to OH via experimental binding. In case, how to connect the gateway to all 5 devices … is there a way to “download” the configuration of each KLR-200 in the gateway KLF-200?

I hope this is clear enough

(Kristoffer Ernest) #123


After upgrade to 2.3 lastest snapshot of OH and also the Velux binding, the scene will not start.

All scenes and the bridge is online.

I get following info in the log:

15:59:59.066 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'Bathroom_window_100' received command ON
15:59:59.069 [TRACE] [ab.binding.velux.handler.VeluxHandler] - handleCommand(velux:scene:home:Bathroom___window___100:ACTION,ON) called.
15:59:59.100 [INFO ] [home.event.GroupItemStateChangedEvent] - gVeluxbrigde changed from OFF to ON through Bathroom_window_100
15:59:59.122 [TRACE] [ab.binding.velux.handler.VeluxHandler] - handleCommand(): working with channelId ACTION.
15:59:59.134 [INFO ] [smarthome.event.ItemStateChangedEvent] - Bathroom_window_100 changed from OFF to ON
15:59:59.216 [TRACE] [ab.binding.velux.handler.VeluxHandler] - handleCommand(): working with channelSubId .
15:59:59.233 [TRACE] [ab.binding.velux.handler.VeluxHandler] - handleCommand(): working with PROPERTY_SCENE_NAME Bathroom - window - 100.
15:59:59.250 [TRACE] [ab.binding.velux.handler.VeluxHandler] - handleCommand() cannot handle ON/OFF on channel ACTION.

I have the same items, things etc., which was working correctly under 2.2 of OH and Velux binding.

Any ideas about this issue?

Im still running firmware: on the KLF.



(Stefan) #124

Could you please post your affected areas of ITEMS, RULES and Sitemap?
It will be helped to troubleshoot it

(Kristoffer Ernest) #125

Absolute - sorry about this:


Bridge velux:klf200:home   [ bridgeURL="", bridgePassword="xxxxxxxx", timeoutMsecs=4000, retries=10 ] {  }


//  Group for simulating push buttons
Group:Switch:OR(ON, OFF) gVeluxbrigde "PushButton"
Group window
Group windowclose
Group windowopen
Group windowflow
Group windowhalf

Switch  Bathroom_window_0   "Luk vindue"        (window,windowclose,gVeluxbrigde)     { channel="velux:scene:home:Bathroom___window___0:ACTION" }
Switch  Bathroom_window_flow    "Åben flow"     (window,windowflow,gVeluxbrigde)     { channel="velux:scene:home:Bathroom___window___flow:ACTION" }
Switch  Bathroom_window_50  "Åben 50 %"         (window,windowhalf,gVeluxbrigde)     { channel="velux:scene:home:Bathroom___window___50:ACTION" }
Switch  Bathroom_window_100 "Åben helt"         (window,windowopen,gVeluxbrigde)     { channel="velux:scene:home:Bathroom___window___100:ACTION" }


    rule "PushButton of group velux"
        Item gVeluxbrigde changed
        // waiting a second.
        // Foreach-Switch-is-ON
        gVeluxbrigde.allMembers.filter( s | s.state == ON).forEach[i|
            // switching OFF
                sendCommand(i, OFF)


Text label="Badeværelse" icon="toilet" {
	Switch  item=Bathroom_window_0 mappings=[ON="Klik"] icon="window-closed"
	Switch  item=Bathroom_window_flow mappings=[ON="Klik"] icon="window-closed"
	Switch  item=Bathroom_window_50 mappings=[ON="Klik"] icon="window-ajar"
	Switch  item=Bathroom_window_100 mappings=[ON="Klik"] icon="window-open"

Kept it short and only took the example with controlling the basic of a window.

[velux] New OpenHAB2 binding - feedback welcome!
(Stefan) #126

From my point of view, everything looks so good.
Two things that irritate me a bit:

  1. Are you sure the VELUX Bridge is online?
    I also had some problems with the bridge, at that time the bridge was not reachable.
    Since then, I’ve also integrated the channels (items) on the bridge to see if it’s reachable.

  2. Your scene names Bathroom___window___100 can it be that they are misinterpreted?

15:59:59.069 [TRACE] [ab.binding.velux.handler.VeluxHandler] - handleCommand(velux:scene:home:Bathroom___window___100:ACTION,ON) called.

15:59:59.233 [TRACE] [ab.binding.velux.handler.VeluxHandler] - handleCommand(): working with PROPERTY_SCENE_NAME Bathroom - window - 100.

(Kristoffer Ernest) #128

Yes - the bridge is reachable and online in PaperUI. Im also able to get IP address, firmware etc.
All scenes are also status of online in PaperUI.

When i come home, i will try to make a scene on the KLF, where spaces are not included and test this.

Thanks for your help!

(Tobias Isenberg) #129

Just a quick note about the update to 2.3: I did the OpenHAB update as described in the release notes, then replaced the org.openhab.binding.velux-2.2.0-SNAPSHOT.jar with the org.openhab.binding.velux-2.3.0-SNAPSHOT.jar file, adjusted the configuration of the *.things and *.items files to those mentioned in the documentation for the binding (i.e., the versions of the channels without ALLCAPS in the *.items file and using bridgeIPAddress=“192.168.x.y” instead of bridgeURL=“http://192.168.x.y” in the *.things file), and after restarting the service things work just fine.

If you start fresh from 2.3 then please note that my comment about the documentation of the binding not being entirely accurate is no longer correct, just follow the example from the documentation and things should work. Nonetheless, I like my implementation with the virtual items better than that in the original documentation, but that’s probably in the eye of the beholder. If you want to use my version just adjust the channels and the bridge configuration from my example above according to the documentation and it should work for you.

(Guenther Schreiner) #130

just a question: Is there a reason to avoid ALLCAPS within the items file? At which point is there an invalid description (pls. advise via PM)?


BTW: the binding for 2.4.0-SNAPSHOT is available now.