[homematic] Remove double press events and improve long press events for button trigger (#11186)
HM devices provide not only 'long press' events, but also 'long press continued' (sent in configured long press interval) and 'long press released' events. So far, those events were swallowed in the button datapoint handler. Improve the situation by forwarding those events to the button trigger channel, making them usable in e.g. rules that react on button long presses. A double press timeout of 2 seconds is too long and disturbs single press processing. Additionally, for double press processing to be useful, the first press would need to be swallowed until double press timeout elapses, which is not what happened here: the first PRESS was sent out as SINGLE_PRESS event, making it impossible to meaningfully distinguish the 'single press' and 'double press' events within rules. If needed, double press handling can be implemented equally well within a rule. Signed-off-by: Danny Baumann <dannybaumann@web.de>
This commit is contained in:
@@ -343,16 +343,17 @@ A virtual datapoint (String) to simulate a key press, available on all channels
|
||||
|
||||
Available values:
|
||||
|
||||
- `SHORT_PRESS`: triggered on a short key press
|
||||
- `LONG_PRESS`: triggered on a key press longer than `LONG_PRESS_TIME` (variable configuration per key, default is 0.4 s)
|
||||
- `DOUBLE_PRESS`: triggered on a short key press but only if the latest `SHORT_PRESS` or `DOUBLE_PRESS` event is not older than 2.0 s (not related to `DBL_PRESS_TIME` configuration, which is more like a key lock because if it is other than `0.0` single presses are not notified anymore)
|
||||
- `SHORT_PRESSED`: triggered on a short key press
|
||||
- `LONG_PRESSED`: triggered on a key press longer than `LONG_PRESS_TIME` (variable configuration per key, default is 0.4 s)
|
||||
- `LONG_REPEATED`: triggered on long key press repetition, that is, in `LONG_PRESS_TIME` intervals as long as key is held
|
||||
- `LONG_RELEASED`: triggered when a key is released after being long pressed
|
||||
|
||||
**Example:** to capture a short key press on the 19 button remote control in a rule
|
||||
|
||||
```javascript
|
||||
rule "example trigger rule"
|
||||
when
|
||||
Channel 'homematic:HM-RC-19-B:ccu:KEQ0012345:1#BUTTON' triggered SHORT_PRESS
|
||||
Channel 'homematic:HM-RC-19-B:ccu:KEQ0012345:1#BUTTON' triggered SHORT_PRESSED
|
||||
then
|
||||
...
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user