mylylyl / homebridge-soma-shades

Homebridge plugin for SOMA Shades
8 stars 2 forks source link

HomeKit keeps thinking blinds are closing when not #2

Open danielniemeyer opened 3 years ago

danielniemeyer commented 3 years ago

Describe The Bug:

Going into the Home app shows both my Soma Shades as actively closing when they are both sitting idling. If I open the accessory in the HomeBridge accessories page, they are both correctly listed as idle in the open state.

To Reproduce:

  1. Restart homebridge server.
  2. Launch Home app
  3. Check soma status
  4. Status says “opening”

Expected behavior:

Expected Home app status to match homebridge and blinds actual status.

Logs:

Show the Homebridge logs here, remove any sensitive information.

Plugin Config:

Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

mylylyl commented 3 years ago

Thanks for the report. It's a known bug related to the refresh thread stopped working - hence not updating the blinds states. It seems to be a noble(a bluetooth library this plugin requires on) bug but I'm looking into this. Do you have more than one bluetooth connected by any chance?

danielniemeyer commented 3 years ago

Thanks for reaching out! Let me know if there’s any more information you need. I am more than happy to help you track the root cause. To answer your question I do have multiple devices connected. Both my Soma Shades 2 are connected to the same Rasberry Pi. I am told the Pi itsef can handle multiple Bluetooth connections limited only RAM. In my case I have 4GB

mylylyl commented 3 years ago

I have the same issue and mine setup is a shade and a bluetooth switch. When I first coded this plugin it works fine with only the shade. I'm assuming I'm using noble wrong or it simply doesn't support multiple bluetooth devices. What kind of bluetooth dongle you use?

danielniemeyer commented 3 years ago

Interesting... I wonder if it's the Bluetooth controller then... I don't have a dongle actually. I have a Pi 4, so it comes with an included Bluetooth chip.

mylylyl commented 3 years ago

Just checked I'm using the on-board bluetooth as well. I'll see if I can get a dongle to test.

erwinloh commented 3 years ago

I can confirm this bug - I can control the blinds in the Home app, but the blinds status are not correct in the Home app - keeps saying "opening" all the time.

Would be great if this was working.

mylylyl commented 3 years ago

I can confirm this bug - I can control the blinds in the Home app, but the blinds status are not correct in the Home app - keeps saying "opening" all the time.

Would be great if this was working.

do you have more than one blinds?

erwinloh commented 3 years ago

Yes - I have six blinds.

mylylyl commented 3 years ago

Yes - I have six blinds.

wow that's a lot!

I'll try to get my hands on this issue this week

erwinloh commented 3 years ago

@fisherwise thanks for the response.

I think this issue of the platform not being able to get the current status of the blinds is also the reason why there is a secondary bug, where you can control each blind in the Home app, but only if you open it up to 99% or close it up to 1% - if you fully open or close in the home app, nothing happens.

erwinloh commented 3 years ago

@fisherwise - I just added a 7th soma smart shade 2 to the setup. Looking forward to seeing if we can get this fix, as this is an awesome plugin, and more stable that the soma connect setup.

mylylyl commented 3 years ago

@danielniemeyer @erwinloh just published a new version with proper handlement of errors. Please update the plugin in homebridge and let me know if the error persists.

erwinloh commented 3 years ago

Just updated - it's actually worse, the blinds are no longer responsive. Nothing works.

In the log, I see this error:

[SOMAShades] noble is not running. waiting for it to power on...

Which is not true - noble is running, as I use it for other plugins, which still work.

erwinloh commented 3 years ago

@fisherwise see above - I've updated, and the log now says that noble is not running.

I get the same error despite restarting services or rebooting the Homebridge server.

Maybe revert the plugin to how it was before - at least I could still control the blinds.

mylylyl commented 3 years ago

can you paste the full log of a homebridge restart? Normally you will get a noble is powered on following the not running message

erwinloh commented 3 years ago

@fisherwise

25/01/2021, 7:14:23 pm [SOMAShades] noble is not running. waiting for it to power on... 25/01/2021, 7:14:23 pm noble warning: adapter state unauthorized, please run as root or with sudo 25/01/2021, 7:14:23 pm or see README for information on running without root/sudo: 25/01/2021, 7:14:23 pm https://github.com/sandeepmistry/noble#running-on-linux

Bear in mind I have run that command to run noble without root/sudo ages ago, and also again.

sudo setcap cap_net_raw+eip $(eval readlink -f which node)

erwinloh commented 3 years ago

I downgraded to the previous version, but for some reason, none of the blinds showed up anymore in the home app. Weird.

erwinloh commented 3 years ago

I've gone back to the latest version - the error is still the same:

[SOMAShades] noble is not running. waiting for it to power on...

Also, is there any way to force the discovery of the blinds so they show up in the Home app? All 7 have disappeared from the home app. At least in the previous version I could control them, albeit without Home knowing if they were open or closed.

mylylyl commented 3 years ago

I downgraded to the previous version, but for some reason, none of the blinds showed up anymore in the home app. Weird.

there's is a config change from previous version (the discoverDelay variable). You may try remove this field if you downgraded.

Which is not true - noble is running, as I use it for other plugins, which still work.

do you have other plugin that uses noble? if so please try use the discoverDelay field in config to avoid discovering BLE devices at the same time

mylylyl commented 3 years ago

abandonware/noble#26 might be the ultimate solution...or a BLE gateway plugin of some kind

erwinloh commented 3 years ago

@fisherwise - all good - I decided to get a separate Pi unit, flashed the new Soma Connect software onto it, and managed to get all 7 blinds working with controls and sensors accurate.

I appreciate your work here, keep it up, and thanks for the updates!

costispavlou commented 3 years ago

I have the same issue: [3/15/2021, 11:19:08 AM] [SOMAShades] noble is not running. waiting for it to power on... [3/15/2021, 11:19:08 AM] [SOMAShades] noble is powered on and 2/3 shades show 0% battery.

costispavlou commented 3 years ago

managed to somehow fix the battery issue but the plugin does not work at all. Will also try to downgrade.

[3/15/2021, 1:05:37 PM] [SOMAShades] discovered peripheral xxx , adding to accessories [3/15/2021, 1:05:47 PM] [SOMAShades] peripheral xxx failed to connect Error: timed out [3/15/2021, 1:05:47 PM] [SOMAShades] accessory Venetian Blind failed to get device information: Error: Error: timed out [3/15/2021, 1:08:20 PM] [SOMAShades] moving Venetian Blind up to 100 [3/15/2021, 1:08:20 PM] [SOMAShades] peripheral eef039b336ca is not connected for getTargetPosition [3/15/2021, 1:08:30 PM] [SOMAShades] peripheral eef039b336ca failed to connect Error: timed out [3/15/2021, 1:08:30 PM] [SOMAShades] Venetian Blind failed to set target position: Error: Error: timed out

costispavlou commented 3 years ago
[3/15/2021, 6:52:18 PM] [SOMAShades] noble is not running. waiting for it to power on...
[3/15/2021, 6:52:18 PM] [SOMAShades] noble is powered on
[3/15/2021, 6:52:18 PM] [SOMAShades] start noble scanning
[3/15/2021, 6:52:18 PM] [SOMAShades] peripheral 28ff3c9398c6 is not in config
[3/15/2021, 6:52:18 PM] [SOMAShades] peripheral 3f71f048f0b4 is not in config
[3/15/2021, 6:52:19 PM] [SOMAShades] peripheral 7eec0a6d16a9 is not in config

But... the peripherals are not those

image

I uninstalled the plugin, removed config, reinstalled and reconfigured. same result. @fisherwise help?

some more logs after loads of tampering. maybe something is wrong with the bluetooth module?

[3/15/2021, 9:22:22 PM] [SOMAShades] noble is not running. waiting for it to power on... [3/15/2021, 9:22:22 PM] [SOMAShades] noble is powered on [3/15/2021, 9:22:23 PM] [SOMAShades] discovered peripheral eef039b336ca, adding to accessories [3/15/2021, 9:25:37 PM] [SOMAShades] peripheral eef039b336ca failed to discover motor characteristics: Error: timed out [3/15/2021, 9:25:37 PM] [SOMAShades] peripheral eef039b336ca has invalid motor characteristics [3/15/2021, 9:25:37 PM] [SOMAShades] Venetian Blind failed to initialize: Error: invalid motor characteristics [3/15/2021, 9:25:58 PM] [SOMAShades] peripheral eef039b336ca failed to discover motor characteristics: Error: timed out [3/15/2021, 9:25:58 PM] [SOMAShades] peripheral eef039b336ca has invalid motor characteristics [3/15/2021, 9:25:58 PM] [SOMAShades] Venetian Blind failed to initialize: Error: invalid motor characteristics [3/15/2021, 9:26:23 PM] [SOMAShades] peripheral eef039b336ca failed to discover motor characteristics: Error: timed out [3/15/2021, 9:26:23 PM] [SOMAShades] peripheral eef039b336ca has invalid motor characteristics [3/15/2021, 9:26:23 PM] [SOMAShades] Venetian Blind failed to initialize: Error: invalid motor characteristics [3/15/2021, 9:26:43 PM] [SOMAShades] peripheral eef039b336ca failed to discover services: Error: timed out [3/15/2021, 9:26:43 PM] [SOMAShades] peripheral eef039b336ca has invalid services [3/15/2021, 9:26:43 PM] [SOMAShades] Venetian Blind failed to initialize: Error: invalid services [3/15/2021, 9:27:05 PM] [SOMAShades] peripheral eef039b336ca failed to discover motor characteristics: Error: timed out [3/15/2021, 9:27:05 PM] [SOMAShades] peripheral eef039b336ca has invalid motor characteristics [3/15/2021, 9:27:05 PM] [SOMAShades] Venetian Blind failed to initialize: Error: invalid motor characteristics [3/15/2021, 9:27:27 PM] [SOMAShades] peripheral eef039b336ca failed to discover motor characteristics: Error: timed out [3/15/2021, 9:27:27 PM] [SOMAShades] peripheral eef039b336ca has invalid motor characteristics [3/15/2021, 9:27:27 PM] [SOMAShades] Venetian Blind failed to initialize: Error: invalid motor characteristics [3/15/2021, 9:28:30 PM] [SOMAShades] peripheral eef039b336ca failed to read current position: Error: timed out [3/15/2021, 9:28:30 PM] [SOMAShades] Venetian Blind failed to get current position: Error: Error: timed out [3/15/2021, 9:28:30 PM] [SOMAShades] peripheral eef039b336ca is not connected for getTargetPosition [3/15/2021, 9:28:41 PM] [SOMAShades] peripheral eef039b336ca failed to discover motor characteristics: Error: timed out [3/15/2021, 9:28:41 PM] [SOMAShades] peripheral eef039b336ca has invalid motor characteristics [3/15/2021, 9:28:41 PM] [SOMAShades] Venetian Blind failed to get target position: Error: invalid motor characteristics

mylylyl commented 3 years ago

@costispavlou could be. Have you tried removing the other 2 and leaving only one blind? I personally have not seen timed out errors as it's configured pretty long (10s).

costispavlou commented 3 years ago

I did, no change. I also removed the plugin completely from cache and reinstalled. again nothing. So I left it be and got to bed. Weirdly enough yesterday night, two worked (but kept showing closing / open) when they were 50% open. the third one is still not found / cannot be seen in the plugin. My time out configuration is 15s I think, the default right?

mylylyl commented 3 years ago

the opening/closing issue is related to noble not able to connect multiple BLE devices. It will work sometime due to racing, just restart homebridge. I'll check on this wrong peripharel thing. Did you mean you reinstalled homebridge and it still reads wrong devices?

costispavlou commented 3 years ago

no i haven't reinstalled homebridge, i reinstalled your plugin though numerous times

costispavlou commented 3 years ago

just checked the logs again, every hour the third one continues to time out. the other two.. well i dunno.. IMG_0E7ED5FCE1B1-1

mylylyl commented 3 years ago

no i haven't reinstalled homebridge, i reinstalled your plugin though numerous times

this probably because of the caching in homebridge. I'll look into this.

costispavlou commented 3 years ago

@fisherwise hey I was wondering if you have any updates on this one. Still not able to control / see the curtains.

mylylyl commented 3 years ago

I don't really have time recently to update the plugin. I think the best option now is to reinstall homebridge so you clear all the caches it has.

mitch0405 commented 3 years ago

just checked the logs again, every hour the third one continues to time out. the other two.. well i dunno.. IMG_0E7ED5FCE1B1-1

I also have this issue, everything works most of the time though. Sometimes it interferces with turning on a light (also connected with homebridge). Is there already a solution or workaround maybe?

costispavlou commented 3 years ago

nothing for months, from the developer. He has no time in dealing with updating the plugin. In any case I personally have lost interest in these pieces of shit devices. Better go back to manual.

mylylyl commented 3 years ago

sorry i've been really busy recently. I'll hopefully get some work done but I just can't guarantee if it will work.

in the meantime you can try to use the new bridge function providede by homebridge. It basically runs multiple instance of homebridge and you can seperate this plugin in its own homebridge instance. This will resolve your issues 1) since it's basically a new instance you'll get correct configured shades 2) if it's having problem connecting to shades just restart the child bridge without affecting other homebridge devices

costispavlou commented 3 years ago

wish you were right, but.... same issues, now its worse.

image

mylylyl commented 3 years ago

ok i guess I'll have to put some delay between each device polling...

mitch0405 commented 3 years ago

sorry i've been really busy recently. I'll hopefully get some work done but I just can't guarantee if it will work.

in the meantime you can try to use the new bridge function providede by homebridge. It basically runs multiple instance of homebridge and you can seperate this plugin in its own homebridge instance. This will resolve your issues 1) since it's basically a new instance you'll get correct configured shades 2) if it's having problem connecting to shades just restart the child bridge without affecting other homebridge devices

No worries, I understand.

Unfortunately creating a child bridge also gave me more problems, same as costispavlou. Reverting back did not work, so now I just use the triggers in the original app.

I am thinking of buying a new pi zero and just clone the original soma connect software, but since the pi zero is out of stock over here I will have to wait