aarons22 / homebridge-bond

Homebridge plugin for Bond
MIT License
64 stars 31 forks source link

Shade state improperly assumed and commands not executed #200

Open gymrat801 opened 2 years ago

gymrat801 commented 2 years ago

Describe the bug Somfy shades are not correctly controlled using the Bond plugin because the shade state is improperly assumed, and if the requested state matches the incorrect saved state, no command is sent to the shade. This is the case whether the Home app and Siri are the sole method of control, or if other devices such as Somfy remotes or wall buttons are involved.

Example (using the Bond plugin's own "Preset" switch):

  1. Shade is currently closed and Home app shows shade is closed.
  2. Using the Home app you activate the "Preset" switch, powering it "On", to lift the shade to the preset level.
  3. Home now shows the shade as open...which it is, albeit only partially open.
  4. Tell Siri or try to use the Home app to open the shade in order to fully open the shade. Siri fails. There's no way in the app to do it as the shade is already open.
  5. The only way to get Siri/Home app to work now is to send the close command followed by the open command.
  6. The same thing happens if you use a remote or wall control that interferes with the saved state of the shade. Again, this is not the case with the Homebridge-MyLink plugins.

Information (please complete the following information):

Logs Attached Bond.log

The only command successfully sent was to activate the Preset on my Office shade.

Homebridge-MyLink gets around this problem and resends the command. I'm not sure how, or what type of configuration they did differently to the devices (the shade states aren't open/closed, they're fully electable percentages of 0-100%, 50% being the "Preset").

The logs from Homebridge-MyLink look like this:

37m[1/13/2022, 7:24:16 PM] [Somfy myLink] Setting position of Bedroom Windows (CC1062FF.2) from 50% to 0%. [37m[1/13/2022, 7:24:29 PM] [Somfy myLink] Setting position of Bedroom Windows (CC1062FF.2) from 0% to 0%.

gymrat801 commented 2 years ago

Looks like I need to update the issue, since the issue isn't resending the command. Bond does resend the command, HomeKit just ignores it because of the way the shade slider is configured.

Homebridge-Mylink successfully gets HomeKit to execute again, even if the requested state is the same as the assumed state. Bond uses a 2-position shade slider. Open/Closed, plus a toggle for the Preset. This doesn't work because the Preset is able to open the shade without the shade's state being changed to open.

In the case of Homebridge-Mylink they use a full 0 to 100% state slides, with 50% triggering the preset. It's not ideal from a user perspective, but it does work correctly.

0 = Closed 1-49 = Open 50 = Preset 51-100 = Open

This really does solve the problem, and would be extremely welcome, because currently there is no way to use Bond with Somfy roller shades if you also want to use the Preset. Open/Close on their own will work...but Preset messes everything up.

Alternatively, using the Preset button could also trigger a state change in the shade to open. The Preset is going to be an open position no matter what. So activating it should change the state to open. The only down-side here is that you have the reverse problem above...you can't open the shade fully without closing it first because once Preset puts your shade at the preset position and changes the state of the shade to open, HomeKit sees the shade as fully open already. For this reason this workaround really only reverses the problem and the Homebridge-Mylink approach is preferred.

gymrat801 commented 2 years ago

homebridge-connexoon has the best implementation of a Somfy controller in HomeKit and the Bond plugin would be greatly helped by implementing the same way they handle shades. 1 shade slider (not a shade and a button, which fixes the issue with shade state). 3 positions total (unlike homebridge.mylink that utilizes a fully selectable shade position slider even though there are only 3 recognized positions for the Somfy motors). Open. 50%/"My". Closed. You can't select anything in-between.

I finally gave in and replaced my MyLink controllers and got the Tahoma controller since no one seems to be listening. The MyLink plugins and Bond could have worked, if someone would have just listened to someone who's actually got the motors and is using HomeKit.