ebaauw / homebridge-deconz

Homebridge plugin for deCONZ
Apache License 2.0
135 stars 7 forks source link

For my Mueller Light devices there are scenes being exposed to HomeKit #99

Closed SimplyNordic closed 1 year ago

SimplyNordic commented 1 year ago

I have some MLI (Mueller Light, Tint) devices and there I always get some "scenes" like party, romantic, work light,... exposed. In homebridge-hue I was able to disable this. Is this also possible in this new deconz only plugin? If not yet, do you have this on the roadmap? I tried to do this via the api but cannot find something there.

ebaauw commented 1 year ago

That should be the exposeEffects setting per accessory.

SimplyNordic commented 1 year ago

Tried this but they still got exposed.

curl -s -X PUT -H "Content-Type: application/json" -d '{"exposeEffects":false}' http://127.0.0.1:37433/gateways/00212EFFFF04E71A/devices/CCCCCCFFFEBB2416/settings

SimplyNordic commented 1 year ago

Found it. Need to be changed with /accessories and not /devices

What exactly is the difference here? ID of Device and Accessory is the same.

ebaauw commented 1 year ago

devices are the devices on the deCONZ gateway; accessories are the corresponding accessories as exposed to HomeKit. The accessory ID is copied from the device ID. You expose a device, and you change the accessory settings.

curl is lousy in error reporting (it doesn't show the HTTP status code), but it should report the response body. This contains the setting and new value for each setting that was accepted (and being applied). If it's empty, no settings were accepted. I'm half considering writing a command-line utility that does report errors and handles recovering the port from cachedAccessories.

Note that when changing settings that determine how to expose an accessory, the accessory, service, and characteristic delegates are deleted and re-created, very much like when Homebridge is restarted. The HomeKit accessory, services, characteristics themselves remain; new ones are added, and stale ones are removed. You can trigger this manually by setting "expose": true (from true) on the accessory. When setting "expose": false (either on the accessory or on the device), the HomeKit objects are removed, and when subsequently setting "expose": true (on the device), HomeKit will treat the accessory as new (having lost any connection to HomeKit rooms, groups, scenes, and automations).

SimplyNordic commented 1 year ago

Ahh, ok, thx. It worked now after setting it on the accessory and not the device. Btw. Thank you a lot for your great plugins. Used the hue one in the past and now switched over to the deconz one which already works without any errors for me. Great work!!