tonesto7 / homebridge-smartthings

SmartThings Homebridge Plugin
385 stars 767 forks source link

Button Presses are sometimes lost #320

Open dsboulder opened 4 years ago

dsboulder commented 4 years ago

Verify the following before opening an trouble issue

Go over all the following points, and put an x in all the boxes that apply. If you're unsure about any of these, don't hesitate to ask. We're here to help!


About Your Setup

Expected Behavior

All button presses trigger their associated homekit actions

Current Behavior

About 50% of my button presses are lost, they are showing up in the homebridge logs but not making it all the way to homekit. When the press fails, the associated homekit actions aren't being run, and the buttons aren't "shaking".

Log fragment from homebridge for a "lost" press:

May 16 15:06:50 raspberrypi4 homebridge[21610]: [5/16/2020, 3:06:50 pm] [SmartThings-v2] INFO: [Device Event]: (Aeon WallMote) [SEQUENCENUMBER] is 140
May 16 15:06:50 raspberrypi4 homebridge[21610]: Button Press Event... | Button Number: (3) | Button Value: pushed
May 16 15:06:50 raspberrypi4 homebridge[21610]: Button Press Event... | Button Number: (3) | Button Value: pushed
May 16 15:06:50 raspberrypi4 homebridge[21610]: Button Press Event... | Button Number: (3) | Button Value: pushed
May 16 15:06:50 raspberrypi4 homebridge[21610]: Button Press Event... | Button Number: (3) | Button Value: pushed
May 16 15:06:50 raspberrypi4 homebridge[21610]: [5/16/2020, 3:06:50 pm] [SmartThings-v2] INFO: [Device Event]: (Aeon WallMote) [BUTTON] is pushed

Log fragment when the same button is not lost:

May 16 15:08:08 raspberrypi4 homebridge[21610]: [5/16/2020, 3:08:08 pm] [SmartThings-v2] INFO: [Device Event]: (Aeon WallMote) [SEQUENCENUMBER] is 153
May 16 15:08:09 raspberrypi4 homebridge[21610]: Button Press Event... | Button Number: (3) | Button Value: pushed
May 16 15:08:09 raspberrypi4 homebridge[21610]: Button Press Event... | Button Number: (3) | Button Value: pushed
May 16 15:08:09 raspberrypi4 homebridge[21610]: Button Press Event... | Button Number: (3) | Button Value: pushed
May 16 15:08:09 raspberrypi4 homebridge[21610]: Button Press Event... | Button Number: (3) | Button Value: pushed
May 16 15:08:09 raspberrypi4 homebridge[21610]: [5/16/2020, 3:08:09 pm] [SmartThings-v2] INFO: [Device Event]: (Aeon WallMote) [BUTTON] is pushed

I don't see anything different in the logs.

Context

I've worked around the issue by writing my own smartapp that makes HTTP requests to homebridge-button-platform when the buttons are pressed. None of the button presses are lost via this mechanism, though I have to make each button show up as a separate device. But I'd love to get rid of that custom thing and use your plugin for this!

Any ideas?

ghost commented 4 years ago

Same issue here. Same app versions, running on OSX. Buttons: Genuine Smartthings button and also Ikea dimmer switch.

shaunreinson commented 4 years ago

Same here - across many different button devices including Aeon Minimote, Fibaro Keyfob and Remotec Scene Master. Bit frustrating as I'm trying to shift away form ST for rules processing and using Node-Red. Moved my Ikea blinds away from ST to the Ikea gateway/hub to get more reliable status updates and that's worked fine. Have tinkered with Domoticz, but not as easy as ST to setup for Zwave devices. Really need the Button thing to be sorted out, otherwise I'll be setting up lots of Virtual switches and doing it that way instead - which seems crazy...

TubadoG commented 3 years ago

Hello team, I've got the same issue. The press is logging correctly. Oddly enough, if I alternate between single, double, single, double, etc.. Things work fine, but two singles in a row or two doubles in a row don't work.

fessman commented 3 years ago

Same issue, here. like @TubadoG, I can alternate between single, double, etc. and things work.

jdebardi commented 3 years ago

I also have this issue. Alternating pressed/held/pressed/held works, but multiple presses or holds in a row won't work.

My best guess is there is a callback to tell HomeKit the button is released which isn't happening.

So right now Homebridge is telling it Press (but never release), then Press again - so HomeKit sees no state change so doesn't register it as a Press the second time. If you send a Double or a Hold after a Press it must reset the state so that works.

I'll have a look at the code and see if I can work it out - I'm no expert though!

jdebardi commented 3 years ago

@dsboulder any chance of you sharing your Smartapp code so I can use your HTTP Hub>Homebridge workaround for now?

Edit: I Found this which seems to do the trick. Messy with lots of Virtual buttons - be nice if it was a Smart App that monitored an existing real button vs a Device Handler that create a virtual button but it works.

I'm going to compare homebridge-button-platform button implementation compared to this smartthings bridge and see if I can fix it. The fact it works in the button platform proves it's an issue with this plugin rather than a homebridge or HomeKit oddity.

smwoodward commented 3 years ago

I'm also having this issue and will be willing to help troubleshoot and fix the issue.