Seite 1 von 1

In einer Regel unterscheiden welche Channel getriggert hat

Verfasst: 1. Jan 2021 20:57
von Darkwin101
Hallo Zusammen,
Im Zusammenhang mit der Umstellung auf Openhab3 würde ich gerne manche meiner Rules Zusammenfassen um das ganze etwas Übersichtlicher und auch schneller zu machen.
Hierbei habe ich allerdings keine Idee wie Ich in einer Rule unterscheide wenn die Regel über einen Channel getriggert wird, bei Items habe ich ja triggeringItemName und das ganze zu Unterscheiden und entsprechend zu Reagieren.
Ich habe nun eine Fernbedienung mit 8 tasten die jeweils etwas anderes machen ich würde diese 8 Regeln nun gerne zu einer Zusammenfassen.
Als Beispiel hier mal eine der Regeln diese sind eigentlich alle gleich Aufgebaut und machen in verschiedenen Räumen das Licht an.

Code: Alles auswählen

rule "Licht Wohnzimmer erhöhen bei Druck auf Button 1"
    when
        Channel 'homematic:HmIP-RC8:ccu3:000B1BE9940F81:1#BUTTON' triggered
    then
    switch(receivedEvent){
        case "SHORT_PRESSED" : { sendCommand(Wohn_Helligkeit, (Wohn_Helligkeit.state as Number + 10))}
        case "LONG_PRESSED"  : { sendCommand(Wohn_Helligkeit, (Wohn_Helligkeit.state as Number + 20))}
        case "DOUBLE_PRESSED": { sendCommand(Wohn_Helligkeit, (ON))}
    }
end
rule "Licht Wohnzimmer verringern bei Druck auf Button 2"
    when
        Channel 'homematic:HmIP-RC8:ccu3:000B1BE9940F81:2#BUTTON' triggered
    then
    switch(receivedEvent){
        case "SHORT_PRESSED" : { sendCommand(Wohn_Helligkeit, (Wohn_Helligkeit.state as Number - 10))}
        case "LONG_PRESSED"  : { sendCommand(Wohn_Helligkeit, (Wohn_Helligkeit.state as Number - 20))}
        case "DOUBLE_PRESSED": { sendCommand(Wohn_Helligkeit, (OFF))}
    }
end
Ziel ist es aus diesen 8 Regeln eine zu Machen :)
Vielen Dank

Darkwin101