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.