yenoiwesa / homebridge-connexoon

A homebridge plugin to integrate Somfy blinds with the Connexoon RTS hub
Apache License 2.0
27 stars 2 forks source link

Random Sets being sent during regular polling #35

Closed thehilsnz closed 3 years ago

thehilsnz commented 3 years ago

We have 4 blinds that we control in HK via this plug-in and for the better part of a year (maybe longer) this has worked flawlessly. In the last few weeks we've noticed that one of the blinds in particular will randomly open or close by itself - in fact as I was typing the previous sentence it did it again! It also did it 10 mins previously, but before that it was several hours earlier during the night. We first noticed when ALL of the blinds started doing short up/downs, and then the all started opening and closing randomly (at the same time), this went on sporadically for about an hour, then it settled down to just the one blind (Blind 2 that you will see in the log snippet). It generally happens at least once a day, if not more. I saw from an earlier issue that you think this is coming from HomeKit - I tried the solution of setting all for Blinds to just have [Open], [Close], no [MY] but that didn't help. I also tried switching plug-ins (to Homebridge-Tahoma) to test the theory that it was coming from Homekit, but didn't get to use it for long as it has an error with Bad Credentials being reported and/or locking the API due to too much polling etc - for the day or so we used it though we didn't have the blinds getting any random Set commands though. Is there anything that could have inadvertently changed in the plugin that could be causing this?

Screen Shot 2021-10-05 at 1 54 02 PM
yenoiwesa commented 3 years ago

Hi there @thehilsnz!

There have been no changes to the plug-in that could explain that (and you can confirm that by reverting to a previous version of the plug-in if you wish).

I myself use 6 blinds with the plug-in since I created it, with polling enabled.

If you wish to rule out the impact of polling, you can set its interval to 0 and see if the problem persists (check the README file for the property name).

But in all honesty this is most likely due to automations you have setup, or something similar happening at the HomeKit level.

Try disabling the polling and let me know how it goes.

yenoiwesa commented 3 years ago

Also please share your configuration JSON here (redacting your credentials).

thehilsnz commented 3 years ago

Thanks for the quick response, will try disable the polling now - we pulled all the automations out of HK a while back and just have scheduled timers in the Connexoon app itself.

Here's the config JSON:

{
            "platform": "Connexoon",
            "name": "Connexoon",
            "service": "ConnexoonRTS",
            "username": [redacted],
            "password": [redacted],
            "devices": {
                "Blind 1": {
                    "commands": [
                        "close",
                        "open"
                    ]
                },
                "Blind 2": {
                    "commands": [
                        "close",
                        "open"
                    ]
                },
                "Blind 3": {
                    "commands": [
                        "close",
                        "open"
                    ]
                },
                "Blind 4": {
                    "commands": [
                        "close",
                        "open"
                    ]
                }
            },
            "_bridge": {
                "username": "[redacted]",
                "port": [redacted]
            }
        }
thehilsnz commented 3 years ago

I've disabled polling, but it still seems to be doing it? And, still more frequently than the default 10 mins (as it was before).

Is this because we have an iPad dedicated to controlling the house which has the Home app always open and displayed?

image
yenoiwesa commented 3 years ago

Okay there is some confusion here in what you are seeing. A GET event is when HomeKit is calling the plug-in to refresh its value.

If you use Home app widgets on any device's springboard (or the macOS widget panel) and/or have home accessories displayed in your pullout quick settings, every time you display any of these, your device will call the plug-in to refresh its values. This is expected, this is how HomeKit works. The more devices/views you have, the more calls you will see.

This doesn't mean that the plug-in will refresh its state against the Somfy servers. The plug-in implements a short lived cache. Polling is for the plug-in's state refresh. Nothing will change the HomeKit GETs.

To see the requests to the Somfy servers you need to enable debug logging when you start homebridge (command like argument -D).

yenoiwesa commented 3 years ago

But nothing from your screenshots here indicates an issue in the plug-in.

thehilsnz commented 3 years ago

That makes total sense - thanks. I'll see if disabling the polling (to Somfy servers) makes a difference, and if not, will change the view on the iPad to not include the Blinds, and see if that helps. Will try and only do one thing at once so I can figure out what has an impact! If it is the iPad, perhaps something in iOS 15 has changed that is affecting this.

yenoiwesa commented 3 years ago

Yes changing one parameter at a time and assessing its impact in isolation is the best way forward :-)

Do let me know, I am very curious about this issue! Nobody likes a house that becomes sentient :-P

thehilsnz commented 3 years ago

Hey there, still no luck. I’ve tried removing the blinds from HomeKit favourites, and I’ve closed the Home app on the iPad main screen, as well as from all Apple device control centres etc…… As an aside, I’ve noticed that the HK get/set commands get triggered when you a) open the Home app at all, b) browse to the room the blinds are in, and c) click on the Accessories page in Homebridge.

I’ve enabled the debug logging in Homebridge and this is an example of what I see (the last entries are rogue Sets that weren’t sent by us).

Polling is still enabled.

Any thoughts??

0B47EBA1-2B3F-4539-91DC-4A8EA3F3FB86

yenoiwesa commented 3 years ago

Hi @thehilsnz, I’m sorry there is not much I can do here to help. The logs show that the plug-in receives a SET request from HomeKit. Here the plug-in behaves as expected. What was the outcome of your test disabling polling by the way? You also mention an accessory page in homebridge, homebridge is purely a server and does not have a UI. Do you mean the homebridge UI plug-in? I personally do not use this plug-in and I don’t if it could be sending these commands. I’d attempt to disable it from your config for testing.

thehilsnz commented 3 years ago

I think I’ve figured it out!!!

A month or so ago I put an Eve button by the blinds to allow for physical control of the blinds as well as voice. I’ve since switched this button to another function and low and behold this function now sends multiple requests via it’s plugin in Homebridge resulting in multiple, apparently legitimate, triggers of the webhook it’s connected to.

I finally stumbled on the right Reddit thread where I found out there’s a (little) known issue with Eve (or all standalone Bluetooth buttons, I.e. without a hub) that on occasion when the Home app is opened or browsed it can trigger the firing of the last action activated by the button! Pretty fundamental flaw really. But, this explains everything - I.e. why your plugin that had been AMAZING for over a year suddenly seemed to stop working, and that coincided with the adding of the Eve button, and also why it was mainly just Blind 2 that went rogue as that was generally what the button was used for the most etc……

I’ve re-enabled the plugin (had been using a workaround for the week of webhooks via IFTTT which worked fine but is limited to Connexoon scenario/ambience control only, not device level, so is a pain) and am hoping the “ghost in the blinds” will be gone!

Thanks again for your support - and who knows maybe this will help someone else who has Eve/Bluetooth buttons in their system. We mostly use the Philips Hue Wireless Dimmer Switches in the house and have had no issue with them, as they are connected via a bridge not standalone.

yenoiwesa commented 3 years ago

That is quite interesting @thehilsnz !! Thanks for reporting your findings here, that might definitely help someone else with the same problem in the future.

I almost bought that Eve bluetooth button at some point, in hindsight I am glad I didn't :-P

I will keep this issue open for an additional week to make sure your issue is fixed. If everything is back in order by then, I will close the issue.

Cheers!

yenoiwesa commented 3 years ago

Hey @thehilsnz, it's been a week now, can you still confirm that your blinds are not possessed by Satan anymore?? 👻

thehilsnz commented 3 years ago

Hahahahaha. It for sure felt a bit like that for a while!!! I can confirm the blinds have been exorcised and are back to normal! Looks like the Eve Bluetooth button was the culprit - the blinds are still attached to a Hue button as they've always been and no issues. Thanks again for your patience and support.

yenoiwesa commented 3 years ago

Great news! 😄

I will close this issue then. Enjoy your automated blinds!