Lutron dimmers appear off at lowest settings?

If I dim a lutron dimmer to the lowest setting (using the physical button on the dimmer), Hubitat claims it's off, even though the light is on. How do I fix that?

Dimmer state:

Bulbs:

Hubitat:

I am seeing the same...never noticed it because I never touch my physical dimmers.
This seems to be related to the problem I posted here:

If you look at the logs, the last update that the bridge sends is a brightness level of 0.01
As per @bravenel, there isn't anything that can be done to have this 0.01 brightness register as anything other than off. Not sure I understand why myself, but since it doesn't affect anything I use it for :man_shrugging:

I saw your post there and thought I understood why, but now I'm with you: I also don't understand. I thought he meant that Lutron dimmed it to 0.1 or 0.01 or something, which you could see from the Lutron app or the Lutron "side" somehow, but over telnet to Hubitat it simply reported "0," and thus there was nothing Hubitat could do, per his comment that there is "Nothing to be done about that if Lutron doesn't report it."

But now i see that it does indeed get the "0.01" value over telnet. I understand that Hubitat wants to keep drivers uniform and report levels as integers, but it seems like they could use the "ceiling" when converting decimals between 0 and 1 to an integer instead of just (presumably) rounding to the nearest integer or (maybe?) blindly removing the fractional component. The only thing I do see as a problem is that Hubitat considers a level or 0 to be a switch state of "off," but this seems like a way around that, at the slight expense of Hubitat not being able to tell the difference between a level of 1 and, for example, 0.01 (but as long as startLevelChange still lets you get there, it doesn't seen much different than how it currently works except it won't get an inaccurate switch state).

I'll look into this. It's doing a math round(). But, you're right, perhaps for 0 < x < 1, it should round up to 1 for the reasons you state.

	if(level > 0 && level <= 1.0) level = 1
	else level = level.round()
3 Likes

Can I make this change on my hub immediately, or do I need to wait for a full update?

Try it now.

Just kidding...it would need to be rolled out with a firmware update.

Darn. Okay I'll wait for the next update. Thanks for tracking it down though :slight_smile:

ETA: what I meant to ask was "can I make these changes locally somehow or is a software update the only thing that can change this?". Sounds like it's the latter.

If history is an indicator, you won't have to wait long. The HE team is outstanding and tend to overdeliver.

1 Like

Any updates (pun intended!) on this?

Yes, this was fixed:

if(level > 0 && level <= 1.0) level = 1
else level = level.round()
1 Like

Any idea when that will make it to my hub? :smile:

It's not actually fixed until it is in user's hands. :smile:

Ah, sorry, you're correct. It's been so long that we've been working on 2.0.5, that I lost track of where it was. It will be out soon.

2 Likes