Jump to content
C4 Forums | Control4
  • 0

How many keypress events does a keypad understand?


Wikinaut

Question

I understand that the C4 keypads support single, double, and triple press events. Can the controller understand HOLD events? For example, click to turn on the lights, then hold to dim them progressively?

Thanks!

Link to comment
Share on other sites

18 answers to this question

Recommended Posts


Yes, it does, for each button of the keypad.  The driver has a property to specify if you are using double or triple taps anywhere.  If so, the driver will ensure that the single tap event is not triggered if you do a double tap (there will be a small delay).  Similarly, single and double will not be triggered if you do a triple tap.

Link to comment
Share on other sites

@pbir, just confirm. The Enhanced Keypad driver supports all of the following commands at the same time on the same keypad, correct:

  • Single Tap
  • Single Tap & Hold
  • Double Tap
  • Double Tap & Hold
  • Triple Tap
  • Tripled Tap & Hold
  • 8th Virtual Button Tap

 

Link to comment
Share on other sites

Thanks for everyone who has chimed in. I've taken the feedback to heart and decided to simplify my design a lot, but not missing multi-taps with hold actions.

You all saved me many hours of headaches! Thank you!

Link to comment
Share on other sites

Have a look at our Keypad Enhancer driver on driverCentral (Domosapiens).  It adds several capabilities to a C4 keypad, such as:  MultiPress & Hold, 8th virtual button, mutually exclusive events, Keypad lockout, Up/Down Selector, LED Color and Blinking.
 

That sounds cool. I’ll be checking this out!!
Link to comment
Share on other sites

Have a look at our Keypad Enhancer driver on driverCentral (Domosapiens).  It adds several capabilities to a C4 keypad, such as:  MultiPress & Hold, 8th virtual button, mutually exclusive events, Keypad lockout, Up/Down Selector, LED Color and Blinking.

 

Link to comment
Share on other sites

On 5/3/2018 at 9:38 AM, Wikinaut said:

Thanks for the answers. To clarify, I'm talking about the 7-button keypad and not the dimmer switch. My motivation is to pack as much functionality into as few buttons as possible.

For example,

Button 1 - LIGHTS ON

1 tap - if lights are off, select lighting scene 1; otherwise cycle through lighting scene 1, 2, and 3
2 taps - turn on all lights in room
3 taps - turn on all lights in house (panic mode)
hold - increase brightness of lights in room

Button 2 - LIGHTS OFF

1 tap - turn off lights in room
hold - decrease brightness of lights in room

Button 3 - OPEN DRAPES

1 tap - open drapery, close sheers
2 taps - open balcony sheers and drapery
hold - open all sheers and drapery

Button 4 - CLOSE DRAPES

1 tap - close drapery and sheers

Button 5 - MUSIC

1 tap - toggle music on/off
2 taps - cycle sources

Button 6/7 - VOLUME UP/DOWN

 

That's obviously a lot of functionality in few keys, but I don't know if it's achievable. It may appear like a usability issue initially, but consistency across the house will make it intuitive after a short while.

Has anyone attempted something like this? Is it possible? If my approach is just plain wrong, what are my alternatives?

Thanks!

You can actually do all of this but it is quite messy and as others have posted you need to be very careful if you want to avoid unwanted consequences.

The easiest way to get a hold event to work is to start a timer (say 3 seconds) when the button is pressed.  You also set a button pressed variable to true.  When you release the button, you set the button pressed variable to false.  When the timer expires, you check if the button pressed is true and, if it is, you excecute the code you want to execute when the button has been held.

The trick is to get the programming right so that you don’t do two things after one event.  If you don’t mind waiting 3 seconds (the recommended length of the timer - although 2 seconds may work), you can get all of this to work.  Essentially, you can set a number of clicks variables based on single click, double click and triple click and then when the timer expires execute the hold events as described above if the button pressed variable is still true.  If it is not, then determine whether it was single, double or triple clicked based on the number of clicks variable and access the relevant code!

 

Link to comment
Share on other sites

But when you go to hold a button, that will also trigger your single tap programming.

I like the old adage of K.I.S.S. (keep it simple stupid!!)

I mean if the OP has HE, go crazy, see what works and what doesn't, but I'll bet you be ripping some hair out trying to do some of the above with unwanted results.

Link to comment
Share on other sites

specifically for keypads there are these events to program from

Pressed

Released

single tap

double tap

and triple tap.

 

outside of this you have to program everything else.

a press and hold for program can be done with a timer

 

on press 

  start timer

on release 

   stop timer

 

if the button is held long enough the programming would happen on the when timer expires event and you have your press and hold programming so theoretically you could program in infinite steps for any condition you want.

Link to comment
Share on other sites

Room Control driver is a newish C4 driver= free, except for what your dealer charges you to install.  I'd load it for free if you were my customer and let you program it.  This driver has been updated multiple times over the last few months and it just keeps adding features.

 

The volume up/down buttons can track last button press.  I use them to dim up/down lighting scenes or lights, cycle through my RGB colors for my accent lights, volume up/down after selecting listen sources, etc.

Certainly a top contender for best available drivers that everyone can use.

Link to comment
Share on other sites

4 hours ago, lippavisual said:

Music- you'd want to just cycle through your music choices using variables.  Or you can use the new Room Control driver that makes this super easy to program.

I haven't heard of this Room Control driver...is it a native C4 driver or third-party? Any more explanation how it works? I like the sound of "super easy" because the variable route can be a little tedious. 

Also, along the same topic as the OP, I was wondering if it was possible to do something with the volume up/down buttons. I'm putting in some new speakers soon that will be run off a Triad One. Right outside this room, I already have exterior speakers installed that are tied into my matrix amp. The volume buttons that are currently bound to the patio speakers are actually in the room where the new speakers are going.

I was wondering if there's anyway to program the volume buttons to control both zones based on conditionals ("if patio on-->if inside room off-->increase volume in patio" for example). Seems like it would work, but I want to keep them intuitive to use like they are now. 

Link to comment
Share on other sites

9 hours ago, Wikinaut said:

Button 1 - LIGHTS ON

1 tap - if lights are off, select lighting scene 1; otherwise cycle through lighting scene 1, 2, and 3
2 taps - turn on all lights in room
3 taps - turn on all lights in house (panic mode)
hold - increase brightness of lights in room

Wont work well at all.

Reinvent this to something completely different.

9 hours ago, Wikinaut said:

Button 2 - LIGHTS OFF

1 tap - turn off lights in room
hold - decrease brightness of lights in room

Simply bind this to the lighting scene for off ('top button' to do this

 

9 hours ago, Wikinaut said:

Button 3 - OPEN DRAPES

1 tap - open drapery, close sheers
2 taps - open balcony sheers and drapery
hold - open all sheers and drapery

MAke that last one a triple tap, won't work as is

 

9 hours ago, Wikinaut said:

Button 5 - MUSIC

1 tap - toggle music on/off
2 taps - cycle sources

I would change this to 1 tap cycle sources (which would turn on music to begin with) and 2 taps for off

 

In general though, you're putting too much on these buttons. The issue isn't really going to be making the buttons dfo (most) of these things, it's that it isn't user friendly.

Link to comment
Share on other sites

I don't think you'll like the outcome of trying to go this route.  You will get some unwanted functionality with the way its programmed.

Like it was said above, your holds will also initiate your single tap programming.

I find it much easier to do a single lighting scene on a single button and bind that scene to the button.  That will give you the above mentioned 100%/0% on taps and holds will either increase or decrease brightness.

You can do the same for shades using the group shade driver.

Music- you'd want to just cycle through your music choices using variables.  Or you can use the new Room Control driver that makes this super easy to program.

Link to comment
Share on other sites

Thanks for the answers. To clarify, I'm talking about the 7-button keypad and not the dimmer switch. My motivation is to pack as much functionality into as few buttons as possible.

For example,

Button 1 - LIGHTS ON

1 tap - if lights are off, select lighting scene 1; otherwise cycle through lighting scene 1, 2, and 3
2 taps - turn on all lights in room
3 taps - turn on all lights in house (panic mode)
hold - increase brightness of lights in room

Button 2 - LIGHTS OFF

1 tap - turn off lights in room
hold - decrease brightness of lights in room

Button 3 - OPEN DRAPES

1 tap - open drapery, close sheers
2 taps - open balcony sheers and drapery
hold - open all sheers and drapery

Button 4 - CLOSE DRAPES

1 tap - close drapery and sheers

Button 5 - MUSIC

1 tap - toggle music on/off
2 taps - cycle sources

Button 6/7 - VOLUME UP/DOWN

 

That's obviously a lot of functionality in few keys, but I don't know if it's achievable. It may appear like a usability issue initially, but consistency across the house will make it intuitive after a short while.

Has anyone attempted something like this? Is it possible? If my approach is just plain wrong, what are my alternatives?

Thanks!

Link to comment
Share on other sites

Also, consider that click variables have a processing delay to count (1 tap..2 tap...) versus direct light binding or press/release that are immediate. Stairways and places you may need immediate light versus a second or two could  be important. 

Link to comment
Share on other sites

Yes, to a degree.

The trick will lie in the details.

In your own example of a light the way to do it is actually without 'programming' at all but you would simply bind the light to the button, giving you that exact function without further setup already.

'hold' events are commonly done using the press and release programming options -  a common one is volume:
 

when button is pressed
send start volume up to room

when button is released
send stop volume up to room

Problems occur when you program things on BOTH single tap (and double/triple) and press and release because it'll execute the press/release programming every time it's tapped as well

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.