Apple Home / HomeKit Issues - Dimmer Always Goes to 100% When Turned On

That is a good point.

Is it possible to get logs from the HomeKit Driver on Hubitat itself? It would be interesting to see what specifically is being sent to the HomeKit Driver from the Home App and how Hubitat is interpreting it.

@bill.d mentioned he's not seeing this issue when bridging Hubitat to HomeBridge. And I am not seeing this issue on other native HomeKit devices. That is why I am learning towards it being an issue in Hubitat's HomeKit driver implementation.

Lutron Caseta Dimmers (using the native Lutron HomeKit integration) behave exactly the same way as Hubitat Dimmers (using the native Hubitat HomeKit integration) do... at least in my testing regarding this issue many months ago.

Just another data point. It might be a Lutron quirk, as their physical 'on' commands always result in 100% brightness as well. :thinking:

Do you still have that setup and can you see logs on the Lutron hub of what HK sent over exactly?

That is been one of the most common complaints for Lutron Caseta. The Lutron Caseta does not ever remember its dim level when off. Whether you turn on the light via HomeKit, Google Assistant, Alexa, or their own app, the dimmer always goes to 100%.

Here are some Reddit threads with reports:
https://www.reddit.com/r/homeautomation/comments/7rw03z/how_to_get_lutron_caseta_to_remember_last_dimmer/
https://www.reddit.com/r/homeautomation/comments/1afl6mz/can_lutron_dimmers_remember_last_brightness/

Lutron did introduce the Diva into its Caseta ecosystem, which a lot of people say "solves" this issue. The Diva allows you to to set a dimmer preference. However, this preference is only honored if you use the physical Diva switch. If you turn on the switch using Apple, Google, or Amazon assistants, it will still go to 100%.

When it comes to this issue, Lutron and Hubitat are the only two with this dimmer issue. Every other major HomeKit dimmer manufacturer correctly remembers the dim with HomeKit.

TLDR - skip to the edit at the bottom.

Alright, I tried something different. First, I confirmed the same failure sequence again... load HomeKit, turn on a light, it went to 100%, dimmed the light locally, turned it off locally, turned the light back on from HomeKit and it went to the last dimmed state. Killed Homekit, turned off the light, loaded Homekit, then turned on the light from Homekit and it went to 100%. We all know this part.

What I tried:

Then, after this, I dimmed the light again, turned it off and then with HomeKit still open, turned it back on. Again, back to the last dimmed state - this is good. Then I killed the homekit app, and asked Siri to turn on the light. This turned on back to the last dimmed state again - again, this is good.

Then, I rebooted my phone with the light still on. While rebooting, I turned the light off. As soon the phone came back on, I immediately asked Siri to turn the light back on. Again, it came back to the last dimmed state - this is better. I then turned the light off.

THE BEST PART:
I then opened the home app and saw the light was off. With the home app open, I asked Siri to turn on the light. The light came back to the last dimmed state BUT HomeKit showed the light come on at 100%.

I'm starting to think that apple broke something on their end that homebridge somehow didn't suffer from.

Edit: Sorry, I just realized maybe I could try to duplicate this more simply and I did. With the Home app in the background, I dimmed the light locally. Then I turned it off locally. Then I opened the Home app and saw the light is off. With the home app still open, I asked siri to turn on the light. The light came on to the dimmed level, but the home app shows it at 100%.

That was some great testing! I was able to recreate it.

I did run a test on an older iOS device (I still have a phone with iOS 16), and the behavior is still the same.

I am thinking it's not necessarily that Apple broke something, but how Hubitat reacts to certain commands. Having logs in the Hubitat HomeKit driver would be very helpful in this.

I just did a test with a LIFX bulb that I paired directly to Apple HomeKit. When doing this step, the LIFX bulb showed the correct percentage dim rather than 100%.

It seems that Hubitat's HomeKit implementation may not be correctly reporting the dim level to the Home app under certain circumstances.

Yes, I’m thinking the same. Disclaimer - I know nothing about HomeKit architecture or the HE integration, but…
It seems to me, when the home app is loaded, it sends some sort of status/poll request to the hub/bridge. Then the hub pushes status to the home app. But it seems HE may only be pushing on/off status. But again, no clue on how it all works.

I’m pretty sure the HE integration worked fine earlier this year, so I’m wondering if Apple changed something about how to command a light. Perhaps previously the Home app sent just an on command and now it sends an on command as well as what it knows as the last dim level. Or perhaps, HE’s integration has always been this way and I just never noticed.

I feel like I noticed this issue a few weeks ago with a fan control, but assumed it had flaked because I had just rebooted the hub.

I did some testing with HomeBridge. Thanks for suggesting it!

When bridging Hubitat though HomeBridge, the dimmers remember their dim. However, the Hubitat HomeBridge integration seems buggy.

When turning on a light either directly from the physical switch or via the Hubitat Dashboard, normally the HomeBridge logs receive the alert of the state change and update the state on any Apple devices using the Home app. But randomly, this info is not communicated between Hubitat and HomeBridge, and now new longs appear on HomeBridge.

I am hoping that Hubitat can fix the dimmer HomeKit issue. What is the best way to make the devs aware of this issue?

Thanks everyone.

Anyone know if there been any update on this - or if anyone is working on it? I noticed it seems to have gotten worse - or at least I noticed another nuance of the same problem. Yesterday I happened to have my home app open when I manually turned on a dimmer. The dimmer physically came on to 5%, but HomeKit showed it come on to 100%. Perhaps this has been the case since the above issue arose - I just never happened to have the home app open to the same room when physically turning on a dimmer.

My dimmers are now working as expected. They come on to either the fixed or previous values as configured in Hubitat. Not 100% always. I don't know when the issue was fixed.

Your issue sounds like a different one. The original issue did not have values that differed between systems. I'd suggest posting a new thread with more information including drivers used and logs.

I ran the test again, and it looks like the dimmer issue still has not been fixed. I was able to re-create that issue as well. This is definitely a Hubitat HomeKit issue.

Unfortunately, I have not heard anything from the devs acknowledging this bug.

I really hope they fix it soon.

Maybe I missed it but I don't see specific steps listed to reproduce up above anywhere?

A bulleted list of steps would be useful to be able to reproduce it.

To reproduce the error, I have the steps written on the very first post.

Here it is:

Yes, rebooting the phone is unnecessary. But I wanted to minimize user confusion for anyone trying to reproduce the bug.

The bug also happens with Zooz when using either the Generic or Advanced driver (@jtp10181, the one you made is awesome BTW).

I was hasty in my testing. The issue is still there.

  1. Create virtual dimmer & share with Hubitat's HomeKit app.
  2. Set a level different from 100%
  3. Turn off switch
  4. Close phone. No need to kill the app
  5. Open phone, open Apple Home
  6. Turn on the switch in Apple Home. Device comes on at 100%

Virtual dimmer logs, all control done in Apple Home:

An interesting contrast: I share the dimmer via both Hubitat's HomeKit app and the Homebridge v2 app. Turning the Homebridge device 'on' sets the % to previous as expected, but the Hubitat device shows as 100%. The dimmer is actually at 56% in the Hubitat device detail screen.

@gopher.ny

1 Like

To add/clarify, your testing appears to demonstrate both the original problem noted (when the dimmer is controlled through HK) and the second problem which seems to be related (controlling the dimmer outside of HK while the home app is open). The former physically turns the light on to 100% while with the latter, the Home app shows the light to be on at 100% even though it’s not.

1 Like

Possibly. Provide some more details of apps and devices used and logs. I can't reproduce your issue using the dimmer itself (Lutron), Alexa, Control4, or the Hubitat device page.

I believe you demonstrated this in your previous post:

If I’m reading this correctly, you turned on the device through the homebridge device and the HE HK device went to 100%.

And in my case, it’s a homeseer WD100 dimmer.

OK, I've replicated the issue with third party control. It is in fact any controller that will cause the issue. The key to replicating it is to close Apple Home first before triggering the 'On'.

The interesting part is that Siri falls into that “any controller” category. With the home app open, Siri will turn the light on to the correct level, but the home app will show 100%.

Does anyone know if Hubitat has acknowledged this issue as a bug? Or do we have to cross-post this issue onto the Feedback category?