[RELEASE] GE 4xxxx / ZW3010 Enbrighten Z-Wave Plus Dimmer Driver

GE Enbrighten Z-Wave Plus Dimmer Driver
The new GE Enbrighten devices are just different enough from the old that I wanted to make a new driver that supported the features correctly.

NOTE: This is for the toggle/paddle GE Enbrighten Z-Wave Plus Dimmers only (ZW3010 / 46203 / 46564). It will not work with any non Z-Wave Plus GE models (12xxx), it will not work correctly with any other Z-Wave Plus GE models (14xxx).

Features:

  • ON/OFF/Level
  • Can set default ON %, both by a parameter setting and command (so is programmable in RM, etc).
  • Support for button events:
    • Single Tap Up = Button 1
    • Single Tap Down = Button 2
    • Double Tap Up = Button 3
    • Double Tap Down = Button 4
    • Triple Tap Up = Button 5
    • Triple Tap Down = Button 6
  • Held and Released events supported for Up/Down
  • doubleTapped events created for doubleTap up/down in addition to button 3/4 pushed events.
  • All ON/OFF and single/double/triple taps create a State Change event
  • Control of LED indicator (on when on, on when off, always off, always on)
  • This driver DOES NOT support secure S2 pairing. If you are pairing the device securely, it will not work with this driver. I have no intention of adding S2 support.

To-Do:

  • Determine if the min/max dimmer threshold settings can be added. On 1st attempt they didn't appear to actually do anything (?).

Installation:

  1. Install Driver code in Hubitat either by copy/paste from the GitHub location, or by importing the url: https://raw.githubusercontent.com/Botched1/Hubitat/master/Drivers/GE%20Enbrighten%20Dimmer/GE%20Enbrighten%20Dimmer.groovy
  2. On a GE Enbrighten Dimmer device, change driver to "GE Enbrighten Z-Wave Plus Dimmer". Click save.
  3. Edit preferences, save preferences.
  4. Click Configure command button

Driver can be found on my GitHub

  • 1.0.0 (07/16/2019) - Initial Version
  • 1.1.0 (07/17/2019) - Removed DoubleTap from BasicSet, added DoubleTap UP/DOWN and TripleTap UP/DOWN as standard buttons 1-4
  • 1.2.0 (12/15/2019) -
  • 1.3.0 (12/15/2019) - Improved event handling, removed some unnecessary zwave Gets, fixed device reporting when operating in SWITCH MODE.
  • 1.4.0 (02/07/2020) - Added pushed, held, and released capability. Required renumbering the buttons. Now 1/2=Up/Down, 3/4=Double Up/Down, 5/6=Triple Up/Down
  • 1.4.1 (02/07/2020) - Added doubleTapped events and added doubleTap capability. Now users can use button 3/4 for double tap or the system "doubleTapped" events.
  • 1.5.0 (05/17/2020) - Added associations and inverted paddle options
  • 2.0.0 (08/07/2020) - Added S2 capability. This version is for Hubitat 2.2.3 and newer ONLY
  • 2.1.0 (08/20/2020) - Fixed some command version issues
  • 2.2.0 (08/29/2020) - Added number of button config to configure
  • 2.3.0 (12/15/2020) - Added state for defaultDimmerLevel
  • 2.4.0 (02/13/2021) - Added Alternate Exclusion mode to preferences.
  • 2.5.0 (03/10/2021) - Fixed redundant ON events when changing dimmer level
  • 2.5.1 (03/08/2022) - Added setIndicatorBehavior command. Now users can control LED indicator behavior through custom actions. Courtesy of @basilisk.
  • 2.6.0 (03/18/2023) - Change on/off behavior to match physical switch on/off behavior. Thanks to user michicago on the Hubitat forum.
  • 2.7.0 (03/27/2023) - Fixed setLevel duration conversion, thanks to user jpt1081 on hubitat forum for the idea/example code
2 Likes

Updated to version 1.1.

Please note that if you were using double tap in version 1.0, note that doubletap was removed, and now the device doubletap and tripletap functions are mapped to standard buttons 1-4.

I have this dimmer controlling 4 Feit Electric (Costco) dimmable LED flood lights (BR30) and they will not dim much if any. Is this a limitation of the bulbs, the dimmer, the driver, or the owner (me)?

1 Like

I have 3 led (feit I think, got them from Lowe's or home Depot), and they seem to dim the same as any other dimmable LED bulb I have. They never get as dim as standard bulbs, but still.

So, don't know. I would guess the bulbs, but who knows

I just got the GE Enbrighten Z-Wave Plus Dimmer (46203) and installed this driver for it, but it appears to max out brightness at 25%. Anything above that is still the brightest level and I need to use a level of 20% or below to dim it. Is this normal? Is there something that I need to change to get accurate percentages?

I noticed the same behavior with the Generic Z-Wave Smart Dimmer driver as well. Maybe something is wrong with this dimmer? Has anyone else experienced this?

I would say that is not normal. There is no scaling/magic on the levels, they are 0-99 on all zwave dimming devices. That is why the generic driver does the same thing - there is basically no way to mess that part up in the driver.

Are you 100% sure the bulbs are dimmable bulbs?

If they are, and dim correctly with other dimmers, then you likely have a bad dimmer. Or some weird incompatibility with those particular make/model bulbs.

Yeah, I just looked up the Satco bulbs I have and they're listed as Non-Dimmable. Thought that I had used them on another dimmer, but I was mistaken. I guess that explains it, thanks!

1 Like

Question on Toggling using this driver on GE 46203 dimmers. I can't seem to get a Toggle action to work appropriately. Well, how I think it should work possibly ?

Real simple setup. I'm using Rule Machine v4.0. I have a virtual button configured. The Rule Machine rule includes a condition for when button #1 on that virtual button is pushed, then "toggle" the "switch" on the 46203.

It half-way works. When the lights are off, they come back on. Then the lights are on, they stay on. Debug logging seems to indicate that Toggling for these 46203 is basically always turn lights on. This shows the debug logging when the dimmer was off and the light do come back on:

dev:672019-10-22 12:48:41.437 pm debugParse returned null for zw device: 03, command: 2603, payload: 2E 2E 00 , isMulticast: false

dev:672019-10-22 12:48:41.398 pm infoKitchen Cans (Dimmer) is 46%

dev:672019-10-22 12:48:41.394 pm debug---SwitchMultilevelReport V3--- Kitchen Cans (Dimmer) sent SwitchMultilevelReport(value:46)

dev:672019-10-22 12:48:41.390 pm debugcmd: SwitchMultilevelReport(value:46)

dev:672019-10-22 12:48:41.386 pm debugparse() >> zwave.parse(zw device: 03, command: 2603, payload: 2E 2E 00 , isMulticast: false)

dev:672019-10-22 12:48:40.403 pm debugParse returned null for zw device: 03, command: 2603, payload: 2E , isMulticast: false

dev:672019-10-22 12:48:40.376 pm infoKitchen Cans (Dimmer) is 46%

dev:672019-10-22 12:48:40.373 pm debug---SwitchMultilevelReport V3--- Kitchen Cans (Dimmer) sent SwitchMultilevelReport(value:46)

dev:672019-10-22 12:48:40.364 pm debugcmd: SwitchMultilevelReport(value:46)

dev:672019-10-22 12:48:40.356 pm debugparse() >> zwave.parse(zw device: 03, command: 2603, payload: 2E , isMulticast: false)

dev:672019-10-22 12:48:40.293 pm debugsetLevel(value, duration) >> value: 46, duration: 0, delay: 1000

dev:672019-10-22 12:48:40.287 pm debugsetLevel(46, 0)

dev:672019-10-22 12:48:40.285 pm debugstate.level is 46

dev:672019-10-22 12:48:40.280 pm debugTurn device ON

dev:762019-10-22 12:48:40.075 pm infoKitchen Cans Button (Virtual) button 1 was pushed

The following shows the log when the dimmer is on and hoping the light toggle off but they don't:

dev:672019-10-22 12:49:43.573 pm debugParse returned null for zw device: 03, command: 2603, payload: 2E 2E 00 , isMulticast: false

dev:672019-10-22 12:49:43.545 pm infoKitchen Cans (Dimmer) is 46%

dev:672019-10-22 12:49:43.540 pm debug---SwitchMultilevelReport V3--- Kitchen Cans (Dimmer) sent SwitchMultilevelReport(value:46)

dev:672019-10-22 12:49:43.538 pm debugcmd: SwitchMultilevelReport(value:46)

dev:672019-10-22 12:49:43.532 pm debugparse() >> zwave.parse(zw device: 03, command: 2603, payload: 2E 2E 00 , isMulticast: false)

dev:672019-10-22 12:49:42.542 pm debugParse returned null for zw device: 03, command: 2603, payload: 2E , isMulticast: false

dev:672019-10-22 12:49:42.526 pm infoKitchen Cans (Dimmer) is 46%

dev:672019-10-22 12:49:42.521 pm debug---SwitchMultilevelReport V3--- Kitchen Cans (Dimmer) sent SwitchMultilevelReport(value:46)

dev:672019-10-22 12:49:42.519 pm debugcmd: SwitchMultilevelReport(value:46)

dev:672019-10-22 12:49:42.514 pm debugparse() >> zwave.parse(zw device: 03, command: 2603, payload: 2E , isMulticast: false)

dev:672019-10-22 12:49:42.444 pm debugsetLevel(value, duration) >> value: 46, duration: 0, delay: 1000

dev:672019-10-22 12:49:42.443 pm debugsetLevel(46, 0)

dev:672019-10-22 12:49:42.441 pm debugstate.level is 46

dev:672019-10-22 12:49:42.437 pm debugTurn device ON

dev:762019-10-22 12:49:42.263 pm infoKitchen Cans Button (Virtual) button 1 was pushed

To me they look identical. The curious thing is the "Turn device ON" immediately above seems to indicate that Toggle is basically just turning the lights on for this 46203.

Within the edit device page for this device, the typical On Off commands work fine. I have other rules setup to changing the dimmer values and all that and those work as well.

Just curious Toggle not seeming to work as I think think it should.

I have no idea, as toggle is a software function not a feature built into the device. I have no idea what an RM rule is actually doing when you specify toggle as the action

That would be a better question for hubitat support.

Ok thanks !! I'll ask over in Support.

I'll just warn you, though, that the 1st thing they will likely say is: Does it work with the in-box driver.

So you might want to test it with the built in dimmer driver and see if toggle works. Yes, that means any other rules you have using double/triple tap will be broken during that testing.

If it does work with the in-box driver, then it very well may be a driver issue on my end. I don't think many people use the toggle action, though, so could probably go either way.

Thanks for the additional info. I'll give the built-in driver a try and see what happens.

Ugh ... thanks for that last tip. Using the generic zwave dimmer driver, the Toggle function works fine. Actually and a few other things work better to from a dashboard standpoint. Like a dimmer template. Using the standard driver, now the icon changes more appropriately and when you "toggle" the icon is yellow when "on" and black background when "off". I really like the double and tripleTap with your driver though ... hhhmmmm .. something to think on.

I don't understand your comment on the dashboard... What exactly works differently with the in-box versus user driver on the dashboard?

I use the dashboards regularly, and haven't noticed anything majorly different - other than when some of the status update (i.e. I believe the in-box driver says off immediately, mine waits until dimming is actually complete). On mine, using the user driver, it is yellow when on and grey when off - just like any other dimmer.

Or do you mean that when initially adding the device to a dashboard it doesn't select the dimmer or bulb templates by default, so you have to manually change it to the dimmer or bulb template one time? If so, yeah - that's true. Doesn't seem like a big deal to me though, as you change it to the dimmer template once and you're done.

And are you sure you are using the newest/current version of my driver? It has been updated a few times in the last 2 months. EDIT: I was wrong on that, I was thinking of another driver. This one hasn't changed since 7/2019.

Lastly, what the heck does "toggle dimmer level" even do? How is that different than "set dimmer level"? I assume it 'toggles' from on to off, or off to on. I would never use that function/do my logic that way, though, so am guessing.

Yes, I have the v1.1 of your dimmer driver on my Hubitat.

On my dashboard,when I clicked on the dimmer template icon to turn off the dimmer/lights, typically it was hit / miss. When it did, the hour glass icon would show up but really never go away. To turn off the lights, I would typically slide the dimmer to 0%. That's when I started messing with toggle. The dimmer template background also remained black whether the lights were on or off.

Using the generic zwave dimmer driver, the dimmer template icon is yellow when the lights are on, black when off, and the hour glass and light bulb icons are reflected when necessary typically quickly. Clicking the dimmer on the dashboard is consistently clean on lights coming on and off.

Glad to hear yours is working as it should be. Mine well doesn't when using the driver :frowning:

No clue what "toggle dimmer level" means. From my messing around it seems to behave like "set dimmer level".

I don't think so.... I think it is supposed to turn it off if already on, or on if already off. Set dimmer always turns it on (unless setting to 0 I guess).

Anyway, good luck. Since everything is working on my end, I don't see how I can change/fix it. I'll keep my eyes open, though - always willing to fix any issue I can reproduce.

Is there a driver like this for the Motion Sensored Dimmer switch?

Not the exact same features, as they are different devices with different capabilities, but...

EDIT: Don't install 1.2.0, there is an issue with it. I'll fix it this afternoon and up 1.3.0.

Ok, v1.3.0 is up. Should work a little better. Some redundant zwave Get commands removed (reducing zwave traffic), and tested to work when dimmer is in SWITCH MODE (as I needed to put a dimmer in switch mode earlier today...).

I redid how it reports levels to Hubitat, so if you run into cases where it reports the wrong level after ON/OFF/DIM events, let me know. Worked correctly on my devices, but :man_shrugging:...

I also verified that all events report the correct physical versus digital command origin/type. If you see events that have the wrong digital/physical type in the event log - let me know.

Also, side note, I am probably going to find the time to add in the minimum/maximum Dimmer settings. I commented that code out originally, as I didn't have time to see how it worked. But after I poked around on it, I think I get it (stil send device 0-100%, but it scales the output on its side).