Re: LONG_PRESSED Events kommen nicht mehr im Openhab an
Verfasst: 6. Nov 2022 18:26
Wenn eine Rule über Channel triggered ausgelöäst wird, steht die implizite Variable receivedEvent zur Verfügung, in welcher das Event stehen müsste.
Der einfachste Weg wäre also, Deine Rule zunächst abzuändern:
Wenn Du die Tasten entsprechend drückst, müsstest Du eine passende Meldung zu sehen bekommen.
Im jeweiligen Block kannst Du dann die jeweilige Aktion unterbringen. Es braucht dazu nicht mehrere Rules.
Alternativ kannst Du natürlich auch getrennte Rules für die verschiedenen Aktionene anlegen und bei jeder Rule das Event mit angeben.
Achtung: Es ist nicht gesagt, dass die receivedEvents tatsächlich 1:1 dem Inhalt von "Letztes Ereignis" entsprechen, auch wenn das naheliegend wäre. Also vorher testen. Eventuell gibt es auch Ereignisse für Drücken und loslassen der Taste (z.B. PRESSED und RELEASED).
Der einfachste Weg wäre also, Deine Rule zunächst abzuändern:
Code: Alles auswählen
rule "Shelly Button1"
when
Channel 'shelly:shellybutton1:OGBadMusikplay:status#button' triggered
then
logInfo("shellyButton","received event: {}",receivedEvent)
switch(receivedEvent.toString) {
case "s" : { // S
logInfo("shellyButton","1 x kurz erkannt")
}
case "SS" : { // SS
logInfo("shellyButton","2 x kurz erkannt")
}
case "SSS" : { // SSS
logInfo("shellyButton","3 x kurz erkannt")
}
case "L" : { // L
logInfo("shellyButton","lang erkannt")
}
case "SL" : { // SL
logInfo("shellyButton","kurz-lang erkannt")
}
case "LS" : { // LS
logInfo("shellyButton","lang-kurz erkannt")
}
default : logInfo("shellyButton","Event ist nicht zugeordnet!")
}
end
Im jeweiligen Block kannst Du dann die jeweilige Aktion unterbringen. Es braucht dazu nicht mehrere Rules.
Alternativ kannst Du natürlich auch getrennte Rules für die verschiedenen Aktionene anlegen und bei jeder Rule das Event mit angeben.
Achtung: Es ist nicht gesagt, dass die receivedEvents tatsächlich 1:1 dem Inhalt von "Letztes Ereignis" entsprechen, auch wenn das naheliegend wäre. Also vorher testen. Eventuell gibt es auch Ereignisse für Drücken und loslassen der Taste (z.B. PRESSED und RELEASED).