Is anyone else having trouble setting a Lutron dimmer level to zero?
When I issue the command "Dim: Pantry: 0" to set the Lutron dimmer level for the Pantry light to zero, the dimmer level does not change. The Pantry dimmer will switch from ON to OFF, but the dimmer level remains unchanged.
The same behavior occurs when using the "Set Level" command from the device list in Hubitat.
I believe this behavior is new. In the past I have successfully used rules that issued dim to zero commands to Lutron dimmers as well as IF THEN conditionals that looked for a dimmer level of zero.
Does anyone know of a way to set a Lutron dimmer to zero from Hubitat?
Basically, my (poor) understanding is that 0 is an illegal value for a dimmer. So 0 is interpreted in the driver as a command to turn off. Therefore, the dimmer level remains what it used to be before the 0 was issued.
Edit: In any event, in place of setLevel 0, I have modified all my automations to setLevel 1 and then turn off.
Did you "modify your automations" in response to a change in the behavior of Hubitat? In other words, were you able to successfully set level to zero in previous versions of Hubitat?
Lutron itself interprets 0 as off. If you do the equivalent of setLevel(0) in a Lutron system, that turns the light off, and does not change its level to 0. So this behavior is the same in Hubitat. Effectively, 0 is not a meaningful level value. You can only turn on a Lutron dimmer by setting it's level to a non-zero value, which is the opposite affect.
Why would you want to set a dimmer's level to 0? What would that mean?
Good questions. I was using this in the past to set the dimmer to the lowest possible value and then turn off. I believe that previously "0" was accepted as such.
For over a year I have been successfully (I thought) using some rules that incorporated IF THEN conditionals to look for a dimmer level of zero. Since about early January, I believe, these rules quit working properly.
Can you confirm that a recent software release might explain this change in the way these rules work? I'm more than willing to re-write my rules if necessary, but I would like to know if something changed recently. If no change has occurred to Hubitat, then I guess I must have been mistaken about the efficacy of my rules.
I have looked at the history. There were changes made that had to do with Caséta dimmer levels that were fractions less than 1, but greater than 0. From the beginning though, even these came back as 1. 0 has always meant off for a Lutron dimmer. This is because of the way the Lutron system itself works. To turn a dimmer off this command is sent:
#OUTPUT,14,1,0
to which Lutron will respond
~OUTPUT,14,1,0.00
This is identical to how Lutron communicates that a dimmer is turned off.
So any attempt to set a level to zero will be interpreted by Lutron as meaning off. Consequently, since the way Lutron communicates 'off" is to send the level as 0.00, Hubitat has no choice but to accept that as 'off'. This has always been the case. So there never has been a way to set a Lutron dimmer to 0.
So, level 0 = off, and is not a valid level per se.
Thank you.
I understand that setting a dimmer level to zero has always resulted in an OFF status for the dimmer. However, I thought that if I set a dimmer level to zero using a Hubitat command, Hubitat would not only change the switch status to off but would also then show the dimmer level to be zero. Apparently I was mistaken about this.
So the expression, "IF Dimmer level of Pantry is=0" has always, and will always, evaluate as FALSE?
For over a year now I've run rules that contained actions that would only execute when the expression above was TRUE. Because those actions triggered (over the past 12 months) I'm fairly certain the dimmer level was zero.
As much as I respect bravenel's expertise, I really believe something has changed recently.
Of course, it's also possible (perhaps likely) that I am mistaken in these claims.
This has been true for Lutron dimmers from the beginning, there have been other dimmers and bulbs where it was possible for them to report 0.
This would actually be a bug in the device and or driver.
When we rewrite and or create new drivers we explicitly test for this condition.
In a nut shell, setLevel 0 is a transition time adjustable proxy for the off commmand.