chrivers / bifrost

Hue Bridge Emulator
GNU General Public License v3.0
100 stars 5 forks source link

Optionally Hide Devices #20

Open konistehrad opened 2 weeks ago

konistehrad commented 2 weeks ago

While we work on more accurate device detection in #17, it might be worth it to allow customizing individual devices based on Friendly Name or IEEE address. This change would create a structure like the following in config.yaml:

devices:
  0xdeadbeefdeadbeef:
    hidden: true

I also propose we add a way to explicitly add devices as opposed to explicitly hiding them via a global config setting like:

bridge:
  ...
  devices_implicitly_hidden: true

Which would set the default device hidden value to true as opposed to false, and allow for explicit visibility in the devices region. Let me know what you think, and thanks again!

chrivers commented 2 weeks ago

So, there are a few ways to go about this.

We could make a "devices" section, like we have for "rooms", as a place to override certain information for ui/ux purposes.

But if we are hiding devices, we could instead focus on a way to control which devices are even "known" by bifrost. A little bit like the "group_prefix" option we have for rooms.

Actually, if people are willing to rename their lights in z2m, I guess we could have a "device_prefix" option that works in the same way.

Controlling visibility through prefixing really isn't a good, sustainable way to do this, but it might work well enough.

I just realized that z2m might be able to be extended, so we could put some actual metadata on things from there. I'm not sure it will work, but it might.

I'd really like to see some real-world examples, before we go in a direction, so we don't end up with 17 different, slightly unaligned mechanisms for controlling what bifrost does :smirk:

konistehrad commented 2 weeks ago

My only thought is that for people controlling their Z2M net outside of Bifrost, renaming the devices themselves could "leak" a lot of cruft to other supporting HA stacks, including such as homebridge-z2m or Home Assistant. I think moving to a prefix-only style says "you're only using Bifrost with Z2M", which sort of takes a lot of the wind out of the sails of the very generic MQTT solution that Z2M promotes.

chrivers commented 2 weeks ago

That's fair - I'm not a big fan of prefixing either. It was added by popular demand :D

I think it makes sense to be able to hide specific rooms, especially since we have a config section for "rooms" anyway :+1:

chrivers commented 2 weeks ago

I'm not sold on devices_implicitly_hidden, though. I think we need to think that through a bit more

chrivers commented 1 week ago

I look forward to seeing your PR for this - it would also close #16 :)