Shiny,
I had a similar issue, I ended up using what I call a "slow double tap". Basically, I run Homeseer. In there I have an event that captures a switch or link status SET. Not a CHANGE. Then, if you say, tap the switch OFF, wait 1-2 seconds for the link data to get transmitted, then tap OFF again, Homeseer catches BOTH and then executes what I want it to. I choose a switch or link depending on if I want ALL switches on that link, or only 1 switch to be monitored.
I'd share the code, but think it might be useless for you (Homeseer uses VB). If you want it, I'll post it.
Anyway, the logic is:
Create an event to capture the device to be monitored.
Have that event trigger a script call.
The monitor function script logic is:
if (is double tap) then
perform action
else
do something else, or nothing
end if
The Is double function logic is:
if(the variable does not exist)
set variable with now
return false
elseif(now is greater than 5 seconds past set time)
set variable with now
return false
else
return true
end if
So, this way, at the first call, you either SET the time or create a new variable to hold "now" and return false. If the time is less than 5 seconds then assume you wanted a slow double tap.
I am working on a triple tap as well, but this is proving difficult as different vintages of switches respond differently...and right now, sometimes I have to triple tap to get a double tap function to work. Might just be a bug in my actual code for all I know.
--Dan