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

Hi,

There is a new firmware version out at https://updates2.velux.com/, verison 0.2.0.0.71.0

I was wondering if somebody has already tried that one ?

I just upgrded mine, looked like it went fine but actually now only WiFi works.
I see that it gets an IP from DHCP on the LAN interface, I can ping it, but it never listens on port 80.

Hence I am a bit lost here. Trying to reflash the latest firmware fails with the message “outdated firmware”.

Any help or idea is much appreciated.

Hi,

this sounds really bad.

On my side after two unsuccessful tries via LAN I tried the upgrade via WLAN:

it immediately succeeded with a final reboot after 14 minutes. Every part of

the recent configuration was maintained, the identification of products works fine.

BUT: the web server does not respond on the LAN interface. Only listening on

the WLAN (within the first minutes).

Best regards,

Guenther

Hi,

That’s exactly the same as I got.
I tried to contact their support via their web-form last week, no reply yet.

In case you get somewhere, please do let me know!
Mine is unusable right now :frowning:

Hello guys,

As you already have noticed VELUX has released a software update for KLF200. Unfortunately, we are still in the progress of setting up our systems to provide a pleasant experience for this, so we have some work to do. Currently we are not able to provide the changelogs for the updates in a way that we would like to do, but I am providing it here for you.

But, the main change is that we have seen your interest in your use of the KLF200 and would like to provide you with a much better way of interfacing to the KLF200. The API you are currently using, was never intended for this purpose and due to security issues, we had during the last development cycle, we had to close the HTTP configuration interface on the ethernet interface. To make sure you are still able to use KLF200 to integrate to your systems, we are in the process of releasing an official API description, that can be used and is intended to interface to the KLF200. This API will make it possible for you to make a much better integration to the VELUX system. As mentioned our internal systems is not quite ready, but I have the opportunity to forward it here. I am also including a number of examples in Python that you might find helpful. When we are ready with it, I will send a link to the official VELUX download page, where you can find the same information.

Edited October 7, 2018
Here is a link to our official page with changelog and API dokumentation.

4 Likes

I assume this will require a new openhab binding?

Yes.

The negative point is, that the protocol has been changed from AJAX to SLIP (RFC 1055). Therefore this will
lead to a changed binding.
The positive point is, that there are a lot of different methods which will extend the functions of the binding.

1 Like

We´re counting on you, Guenther :slight_smile:

3 Likes

Looking forward to this new API

Hi

I’ve just dropped your V2.3 snapshot Binding into the Addons folder (alongside another binding), but nothing appears in PaperUI.

Do I need to do something more than just add the jar file?

Your GitHub page mentions a config file with parameters, but there isn’t an example file for me to start from.

Cheers,

Stuart

Update

I’ve just reread the whole thread and now have a better understanding of the changes.

I’m happy to wait as long as needed :smile:

Good luck

This is probably the best thread to use:

As for you question. I have no idea… I just searched for my cfg file, but I cant find it… I wonder how the heck I manaed to get it to work. It´s still working though.

1 Like

Thanks Kim

If you suddenly figure out what you did, please do let us know :smile:

Cheers,
Stuart

Ahh… I think you can add the KLF200 manually… If you got the binding installed, go to Things (In paperUI), and add it manually, by pressing the + and choose Velux… Add your KLF200 in there.

Hi

That’s the part that’s causing the issue.

I see all other bindings, but not the Velux one.

I’ve tried both V2.3 & V2.4

As well as a OpenHab2 restart

Hmm so you havn´t got the binding installed!

I remember having the same issue first time. I had to download it again (using another way of downloading), cause the jar file was somehow corrupt. After that, the binding installed just fine and have been working ever since. (I think I wrote a message about it in the other Velux binding thread).

I recall reading someone runing openhab ina docker having problems as well. I´m using an RPi running the apt-get openhabian (hasslefree). 2.3.0 stable.

1 Like

Arrrr okay :slight_smile:

That’s easy to try :smile:

FYI

Previously, I simply used the wget method direct to the GitHub file

Update

This seems to be the problem.

If I issue

wget https://github.com/gs4711/org.openhab.binding.velux/blob/master/org.openhab.binding.velux-2.3.0-SNAPSHOT.jar

I get a 34KB file.

If I follow that link in a browser, it downloads a jar file of 94KB.

So…

I issued

wget https://github.com/gs4711/org.openhab.binding.velux/blob/master/org.openhab.binding.velux-2.3.0-SNAPSHOT.jar?raw=true

But I get a 94KB file, with this filename
org.openhab.binding.velux-2.3.0-SNAPSHOT.jar?raw=true

I’ll rename it and see what happens…

That’s fixed it :smile:

Thanks for your help :smile:

Lesson learnt… Check the file size of downloaded files

Yeah I´d struggle with that as well… Dont know why it happened.
At least you got it working.

1 Like

Hi Stuart,

I share you my configuration

I followed the quick start https://github.com/gs4711/org.openhab.binding.velux, and the velux binding is working great.

My configuration:
KLF200 Firmware: 0.1.1.0.41.0
Raspberry pi 2
openHAB 2.3.0-1
Copyed de binding with windows explorer: \openHAB-share\openhab2-addons\org.openhab.binding.velux-2.4.0-SNAPSHOT.jar

*.things file
Default velux password velux123.
Use IP address instead of URL (give your KLF200 a static IP Adress)

//Velux
Bridge velux:klf200:home   [ bridgeIPAddress="192.168.1.100", bridgeTCPPort=80,bridgePassword=" velux123",timeoutMsecs=5000, retries=9 ]
    {
    //Ramen
    Thing   scene   grWindowClosed    [ sceneName="Gr_raam_000" ]
    Thing   scene   grWindowUnlocked  [ sceneName="Gr_raam_005" ]
    Thing   scene   grWindow050       [ sceneName="Gr_raam_050" ]
    Thing   scene   grWindowOpened    [ sceneName="Gr_raam_100" ]
 
    Thing   scene   klWindowClosed    [ sceneName="Kl_raam_000" ]
    Thing   scene   klWindowUnlocked  [ sceneName="Kl_raam_005" ]
    Thing   scene   klWindow050       [ sceneName="Kl_raam_050" ]
    Thing   scene   klWindowOpened    [ sceneName="Kl_raam_100" ]

    Thing   scene   allWindowClosed   [ sceneName="Alle_ramen_000" ]
    Thing   scene   allWindowUnlocked [ sceneName="Alle_ramen_005" ]
    Thing   scene   allWindow050      [ sceneName="Alle_ramen_050" ]
    Thing   scene   allWindowOpened   [ sceneName="Alle_ramen_100" ]

    //Blindings
    Thing   scene   allBlindingClosed [ sceneName="All_Blinding_000" ]
    Thing   scene   allBlindingOpened [ sceneName="All_Blinding_100" ]
    
    Thing   scene   grBlindingClosed  [ sceneName="Gr_Blinding_000" ]
    Thing   scene   grBlindingOpened  [ sceneName="Gr_Blinding_100" ]
 
    Thing   scene   klBlindingClosed  [ sceneName="Kl_Blinding_000" ]
    Thing   scene   klBlindingOpened  [ sceneName="Kl_Blinding_100" ]

}

*.items file

/*Velux*/
    //Scenes ramen
    Switch  All_raam_OPEN      "Alle ramen open"         (gV)       { channel="velux:scene:home:allWindowOpened:action" }
    Switch  All_raam_UNLOCKED  "Alle ramen ventilatie"   (gV)       { channel="velux:scene:home:allWindowUnlocked:action" }
    Switch  All_raam_050       "Alle ramen 50%"          (gV)       { channel="velux:scene:home:allWindow050:action" }
    Switch  All_raam_CLOSED    "Alle ramen dicht"        (gV)       { channel="velux:scene:home:allWindowClosed:action" }

    Switch  Gr_raam_OPEN      "Gr raam open"             (gV)       { channel="velux:scene:home:grWindowOpened:action" }
    Switch  Gr_raam_UNLOCKED  "Gr raam ventilatie"       (gV)       { channel="velux:scene:home:grWindowUnlocked:action" }
    Switch  Gr_raam_050       "Gr raam 50%"              (gV)       { channel="velux:scene:home:grWindow050:action" }
    Switch  Gr_raam_CLOSED    "Gr raam dicht"            (gV)       { channel="velux:scene:home:grWindowClosed:action" }

    Switch  Kl_raam_OPEN      "Kl raam open"             (gV)       { channel="velux:scene:home:klWindowOpened:action" }
    Switch  Kl_raam_UNLOCKED  "Kl raam ventilatie"       (gV)       { channel="velux:scene:home:klWindowUnlocked:action" }
    Switch  Kl_raam_050       "Kl raam 50%"              (gV)       { channel="velux:scene:home:klWindow050:action" }
    Switch  Kl_raam_CLOSED    "Kl raam dicht"            (gV)       { channel="velux:scene:home:klWindowClosed:action" }

    //Scenes bindings
    Switch  All_blinding_OPEN    "Alle bindings open"    (gV)       { channel="velux:scene:home:allBlindingOpened:action" }
    Switch  All_blinding_CLOSED  "Alle bindings dicht"   (gV)       { channel="velux:scene:home:allBlindingClosed:action" }

    Switch  Gr_blinding_OPEN    "Gr binding open"        (gV)       { channel="velux:scene:home:grBlindingOpened:action" }
    Switch  Gr_blinding_CLOSED  "Gr binding dicht"       (gV)       { channel="velux:scene:home:grBlindingClosed:action" }

    Switch  Kl_blinding_OPEN    "Kl binding open"        (gV)       { channel="velux:scene:home:klBlindingOpened:action" }
    Switch  Kl_blinding_CLOSED  "Kl binding dicht"       (gV)       { channel="velux:scene:home:klBlindingClosed:action" }

    //Satus KLF200 
    String  V_BRIDGE_STATUS     "Status"        { channel="velux:klf200:home:status" }
    String  V_BRIDGE_FIRMWARE   "Firmware"      { channel="velux:klf200:home:firmware" }
    String  V_BRIDGE_IPADDRESS  "IP"            { channel="velux:klf200:home:ipAddress" }
    String  V_BRIDGE_SUBNETMASK "Subnet"        { channel="velux:klf200:home:subnetMask" }
    String  V_BRIDGE_DEFAULTGW  "Gateway"       { channel="velux:klf200:home:defaultGW" }
    String  V_BRIDGE_WLANSSID   "SSID"          { channel="velux:klf200:home:WLANSSID" }
    String  V_BRIDGE_WLANPASSWD "WLAN Pas"      { channel="velux:klf200:home:WLANPassword" }
    String  V_BRIDGE_SCENES     "Scenes "       { channel="velux:klf200:home:scenes" }

    Group:Switch:OR(ON, OFF)           gV             "PushButtonVelux"                    (Home)

*.sitemap file

 Frame label="Velux ramen" 
            {                
                Switch  item=All_raam_OPEN       icon=window
                Switch  item=All_raam_UNLOCKED   icon=window
                Switch  item=All_raam_050        icon=window
                Switch  item=All_raam_CLOSED     icon=window

                Switch  item=Gr_raam_OPEN        icon=window
                Switch  item=Gr_raam_UNLOCKED    icon=window
                Switch  item=Gr_raam_050         icon=window
                Switch  item=Gr_raam_CLOSED      icon=window
                
                Switch  item=Kl_raam_OPEN        icon=window
                Switch  item=Kl_raam_UNLOCKED    icon=window
                Switch  item=Kl_raam_050         icon=window
                Switch  item=Kl_raam_CLOSED      icon=window
            }  
            
            Frame label="Velux blindings" icon="blinding"
            {
                Switch  item=All_blinding_OPEN    icon=blinds
                Switch  item=All_blinding_CLOSED  icon=blinds

                Switch  item=Gr_blinding_OPEN     icon=blinds
                Switch  item=Gr_blinding_CLOSED   icon=blinds

                Switch  item=Kl_blinding_OPEN     icon=blinds
                Switch  item=Kl_blinding_CLOSED   icon=blinds              
            }
           
            Frame label="Velux KLF200 status" 
            {
                Text    item=V_BRIDGE_STATUS      icon=none
                Text    item=V_BRIDGE_FIRMWARE    icon=none
                Text    item=V_BRIDGE_IPADDRESS   icon=none
                Text    item=V_BRIDGE_SUBNETMASK  icon=none
                Text    item=V_BRIDGE_DEFAULTGW   icon=none
                Text    item=V_BRIDGE_WLANSSID    icon=none
                Text    item=V_BRIDGE_WLANPASSWD  icon=none    
                Text    item=V_BRIDGE_SCENES      icon=none
            }

*.rule file

rule "PushButton of group gV"
  when
    Item gV changed
  then
    // waiting a second.
    Thread::sleep(4000)
    // Foreach-Switch-is-ON
    gV.allMembers.filter( s | s.state == ON).forEach[i|
    // switching OFF
    sendCommand(i, OFF)
        ]
  end

Paper UI Things, Velux products, Velux programs, Log fil OH
I am limited to one foto in a post ;-(

I hope you can do something with this information.

1 Like

Is it possible to detect the status of a windows? (open, closed, 50%,…)
Or can we track wat was the latest command, like open window 100%

Thanks

Hi klf200developer,

Those are quite awesome news !
Thanks for sharing, looking forward to playing with it :smiley:
From what I have read in the API, this will be real fun and expose a lot of things we have been looking for.

So my KLF200 is not useless anymore :smiley:

Will you be exposing the config interface via ethernet in the future again ?