How Do I implement a multi-tap?

One of the things that I love the most about my Control4 system is all the functionality that I squeeze out of a single light switch or dimmer.  Using “multi-taps” and “press and holds” (those will be covered in another writeup) you can get almost endless functionality out of each switch or dimmer.

For new users, the question is often asked about how to implement a multi-tap.  Before the end of this article, you will be programming multi-taps all over the house in less time than you ever thought was possible.

Now, I need to point out that this tutorial is for systems running 1.7.3.xx and OLDER! If your system is running 1.8.xx, variables are handled differently. This may be simplified when 2.0 releases, but that is a ways out and there is lots of enjoyment to be had between now and then.

The first thing you need to do is create a variable. In Composer Home Edition, this is done under the “Agents” tab. Up in the top left click on the “Variables” agent, then just below that click new variable. Now, make sure and name this something you are going to be able to identify down the road. Since we are going to be creating a multi-tap for the mud-room lights, we are going to call this variable “Mud Room Multi-Tap”. Make sure you select “Number Variable”, then click okay. You will now have a newly created number variable.

Multi-tap step 1

Once that is out of the way, we move on to the fun part….PROGRAMMING!

Click on the programming tab, found in the bottom left hand corner of Composer. The first thing we are going to do is start in the top left corner, and select the light or keypad that you want to add the multi-tap to. In this instance, we are going to select the “Mud Room Lights”. Once you select the dimmer, just below that a field will pop-up that shows the available actions that you can program around. The options for a dimmer or switch are Top Button Pushed, Top Button Released, Bottom Button Pushed, Bottom Button Released, and Level Changes. For multi-taps I recommend programming around the release of the button as opposed to the push of the button. In this instance we are going to be setting our double tap for the bottom button, so we will click on “Bottom Button Released”.

(Note: if you are using a 3 or 6 button keypad instead of a list of options as I posted above, you will see a small picture of a keypad. You can click the button you are looking to base your multi-tap on, and then select press or release).

Now we are going to move over to the right side of Composer, and select the item we want to control based on the actions performed on the left. In this case, we are going to want to increment the variable, so it can keep track of how many times that button is pressed or released. If you look at the box in the top right corner, we are going to scroll all the way down until you see “Variables”. Click on the little “+” next to variables, and a list of available variables will drop down. Please select the newly created variable, in the case “Mud Room Multi-Tap”. Now in the field on the bottom right corner of Composer you will see a list of optional commands that can be executed. We are going to select the third option down, and select + 1. Now in the center box on the right had column you should see something like this:

Multi-tap step 2


Now, click on the line of code, and drag it into the middle of the screen. It should end up looking like this:

Multi-tap step 3

Now, we have a functioning counter. Essentially every time the bottom button on the mud-room lights is released, that variable will increase +1. Now, we need to tell the system what to do when that variable changes. While there is more than one way to accomplish this, I feel as though the best way is to execute the programming around the variable. Since the variable is what we are going to be dealing with now, we are going to move back over the left most column on Composer. In the top left box, scroll all the way down “Variables”, and click the “+” sign next to. Highlight our newly created variable out of the drop down list.

Multi-tap step 4

Now we are going to move back over to the right hand side, and scroll down until we see “Programming Control”. Down in the bottom right click delay, and pick the amount of time you want to execute the number of taps. I personally select 500 milliseconds (1/2 of 1 second). This is the amount of time you will have to push the button the appropriate number of times. Drag the programming line to the middle of the screen and drop it. Now, go up to the top right corner and select our newly created variable. In the box on the lower right, select the tab that says “Conditionals”. We are going to program the double tap right now, so we are going to select “= 2”.

Multi-tap step 4

Go ahead and drag that programming into the middle of the screen.

Now we need to move to the top right corner, and select the item(s) that we want to do something once the double tap is executed. For this write-up we are going to turn off all the lights in the living room, and turn the room off. Turning the room off will shut off any audio/video that is going on in the room. Lastly, we will turn off the fireplace. First start by highlighting the “? If Variables -> Mud Room Multi-Tap = 2” in the center of the screen. What this will do is “indent’ any programming under that conditional. Lines that are indented will only execute if the conditional above it is met. Now, move over to the left and one by one chose the commands you want to take place when the double tap occurs. By double clicking on the programming line on the left side, you will insert it underneath the highlighted conditional. When it is all said and done it should look like this:

Multi-tap step 5

Now, to create a triple-tap or quad-tap (I don’t recommend doing anything more than a quad-tap, and even those are to be used sparingly), just start back at where we set the conditional to “=2” and set to “=3” or “=4”. Once you have all the taps done, there is one thing we need to do to finish this off. At the end of the script, we need to reset the variable to zero so that it will work for future multi-taps. If we don’t reset it to zero, it will just continue counting up to infinity and never work again. The good news is that setting the variable to zero is easy. In the top right scroll down to “Variables” and highlight the variable we are working. Down in the bottom right click on commands, and select “Set value to 0”. Drag this programming line to the very bottom of the script. Make sure that it is not indented under anything because we want this line to execute no matter what.

No, we’re all done! What we have done is used a variable to track the number of button presses/releases, put a delay in place to allow us a set period of time to press the button the desired number of times, set our programming based around the number of button presses, and reset our variable!

Obviously there are endless possibilities for what you can do with a multi-tap. This is just one of many ideas. You can literally have any part of your house that is controlled via Control4 execute something, based on multi-taps. Hopefully the write-up gets you a general idea as to how a multi-tap works, and how to program one. Feel free to discuss this write-up, and multi-taps in general here.