Yep det er via rules i openhab.  
	Nu siger du at dine velux-vinduer kører via en KLF200. Det gør min vinduer også. Men der er forskellige måder at styre dem på. MED KLF200 firmware 2.xx så kan du styre vinduerne i 1-100%. Ellers kan du bruge scener som er oprettet i KLF200. Velux bindingen til openhab skulle gerne have fundet både vinduer og scener.   
	Derefter er det sådan set en forholdsvis smal sag at få noget til at gøre noget andet ved påvirkning.  
	fx..  
	 
 
rule "simple princip regel"
When 
    item sensor changed
then
    velux.sendCommand(ON) 
end
	Denne simple regel (rule) gør sådan set det som den siger:  
	Når sensor  ændre sig,  
	 så 
	Send kommando ON til velux. 
 
	Sensor er så en item fra et eller andet Velux er en item linket til et velux vindue eller en scene på din KLF200.   
	Her er min gamle (en del mere omstændig/avanceret) rule til styring af mine velux vinduer, der bla tager forbehold for, om alarmen er slået til/fra, og om det er mørkt udenfor. Og så selvfølgelig temperaturen i form af en Netamo sensor. Det skal lige siges, at den er ændret lidt i dag. Men princippet er det samme. Den aktivere scener i KLF200.
 
rule "Automatic control of all skylight windows"
when
    Item NetamoUdendoersTemperature changed or
    Item Node13_SensorLuminance changed or
    Item alarm_totalalarm changed or
    Item dummy1 changed
then
    // Exit the rule when there is nothing to do
    if(Override.state == ON) return;
    if(alarm_totalalarm.state instanceof Switch ) return;
    if(!(Node13_SensorLuminance.state instanceof Number)) return;
    if(!(NetamoUdendoersTemperature.state instanceof Number)) return;
    // Calculate which velux to send the ON command to
    val Number fTemp = NetamoUdendoersTemperature.state as Number
    val Number lux = Node13_SensorLuminance.state as Number
    val alarm = alarm_totalalarm.state
    var velux = VeluxAlleLuk
    // Third table
    if(alarm == ON) {
        logInfo("debug", "Third table clause")
        velux = if(fTemp >= 18|"°C") VeluxAlleVent else VeluxAlleLuk
    }
    // Second table, we already know alarm isn't ON so we don't have to test it for OFF here
    else if(lux < 10){ 
        logInfo("debug", "Second table clause")
        velux = if(fTemp >= 18|"°C") VeluxAlleVent else VeluxAlleLuk
    }
    // First table, we know that alarm isn't ON and we know lux >= 20 so we don't have to test for it here
        else {
        logInfo("debug", "First table clause")
        switch fTemp 
             {
            case fTemp >= 25|"°C": velux = VeluxAlleAaben100
            case fTemp >= 24|"°C": velux = VeluxAlleAaben75
            case fTemp >= 23|"°C": velux = VeluxAlleAaben50
            case fTemp >= 18|"°C": velux = VeluxAlleVent
            default: velux = VeluxAlleLuk
        }
        logInfo("debug", "Choose " + velux.name)
    }
    // Send the command
	logInfo("skylight", "Sending ON command to " + velux.name + " because OutsideTemp = " + NetamoUdendoersTemperature.state + "  Lux = " + Node13_SensorLuminance.state + " and Alarm = " + alarm_totalalarm.state)
    velux.sendCommand(ON)
end