Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.0.0 Beta release #103

Closed
aarons22 opened this issue Sep 5, 2020 · 24 comments
Closed

3.0.0 Beta release #103

aarons22 opened this issue Sep 5, 2020 · 24 comments

Comments

@aarons22
Copy link
Owner

aarons22 commented Sep 5, 2020

Hello! I just released a beta version of the 3.0.0 release. Most of the plugin has been re-written to be more scalable for different device types and use cases. There are also a few new features:

  • BPUP Support! (Add BPUP support #62)
    • This keeps the state of the HomeKit device in lockstep with the Bond, and it reduces the number of API calls by 3x! The end result is a much more seamless experience and (hopefully) fewer instances of "No Response" or "Loading" on your Home tiles
    • This also has the side effect of preventing HomeKit from polling the same device for multiple state attributes (for users with a lot devices, this is going to be very noticeable). (Prevent multiple "state" polling for the same device #81)
  • Ability to fix state (Fix state #75)
    • If BPUP doesn't solve all of your device state woes (for example, with a device that is also controlled by a remove), you can enable the include_toggle_state option in your config, which will add a toggle switch to your device in HomeKit. This is available for any device that has power, light or open device states (essentially everything except fans and dimmers).

To opt into beta, run:

npm install -g homebridge-bond@3.0.0-beta.1

There were a lot of changes made in this release, so I anticipate a few unforeseen issues. Please respond to this issue with any issues you run into!

@aarons22 aarons22 pinned this issue Sep 5, 2020
@jnanes
Copy link

jnanes commented Sep 5, 2020

Hey Aaron,

Awesome update. I added the include_toggle_state option but it’s only showing for one of my fan/light combos that has a remote. Any ideas?

@aarons22
Copy link
Owner Author

aarons22 commented Sep 5, 2020

@jnanes hm, not sure. I've got two fan/light devices and I just confirmed they both have the toggle switch. The toggle gets added to a fan device if it has a single light (Up / Down lights aren't supported at the moment).

Logs are the most helpful thing you can provide. It's even better if you can provide logs while in debug mode (instructions here)

@jnanes
Copy link

jnanes commented Sep 5, 2020 via email

@aarons22
Copy link
Owner Author

aarons22 commented Sep 5, 2020

@jnanes cool, I may try to get that in the next beta and have you test it since I don't have a fan like that

@jnanes
Copy link

jnanes commented Sep 5, 2020 via email

@chrismerck
Copy link

include_toggle_state

Excellent idea! That will be a much better UI experience for these toggle-based lights.

@aarons22
Copy link
Owner Author

@jnanes I just pushed out a new beta with a few changes:

  • Added ToggleState switches for Up/Down fan light
  • Added Dimmer switches for Up/Down fan light

Would you mind testing it out? You can install the latest by running:

npm install -g homebridge-bond@3.0.0-beta.1

@aarons22
Copy link
Owner Author

@vdotn and @dxdc - would love for you to try out 3.0.0 if you are available!

@dxdc
Copy link
Contributor

dxdc commented Sep 22, 2020

@aarons22 Sure, I would be willing to give it a spin, but can you remind me how to disable specific classes of devices? I have been hesitant to upgrade bc all my shades rigged through another plugin / the Bond API and don't want them to appear 2x :)

@aarons22
Copy link
Owner Author

@dxdc you can exclude device ids in a bond by adding the hide_device_ids property. For example:

"platforms": [
    {
        "platform": "Bond",
        "bonds": [
            {
                "ip_address": "<BOND_IP_ADDRESS>",
                "token": "<BOND_TOKEN>",
                "hide_device_ids": ["000033"],
            }
        ],
    }
],

@dxdc
Copy link
Contributor

dxdc commented Sep 22, 2020

Thanks @aarons22 !

Ran into an issue in just the migration for the cachedAccessories, for now. I have several generic "remote" controls set up that I use for simple on/off remotes. Essentially, for every single one of these it duplicated the control, giving me 2 on/off buttons for each one.

For now, I just reverted to the prior install until we sort this out. I can probably manually tune cachedAccessories, but didn't dig into it yet.

(I should also point out that the displayName in HK that I use is different than the displayName in Bond, not sure if it's relevant).

Before upgrade:

{
        "displayName": "Yard Outlet 2",
        "UUID": "00000049-0000-1000-8000-0026BB765291",
        "hiddenService": false,
        "primaryService": false,
        "characteristics": [
          {
            "displayName": "Name",
            "UUID": "00000023-0000-1000-8000-0026BB765291",
            "props": {
              "format": "string",
              "unit": null,
              "minValue": null,
              "maxValue": null,
              "minStep": null,
              "perms": [
                "pr"
              ]
            },
            "value": "Yard Outlet 2",
            "eventOnlyCharacteristic": false
          },
          {
            "displayName": "On",
            "UUID": "00000025-0000-1000-8000-0026BB765291",
            "props": {
              "format": "bool",
              "unit": null,
              "minValue": null,
              "maxValue": null,
              "minStep": null,
              "perms": [
                "pr",
                "pw",
                "ev"
              ]
            },
            "value": false,
            "eventOnlyCharacteristic": false
          }
        ],
        "optionalCharacteristics": []
      },

After upgrade, added an entirely new section below, creating 2 buttons for each.

      // same as above
     // instead of *merging*, it just added a secondary control
      , {
        "displayName": "Yard GX",
        "UUID": "00000049-0000-1000-8000-0026BB765291",
        "subtype": "Power",
        "hiddenService": false,
        "primaryService": false,
        "characteristics": [
          {
            "displayName": "Name",
            "UUID": "00000023-0000-1000-8000-0026BB765291",
            "props": {
              "format": "string",
              "unit": null,
              "minValue": null,
              "maxValue": null,
              "minStep": null,
              "perms": [
                "pr"
              ]
            },
            "value": "Yard GX",
            "eventOnlyCharacteristic": false
          },
          {
            "displayName": "On",
            "UUID": "00000025-0000-1000-8000-0026BB765291",
            "props": {
              "format": "bool",
              "unit": null,
              "minValue": null,
              "maxValue": null,
              "minStep": null,
              "perms": [
                "pr",
                "pw",
                "ev"
              ]
            },
            "value": false,
            "eventOnlyCharacteristic": false
          }
        ],
        "optionalCharacteristics": [
          {
            "displayName": "Name",
            "UUID": "00000023-0000-1000-8000-0026BB765291",
            "props": {
              "format": "string",
              "unit": null,
              "minValue": null,
              "maxValue": null,
              "minStep": null,
              "perms": [
                "pr"
              ]
            },
            "value": "",
            "eventOnlyCharacteristic": false
          }
        ]
      }

@aarons22
Copy link
Owner Author

@dxdc thanks for the detailed response! I was able to identify the issue because of it and pushed out a new beta (3.0.0-beta.2)

@dxdc
Copy link
Contributor

dxdc commented Sep 24, 2020

@aarons22 that is looking much better! Some basic controls like on/off for my devices work just fine (as I mentioned, I'm using a different plugin for the shades, so can't test that).

My only request - can you use the prior displayName as it's different than the one I have set up in Bond? It's a little tricky for me to map the device names again unfortunately and I have a lot of devices set up.

@dxdc
Copy link
Contributor

dxdc commented Sep 24, 2020

Scratch that. I wasn't even able to revert my cachedAccessories file, so not sure what exactly was overwritten on the backend.

But I guess the main things are, if possible:

  • maintain displayName
  • keep existing icon (if possible)

I had to go in and rename all those devices again within HK. It preserved the rooms they were in, but not the name or icon (reverted to the setting in the Bond app). But after doing that, it seems to work so far. Let me know if there's anything specific you want me to test. I'll keep running the beta for the meantime.

@aarons22
Copy link
Owner Author

Thanks for the feedback! It's possible those are breaking changes for upgrading to 3.0.0, but I'll do some testing on my end to see if I can prevent it. What version were you on prior to upgrading to the beta?

@dxdc
Copy link
Contributor

dxdc commented Sep 24, 2020

Yeah, it may be an HK issue. I was on 2.8.9. I'm also running the latest tvOS (not sure it matters).

@matts07
Copy link

matts07 commented Sep 26, 2020

Awesome release @aarons22! Got rid of persistent “No Response” problem

Request: Beta-2 fan icon is ‘standing fan’ vs ceiling fan in 2.8.9, can it be changed back?

@aarons22
Copy link
Owner Author

@matts07 yeah it sounds like there is an issue persisting accessory name and icon from previous releases. Hoping to have that fixed in the next beta!

@aarons22
Copy link
Owner Author

@dxdc I'm trying to reproduce the displayName data migration bug, but no matter what I do, the displayName in my cached accessories never changes. I've tried changing it on the grouped accessory and individual accessory, but it never changes in the cachedAccessories file. I'm running homebridge 1.1.0, so perhaps this is something they stopped doing at some point? I'm curious what version of homebridge you are running.

@dxdc
Copy link
Contributor

dxdc commented Sep 27, 2020

@aarons22 I'm running 1.2.3

@aarons22
Copy link
Owner Author

hm, okay, that's not it. I may just push forward with the release and mention that as a possible breaking side effect. Hard for me to do anything about it when I can't replicate on my end. And I don't want to hold back the new features much longer

@matts07
Copy link

matts07 commented Sep 27, 2020

I never saw the displayName issue either, just the “wrong” fan icon

@aarons22
Copy link
Owner Author

@matts07 yeah unfortunately I can't seem to replicate that one either 😕.

@aarons22
Copy link
Owner Author

Luckily changing the icon is pretty easy. I can understand why changing the display name would be super annoying.

@aarons22 aarons22 unpinned this issue Sep 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants