In einer Regel unterscheiden welche Channel getriggert hat

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

In einer Regel unterscheiden welche Channel getriggert hat

Beitrag 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

Antworten