Full Apple Homekit setup for the whole rest of my home including HomeBridge running on a Synology
What I am trying to do:
I want to make a setup that integrates seamlessly with the rest of my Apple Homekit Home such that no matter if I control the lights by the switch or by homekit, the current status/level is correctly reflected everywhere in essentially real time.
I want the three Zigbee downlights to be fully controllable by the Blue switch in Smart Bulb Mode.
a. I want to be able to easily dim the lights, in real-time, as I hold the up or down button
b. I want to be able to turn the lights on or off with a tap (or double-tap) on the up or down buttons
c. Extra Credit: I want to be able to cycle through some preset colors with the config button.
What I’ve tried:
No Zigbee Binding. Rule Manager programing in Hubitat. Hubitat Homekit Integration.
a. Pros: Customizable behavior of config button. Homekit seems to reliably reflect status cuz it’s all happening through the hub.
b: Cons: Way too much programming required. Very hard to know if I’m using the best/smartest triggers and actions. Easy for programming to stomp on other programming, messing things up and getting confused. I had a lot of trouble getting any programming to work reliably and predictably. Plus, trying to program a dimmer to dim lights in real-time does not seem well-suited to a trigger-based rules engine like all these home automation platforms have. Even using Hubitat RM’s fancy “Track Event Dimmer” feature, the dimming is not real-time - I have to hold down the button on the switch to set the level on the on-board LEDs, then only when I release the button do the lights actually dim to that level. This lack of real-time dimming is a deal-breaker.
Zigbee Binding. Hubitat Homekit Integration.
a. Pros: Direct control of the lights from the switch is fairly fast and they dim in real time.
b: Cons: If I click the bottom of the switch to turn the lights off, then I try to dim them up from 0 to a dim level, they flash to full as soon as they start to turn on then they jump back to their dim level - not good for sleepy eyes at night. Status in Homekit seems very unreliable and spotty when I am controlling the lights with the physical switch. Sometimes it refreshes properly, but often it does not, especially if I’m doing a combination of dimming and switching on/off. I tried a version where I mostly look at/control the lights themselves in Homekit and ignore the switch in Homekit. I also tried a version where I mostly look at and control the switch and only look at the lights when I want to set their color. Neither version is working reliably. I also tried a third-party Homebridge-based Homekit Integration but it doesn’t seem to support Dimmers very well, if at all. And it has most of the same cons as the built-in integration.
I have now sunk so many hours into this and I cannot believe it is this hard. I feel like I’m trying to do a pretty basic thing to have this fancy switch control some smart lights, but everything I try seems buggy and unreliable and annoying. I really like the physical look of this switch, but I am regretting getting any of this gear and feeling like I should have just stuck with 100% native homekit stuff. I was using this one circuit as a test and considering expanding this to the rest of my house, but at this point, that sounds like a nightmare. Does anyone out there have a way to make a setup like this actually work well? Or do we all just settle for mediocre buggy behavior and try to convince ourselves (and our spouses) it’s actually good?
I could have written thousands more words here about all the things I’ve tried and all the ways it’s been disappointing, so let me know if there is any more info I can provide to help with ideas or clarify things.
Thank you! Much appreciation to the community here. Seeing how active this forum was was one of the things that convinced me to buy the switch.
What version of firmware are you running? There was a bug in earlier firmware similar to what you describe but was fixed in one of the updates. Sorry I don’t recall the exact version numbers but I would first start with updating your firmware to make sure you are running the latest, greatest.
Another thing it could be is Parameter 23 “Quick Start”. This setting should be hidden on the Blue 2-1 but earlier versions of the driver exposed it so early adopters could experiment with it.
Depending on the version of driver you’re running (check the driverDate under State Variables) you may or may not see the Quick Start option. But it may be worthwhile to try forcing it to “disabled” by using the generic Set Parameter command. Set P23 to 0 to make sure Quick Start is disabled
Enter the values as shown above and then click on the Set Parameter box
Thanks. My driverDate is 2023-07-01. I do not see a QuickStart param. I set Param 23 to 0 as you suggested, but the behavior of the switch did not change.
And also now, one of the three lights has stopped responding to the switch. The other two still respond, but the third one seems to be ignoring the bindings. I can still control it directly from Hubitat or Apple Home.
Can you share some info on how you are doing the binding? My recommendation is to create a zigbee group with all the devices and then create a group binding from the switch to the group to control it in real time. Curious how it is currently setup before making more recommendations.
Thanks for popping in here, @EricM_Inovelli. I believe I set up the bindings precisely based on the instructions here in your knowledge base. The bindings are to the individual light devices. I did make a group using the Hubitat “Groups and Scenes” App, but that group is not shown as an option in the Zigbee Bindings App’s “To These Devices…” picker. I am not sure if the zigbee group idea you mentioned here is the same thing as a group in Hubitat, or something different. if it is different, how would I create it? I don’t see anything about that in the bindings instructions, unless I’m missing it.
I’m also confused about the differences between “Bind power”, “Bind level”, and “Bind color". Your instructions say to leave them all selected, but I have unselected Bind Color because I can’t imagine what it would do and I don’t think I want the color to be bound. But let me know if you think this is a problem.
You would first want to get rid of the individual bindings though. Go through the binding app and click the slider over from “bind” to “unbind” and then hit “save”. After you are sure the binding is gone (perhaps test it at the switch) then you can delete the binding app instance.
For individual binding (just for reference) it is ok to leave or to not select color. I usually do not select it because the device doesn’t support it, but it shouldn’t hurt anything if you leave it selected.
Ok. It’s weird how the main bindings instructions have a section specifically about “Smart Switch to Multiple Smart Bulbs” which doesn’t mention these other instructions. But this is fine. This method actually seems easier than the custom app. Maybe it should be the default method, even if it’s just one device in a group.
So I have just unbound the individual bindings, tested at the switch to confirm the binding was gone, and binded to the group using the new instructions.
But I’m not sure which of my issues you were hoping this new setup would fix/improve. The new binding is now working, but it has all the same buggy behavior as before:
The lights are still flashing to bright for a moment when I try to dim them up from powered-off.
The lights are still not refreshing their levels in Apple Home when I control them physically.
As I control the dimmer via Apple Home, it is not updating quickly or reliably in real life.
As I control the dimmer physically, it is not updating quickly or reliably in Apple Home.
When I tap the up or down button to power the lights on or off, they just bump and I can’t figure out how to make then fade.
Sometimes, I dim the lights down from the switch, but when i release the button, they “bounce back” and dim up a bit which is odd. Same thing in the other direction.
If I control the lights directly from Apple Home, the switch and lights obviously get all out of sync and everything gets messed up.
Was using group bindings hoping to fix any of these issues? Perhaps it will make it less likely for one of the lights to fall out of being controlled by the bindings as happened once, but not sure how it will address the rest of these issues.
Something doesn’t seem right with a couple of these issues. I’ll see if I can set up something similar to you for testing but:
#1 & #6 Make it seem like something else is in the equation adjusting the bulbs in addition to the switch.
#7 if you control the bulbs individually from Hubitat or Apple things will get out of sync. The only way around this is to control the group or to control the switch only (which is bound to the group).
The tonesto7 Homebridge integration is pretty popular with Hubitat users. I’ve also written one which is “full featured” and, IMO< a bit easier to set up. Its this one: homebridge-hubitat - npm . Both plugins do support dimmers, so it may be a configuration problem (which is why I suggest you might try the plugin I wrote as I think it is a bit easier to set up).
I’m in the “beta” group for Hubitat and the next release of system software (2.3.6) is supposed to improve on their built-in integration (I haven’t tested it though). Good luck.
This is my setup with Hubitat and the built in homekit integration. Seems to work pretty well, but there is one change that I am looking into. When the Zigbee Group is created in Hubitat it doesn’t configure reporting from the group. So, when the Inovelli adjusts the group, the hub doesn’t see the change. To get around that I used the Inovelli as the device in the homekit integration. By using only the switch to change the level of the group the Inovelli was always in sync with the group. I think I will look more into configuring reporting for the group though because I would rather have that exposed to Homekit.
One note here is that I think @mamber adjusted the driver to automatically bind to a group when the Inovelli is added to one. So I looked at the device settings page after creating the group and it was already bound (so I could skip that step).
I am not seeing this. Maybe there is another automation or a bulb specific issue? I am using 3 Hue bulbs for reference.
By using the Inovelli switch in Apple and by only adjusting the Inovelli to set the level the level was always correct in Apple. I’m looking into using the group instead though as mentioned above.
Not seeing this either. Everything is very snappy.
Same as #2
This may be bulb specific and you might want to see if your bulbs have a setting for transition speed. My hue bulbs have an instant off, but a fade on. The switch is simply sending an “on” or an “off” command to the bulbs and they are determining the speed to adjust by.
Not seeing this either. Maybe another automation?
Not having this issue when using just the Inovelli as the control point in Apple.
Overall I’m pretty impressed with the Hubitat and Homekit in my basic tests. I’m not an Apple user so I don’t have too much exposure to how their smart home stuff has developed over the years, but it seems pretty cool. I recently got a Homepod to start testing Thread/Matter stuff and this has been my first time really playing with it.
Does yours support Adaptive Lighting in homekit? That is one of the nice features of the tonesto7 one which is causing me to use that one over the built in one. I’m not seeing it mentioned in your readme.
Thanks for all this, @EricM_Inovelli ! I appreciate you looking into it. Some thoughtss/responses:
My group setup looks similar except with the folliwing differences:
I did not realize best practice was to include the Inovelli switch in the group with the bulbs. My group is just the bulbs and then I bound the switch to the group manually. Is there a reason I should change it to include the switch in the group? Or I got to the same place that way?
Because mine is a group of bulbs, they all were added via the “Select bulbs” dropdown on top, not the “Select Dimmers” dropdown as yours appear. And also, this means my " Group activation device" is shown as “bulb” not “dimmer” like yours.
When I was having issues with a bulb not responding well, i turned off “Enable On/Off Optimization”. That is still off right now.
Enable Logging is set to false on mine.
Should I change any of those things to match yours for best performance, or you think that all sounds fine? I do think that reporting for the group would be a very big help and probably that explains my issue #2.
As I mentioned in my original post, I too have sort of settled on primarily controlling the switch via Apple Home. I do agree that helps make a bunch of this work better. But I’m not really content with ONLY controlling the switch, as that won’t let me control the color of the lights, which is the whole reason I got all this zigbee stuff in the first place. So I need to be able to at least control the color of the lights in Homekit, right? Or I guess I could try to figure out how to have the configuration button on the Inovelli switch toggle some colors and just be happy with those, but I was finding that very complex to program as well…
And as for your responses to my issues list:
I am quite surprised this is not reproducing. It does not seem like a bulb issue or an automation issue to me. It’s far to fast to be anything but the zigbee direct binding. To reiterate, here is how to reproduce it:
a. Have the bulb group on via Zigbee bindings.
b. Click the down paddle on the switch to power the bulbs off.
c. Press and hold the up paddle on the switch to try to dim the bulbs up from zero.
Expected: They increase in brightness from 0 to 10% or something as I hold the button and dim them higher. So in the middle of the night, I can just gently dim them on to a low glow.
Actual: The flash to a bright level (maybe full or maybe their previous level) for like 100ms and then bump back down to the level they’re supposed to be at according to the dimmer. I have made a video here though it’s hard to see something so fast an based on relative intensity since the camera is trying to auto-exposure it too. But it’s pretty clear on the second demo in the video.
Yes. Will group reporting help the individual bulbs show their status/levels more reliably? I’m not exposing them to homekit as the group, but rather as the individual bulbs and those are what I hope will remain accurate.
Yeah. I’ve spent more time testing this and it works pretty well and snappy most of the time if I’m being slow and deliberate and giving everything time to think and process and keep up between every command. But if I make a bunch of level/power changes quickly in succession, that is when things get rough. It is like the system can’t keep up with quick commands and I’ll see it sort of snap back to an earlier state because I got ahead of it and it couldn’t keep up.
Maybe group reporting.
I understand that certain bulbs might have their own behavior here, but I’m talking about the behavior of the dimmer. For example, Leviton Decora Gen 2 smart dimmers and Lutron Caseta dimmers both work like this in every other circuit in my house. Even when I am just using the dimmer to turn the lights on or off, the dimmer treats that as a quick fade on/off. In the Leviton app, I can even control the duration of that fade on/off. I would hope/request that the Inovelli firmware or drivers would also provide a way to say “Power on and off via fade” and let me specify a duration. The ironic thing is, the indicator LEDs on the side of the Inovelli switch already work this way as is shown in my linked video above! I click the down button, the actual lights just bump off, but the LED strip in the switch quickly fades down to zero. See what I mean?
This behavior is really weird. There are zero other automations setup in any part of this equation. The only other thing I can think that might be causing this, or the appearance of this, is the HomeKit Adaptive lighting feature which I’m using on the bulbs via the tonesto7 homekit integration app in Hubitat. It basically tries to automatically tone the color temp of the lights based on time of and maybe also brightness. So there’s some chance that’s what I’m seeing here.
This issue is all about when I’m controlling the lights directly, not the switch. Basically, I wish the Zigbee bindings could work bi-directionally so if the lights are faded down by any method (in this case, commands directly from Apple Home to the lights) the switch would notice/realize and stay in sync. Maybe this is not possible, but it’s my dream.
Glad you got a chance to play with Apple Home here. I have been using it as my exclusive smart home platform for about 8 years with dozens of devices of many types. While I sometimes get annoyed by some of its limitations, it is very solid. To be honest, this whole experience trying to spend a bunch of money and buy a bunch of gear to venture outside of official homekit stuff has really been eye-opening to me about how rough all the non-homekit world seems to be. I am feeling 75% like I should probably return all this stuff I bought, take the switch out of the wall, put back my leviton homekit smart dimmer, and install normal dimmable lights. It was so much better and smoother before involving Zigbee and more hubs and more software. The problem is, I just cannot find a good solution in Homekit devices only that lets me control color-changing smart bulbs using an in-wall dimmer that looks mostly like a standard decora switch. That was the promise of this whole ordeal, but seeing how bumpy and hacky it all seems, I’m just not sure the color-changing is worth the hassle.
Well, for anyone still following along here, or any future readers - I gave up. I have just finished uninstalling the switch and putting my Leviton Gen2 switch back in its place. I wanted color changing and decora-style dimmer control and seamless homekit compatibility and had high hopes that with enough research and spending enough money and buying the right stuff, it would be possible to achieve these goals, but I failed.
To anyone else who wants to try this in the future. good luck to you!
For what it’s worth, I was struggling with something similar using Home Assistant and ZHA (when I controlled the lights via Homekit, the switch didn’t sync). It seems that the solution is to put the switch into the same group as the lights, and to expose the group entity to homekit. The switch doesn’t poll the lights for status, so if you want the switch LED status to match the light status, and you want to control the lights with homekit, I think this is the only way, other than some automation or script to control the LEDs. So far, I’m finding this (putting the switch and light into the same zigbee group) works just fine, even though I can’t find any documentation that recommends doing this in the wiki.
In other words:
Create Zigbee group that includes the set of lights I want to control with Homekit as a single option, plus the switch
Bind the switch to the group
If you want to control a fixture that has 4 bulbs individually in homekit, and have it sync to the LED (e.g. show 75% led when 3 of 4 bulbs are on), I think you’re going to have to do something special, but maybe I’m wrong.
I can’t replicate your flash to full issue, but I do wonder if it’s related to your adaptive lighting solution as I’ve occasionally seen similar things with Home Assistant’s adaptive lighting solution during on/offs. I would try to turn it off and reduce the number of potential issues to begin with.
Thanks for the suggestion, @travisp9412 . Would have liked to have tried that, but everything is now already uninstalled and being returned. I will say that the flash to full issue was present before I even enabled any homekit integrations. It was the first thing I tested and noticed when I installed the switch and set up the binding.