Consider making the debounce on all models configurable

I did not realize until a friend of mine mentioned it that there is minimum press duration required for any Inovelli switch to respond to being tapped. This explains why sometimes I press one, and nothing happens, or why I sometimes click multi-taps too quickly and they don’t register. What appears to be happening is that the firmware debounce is filtering out short presses to avoid false-positive clicks. However, this can lead to rather a lot of frustration - especially for housemates that aren’t used to smart switches and expect switches to just… work.

Between myself and my friend we have tested a number of different Inovelli products and found that they all have this same issue:

  • White Series Dimmer
    • Also when controlled by Aux switch
  • Blue Series Dimmer
  • Blue Series mmWave dimmer
    • Also when controlled by Aux switch
  • Blue series On/Off (w/Humidity)

Furthermore, a search of this forum reveals a few other users with what appears to me to be the same issue. In all cases, these issues haven’t been resolved, and in most it seems like the response has been some level of confusion about what the problem really is.

First, this is not a “bug” or a hardware problem. I have over a dozen switches, and my friend is working his way through installing more than fifty. The issue is consistent across all of them.

Second, this is not the button delay. That’s the opposite, that’s how soon after pressing the button a response happens. This we have both set to 0ms for most of our switches anyway, but it’s not the actual problem I’m talking about. I’m also not talking about the delay between pressing a button and the press registering in Home Assistant or other devices (that’s also problematically slow but unrelated).

Additionally this isn’t an issue of not pressing hard enough, we have both thoroughly tested that we can apply significant force and get a firm click from the physical switch without getting the light to change states if we’re fast enough. I’ll also point out that if the switch clicks then if the button actually hasn’t made electrical contact that would be a problem too. If I can hear it, then it should be working.

Everything I have observed, including what other users have mentioned in other threads, is consistent with debouncing improperly or too slowly. That is, the required time before the press registers is too long.

There are a few possible reasons for this:

  • The most likely is that the delay is intentionally set relatively high to avoid mistakes, so that the switches don’t accidentally register randomly being brushed against or don’t register electrical noise as a press. If this is the case, there is a relatively simple fix: Make that delay configurable, allowing users to make it more responsive (or less!).
  • Relatedly, this is only an issue if you debounce by waiting for the signal to stabilize. An alternative is to immediately respond to the button state change, and only filter out quick fluctuations (bounces) after the initial press.
  • The other possibility that I really hope isn’t going on is a polling rate problem. I don’t know why the firmware would use polling instead of interrupts or what the processor could possibly be doing to make it so slow, but hypothetically this could be the unintentional result of slow polling simply missing the press entirely.

My hope is that this can be resolved fairly easily, it’s probably just an overly conservative debounce that could be made configurable.

2 Likes

I’m the friend of @zeel who noticed this issue. The first time I walked up to my newly installed switches and hit them, nothing happened. I find that these rocker button switches require a much more deliberate and intentional action than flipping a lever style switch. So the response to that is to look at them and press them, and I guess I just press buttons kind of quickly.

I have stopped installing more of these in the house (we have replaced something like 12 out of 67 switches so far) because of this issue. Having to think about how long to hold the switch to get the lights to come on is very annoying. I’m going to make up numbers here, but it’s something like:

Press<300ms, press is discarded

300ms<Press<800ms, light turns on

Press>800ms, light begins to dim on from zero

With these made up numbers, me pressing the switch without thinking about it ranges from 200-350ms. Me thinking about pressing the switch long enough for the lights to come on while pressing it results in a press from 650-900ms. But I also don’t want to have to think about flipping the lights on in some special way that I have never had to before.

I was able to replicate this on all 12 of the switches that I have currently installed.

@EricM_Inovelli any way we can fix this issue? I would love to finish up the installation of the switches around my house, but a switch ever not responding to a press is pretty much a dealbreaker for me. Smart switches are already slower than mechanical switches. I would be halfway into a room before realizing the lights didn’t turn on, and have to turn around to go hit the switch again. I just can’t have that, and it isn’t very “muggle proof”. If I can walk up to a switch and hit it in a way that it doesn’t respond, so can someone who doesn’t know they have to hold the switch for some amount of time before releasing it (but not for too long)

1 Like

Yes, this is something we can look at improving. Honestly it has only been brought to my attention recently so I don’t know if something has changed or what could explain the sudden increased interest.

5 Likes

I’ve had my blues for around 2 years. It happens occasionally and it really degrades the perception of the quality of the switches. Would be great if it’s just a firmware fix.

I agree, I have had my red 2-1 switches for a few years and this has always bugged me.

Me too. Improving this would increase my partner acceptance factor a lot!

Not sure that it even needs to be configurable, it just needs to consider the first press to be real no matter how short or bouncy it is.

Big thank you to @zeel for bringing this up. As someone who has written a good number of button debouncers, the current behavior always felt to me like the result of some unfortunate hardware compromise. Would be so great to have this fixed!

I would disagree with that. Having too short a debounce time in my view is worse than a too long debounce time since you will get transitions based on just knocking the switch or electrical noise.

It would make more sense to make it configurable as the OP suggests.

Well, in my experience high quality switches generally don’t randomly switch states for no reason, and electrical noise is usually not going to be enough to flip the state of binary pin. I think there’s a good chance that no leading debounce is really needed, but without being able to play with the firmware and test it out there’s no way for any of us to be certain. I would certainly hope that the engineers at least try it though.

That said, configurability is probably desirable because I can absolutely see some people actually wanting to go the other direction here. I don’t want to have to think about pressing the button, but someone with young children or with someone elderly living with them might want to require a more intentful press.

Sounds like you want a sensitivity control. Spring tension and RC filters are the way to tune that. Sure you might get something approximating it with a software parameter, but if I have to configure it based on the expected amount of line or RF noise then I’ll never trust that my lights won’t switch randomly when my neighbor decides to use his drill just because I chose the wrong value.

To be clear, this isn’t about debouncing, it’s about not ignoring the initial transition. Hopefully the Inovelli engineers can make it reliably switch on a short press. If you also want a feature to ignore presses less than a particular duration because of the way you use the switch then fine, but I would always set mine to minimum. If it randomly switches due to RF then I’d consider it broken hardware.

1 Like

My take on this is that the button hardware needs improvement. This is an issue that truly makes me hesitate about ever purchasing more Inovelli products.

I got no traction with this post at the time, but hopefully now it will get some more visibility!

I’m not sure I agree that this is a hardware issue. I really feel like this can be solved with firmware

1 Like

I could believe that both are true! I just know that with our Blue switches, it’s very easy to press off-center, or too lightly, and have the physical hardware not even click. (Or if it does click, it may still not be enough pressure to trigger the switch.)

A push button is never going to be as snappy and solid as a full mechanical switch rated for 15A. I wish someone made a switch that was basically a real traditional rocker with an internal mechanism that physically flipped it (think the original Switchbot robot, but internal). That would have the most satisfying feel, and the highest reliability. Failing that, I think the design Inovelli went with is about as good as you can get in terms of feel and looking/behaving like a “normal” switch.

That said, there is a bit of a “mush” factor. The front plastic rocker doesn’t actually touch the two switches at all times, there’s a small amount of space in there which allows you to slightly depress the rocker before it makes contact. I’m not sure if the rocker would pop off without damage, but it seems like it might be possible to basically add a shim between the plastic stems and the buttons to close this gap if you want to reduce mush. The trade off would be that the total travel of the switch would be reduced and it would be easier to accidentally trigger it.

This is quite distinct from the issue we’re talking about here though, where the switch is definitely actuating (you can hear and feel the click) but the device doesn’t respond to that actuation if it’s brief enough. Basically, you’re having an issue with how far you have to press the button, while we’re talking about how long it needs to be pressed.

Both issues combined of course just increase the over all mushy feel. Resolving the delay should make the switch feel far more responsive without a need to change the hardware. It would also be customizable, where a hardware change needs to take into account all users and trade offs between differing user needs. They don’t want to make the product “better” for some users at the expense of other users.

Edit: How to Change Your Switch Paddle | Inovelli Help Center

The more people that come through my house, the more this issue shows up. I am actually a little surprised how much it happens with people who just expect these to function as light switches (because, well, they ARE)

1 Like

I can confirm this is an issue on my red series switches (VZW32-SN Firmware: 2.0.0 and VZW31-SN Firmware: 1.3.0). I don’t have the ability to time whats happening at the ms level, but very quick single taps reliably don’t register. This seems worse when quickly tapping the corner of the paddle (maybe the rocker is flexing so the contact is briefer). In all cases I hear the click of the button. Its not really a problem for me but I notice guests/family have trouble if they smack the button really fast which seems to be the way some people like to hit the switch. I’m not as concerned with double taps etc because thats usually me activating a scene and I know to be slightly deliberate when interacting with the paddle.

It’s not a huge issue but it’s just common enough that I’m hesitating to install the inovelli switches on my main floor.

I posted on this issue many many months ago, I called it “lazy press” or something like that. I have 40 White Series and it’s annoying for sure.. and when people come over, it presents more then too because people are not used to a non mechanical switch.

We do need a setting if possible to tweak this. a full clear quick tap should register and work. This is not a case of the button didn’t get pressed, it is ignoring a fast short press.

@EricM_Inovelli you replied earlier, have you made any progress here? Thanks!!

@momo

We have a beta firmware for the vtm31 that improves button press detection. Anyone interested can PM me and I will hook them up with the info.

1 Like

I don’t think adding another setting is the right approach. That would only make sense when trying to accommodate different environmental variables, which in this case I don’t think apply. This request is more about giving the user the tools to DIY a fix, not solve the underlying problem. The better solution would be to improve the debounce algorithm itself. This appears to be Inovelli’s response.