This is driving me crazy! 1 - Contact is a virtual switch. 1 - Light is a virtual dimmer. Outside Garage Pedestrian Door Light is a Generic Zigbee Dimmer.
Expectation is when 1 - Contact is opened both the virtual and physical lights would turn on, right?
But the behavior is the virtual dimmer turns on, then sets to 95% - expected. The physical dimmer is NOT sent the "on" command, just the setlevel 95% and that does NOT turn the switch on.
On the Back Lights RL after testing the "State" of the physical dimmer changes to X.
I found a workaround, I took out the physical dimmer and crated a Switch Binding between the virtual dimmer and the three physical zigbee dimmers I actually am trying to control. This works - but adds a whole new complexity that should not be needed.
Why is RL not sending the on/off command and only sending the setlevel when the target device is generic zigbee dimmer? And then why does it go "X" state as not responding?
It is expected that when you use the "Set Level" command greater than 0 it turns the device on. Should be no need to send a separate on command.
If your device supports pre-staging (where level can be set without turning on), then the driver should handle making sure the device gets turned on when Set Level is used. A separate driver command should be created to be able to pre-stage a dim level.
How? Where? This is a built-in driver - Generic Zigbee Dimmer. I have other instances with similar requirements (and same driver) and RL turns ON the switch then sets the level and works as expected.
Sounds like the device may need a different/custom driver, what device is it?
Are you sure? Or does it just set the level and the device turns on due to that?
Since I am not a zigbee expert, @kkossev or @mike.maxwell if you dont mind? Am I correct here that sending Set Level to a device should turn it on? Does a zigbee driver usually force the device on with a separate command, or do most zigbee devices turn on when you set the level?
Zigbee drivers do not send an on command along with the set level, there is no need to do so.
I think the problem is the "level" is already set at 95 and when setlevel is sent there is no "change" and the lights do not turn on.
Sending the setLevel command will turn on a light already set to that level if the light is off. Simply experiment with this on the device page.
Could it be that the device is allowing Pre-staging so it takes the level but does not turn on?
I know a lot of zigbee devices like to bend the rules a little.
I do more with Zwave, and for that yes, sending a set level to the device implies it should turn on even if the level does not change, and has always been true for the devices I have worked with.
What is the exact device, Brand / Model?
The turning on with the setLevel command is implemented in the driver -- it simply examines the state of the light and sends the proper command. But, pre-staging definitely can mess things up -- we don't recommend its use.
Only if this option is selected in preferences, or there is something wrong with the device firmware.
Is there a way to verify the brand/model without taking all the switch covers off? All my devices are GE/Jasco/Enbrighten.
From HE they all show this:
- endpointId: 01
- application: 12
- firmwareMT: 1124-0000-00000006
- manufacturer: Jasco Products
- model: 45857
- softwareBuild: 00000006
I have another one that works - but it use GE Zigbee Dimmer vice these 3 using Generic Zigbee Dimmer - that may be the fix.
Yes its right in your info, Jasco 45857
From the compatibility list, shows what driver to use.
You should change to the correct driver and run the CONFIGURE command.
If still issues you may need to reset the device and pair the device again so it can do the initial configure with the correct driver. It is safe to reset and pair Zigbee devices again, they will drop into the same device entry.
@jtp10181 , it appears you are correct - changing to the GE Zigbee Dimmer driver. I tested on the device page and with the Generic Zigbee Dimmer driver setting the level changes the level but does not turn on the switch. Using the GE Zigbee Dimmer driver setting the level DOES turn on the switch as well. I still have to mod my app and confirm everything works - but I expect it will.
So @mike.maxwell and @bravenel why does the "generic" driver not work as expected in this case?
Theres a bug in the device firmware that we worked around in the ge specific driver, in fact that's the onky reason that driver exists...
A better question might be why the correct driver was not selected automatically when the device paired, if it wasn't. I assume the HW information should have led the Hubitat to automatically pick the GE driver when the device was paired; if it picked the Generic driver, that's the "actual" problem here.
That said, always consult the compatibility list and confirm that the correct driver is in use.
Well thanks for that. The devices were added before the non-generic driver existed. The compatibility list is an amazing resource.
Thanks to the explanations on this, helped me to understand my lighting issue!
I have the trouble that certain bulbs do not turn on as expected, but only since a couple weeks or months (it was not so obivious during the bright summer time). Previously it was working just fine and it changed the behavior at some point.
After reading this thread i checked and found that the issue (not turning ON at level change) is to blame for my problem. Bulbs in question are some older Sylvania and Sengled dimmable Bulbs using the Advanced Zigbee CT Bulb driver. I have not found any settings regarding to pre-staging.
What can i do to make it work again since it was previously working. (other then buy new bulbs for the whole house)
Try a different driver. Be sure to hit Configure after you Save Device for the new driver.