[RELEASE] GE Z-Wave Plus Motion Dimmer Component Driver

GE/Jasco Z-Wave Plus Motion Dimmer Driver
This is a driver for the GE Motion Dimmer device. It differs from the in-box driver in that it exposes all of the device parameters, and uses a parent/child structure to put the dimmer and motion sensors in their own child devices.

It has been tested with a GE 26933 motion dimmer.

Example:
image

Features:

  • ON/OFF
  • Configuration of button inversion variable.
  • Configuration of motion and light parameters.
    • Light Off Time, Motion sensor on/off, Motion sensitivity, Light Sensing for light ON/OFF, Motion Reset time, Dimmer steps/duration, Switch Mode
  • Commands added for direct access to the following features:
    • Default Dimmer Level - Can use this in rules (via custom commands in RM, for example) to set the default dimmer level. May be useful for mode/time based lighting where you want the light to come on a different level than the level it was at when it was turned off.
    • Manual / Vacancy / Occupancy motion lighting modes. Can be used in rules (via custom commands in RM, for example) to put motion lighting in Manual mode at night for bedroom switches.
  • Uses the in-box Dimmer and Motion Sensor component drivers for the child devices - no need to install additional drivers for those.

NOTE 1: Switch Mode simply makes the physical buttons work like a switch. And note that in that mode the physical buttons DO NOT obey the Default Dimmer Level - ON always = 100% level.

To-Do:

  • none

Installation:

  1. Install Driver code in Hubitat
  2. Apply to a GE Motion Dimmer device. Click save.
  3. Edit preferences, save preferences.
  4. Click Configure command button

Driver can be found on my GitHub

  • 1.0.0 (08/25/2020) - First attempt at parent/child structure
  • 1.1.0 (08/27/2020) - Added more options to Debug Logging command and added startLevelChange and stopLevelChange commands
  • 1.1.1 (08/28/2020) - Missed setting the type on one of the on/off events
  • 1.2.0 (08/30/2020) - Made some states attributes, added refresh capability to parent
  • 1.2.1 (08/30/2020) - Fixed Updated() not working correctly
  • 1.2.2 (08/31/2020) - Fixed attributes not populating correctly on install
  • 1.2.3 (09/01/2020) - Fixed redundant on/off events
  • 1.2.4 (10/17/2020) - Added actuator capability so custom commands can be used in rule machine
  • 1.2.5 (10/27/2020) - Fixed motion reset time parameter setting not working
  • 1.3.0 (02/17/2021) - Removed erroneous duplicate event recording. Added new preference "Wait for device report before updating status.", Fixed a level report timing issue when setting level to 0%.
  • 1.3.1 (02/17/2021) - Added blank selection option to commands to reduce confusion
  • 1.3.2 (02/17/2021) - Forgot to add the "Wait for device report" to everything other than on/off/level
  • 1.3.3 (03/31/2021) - Fixed small issue where on/off states weren't made in rare situations
  • 1.3.4 (04/15/2021) - Fixed defaultDimmerLevel state not populating
  • 1.3.5 (05/24/2021) - Fixed error when setting light timeout to disabled
  • 1.3.6 (06/09/2021) - Attempt to allow multiple physical button presses registering
  • 1.4.0 (06/11/2021) - Fixed multiple physical events, removed "Wait for Parameter" all updates wait for the report back from the device
  • 1.4.1 (03/18/2023) - Fixed BasicReport logging when debug logging is off
  • 1.5.0 (03/27/2023) - Fixed setLevel duration conversion, thanks to user jpt1081 on hubitat forum for the idea/example code
6 Likes

Always great to see new driver contributions. Before I go and start messing up all my rules redoing everything could you help me understand the benefit of this driver vs one that uses them combined such as the one written by @jrfarrar over at [RELEASE] GE/Jasco 26933 Motion Dimmer Wall Switch Driver I understand that you did the parent/child method to split them out but trying to understand the benefit.

That's the funny part - there is really no benefit at all feature wise.

It makes each device a little cleaner in terms of what commands are shown. And it makes a device with a name that represents what it actually does (xxxx Motion Sensor, xxxx Dimmer). I also cleaned up a lot of the backend code.

But realistically other than that above there is no other "feature" benefit.

1 Like

Nice job! I might have to swap mine out for this to see how it goes....

I wish this whole motion sensor built into a wall switch was more prevalent in general. They are so useful.

1 Like

It is an interesting way to represent the device. I'm not sure I would call it "better", but I kind of like it broken into 2 separate child devices.

Choice is good, in any case.

Planning to split your GE 26931 Smart Motion Switch driver into components?

Yes, that one should be done this weekend,

1 Like

Great! I will use it. Your driver is great because it exposes manual/vacancy/occupancy to RM.

Quite honestly this is what I was most interested in. :smiley:

SO, when I change my current driver to this spiffed up one.

What will that do to all the rules, etc. that are were written for the CURRENT driver?

Thanks! It looks sweet!

(and I might have to study it to figure out the cool tricks--I have one of those new GE "Dual USB/Dual Controlled outlet" plug-in dimmers that isn't supported yet. I guess they're working on it eventually but, as you can see, they've had higher priorities lately.)

Depends on the rules. If they affect the stuff that moved to the child devices - setLevel, on/off mainly - the rules will need to be redone changing from the old device to the new child device.

For things like vacancy/manual/occupancy/setDefaultDimmerLevel you should be fine, as those are still on the parent device.

Do I need to remove things from rules first and write them down before switching--or can I go ahead and install the driver THEN fix the rules?

I think you should be able to leave the rule changes until after the driver change, as the rules will be pointing to the parent device which still exists.

The rules will be broken at that point, of course, and generate errors if they run as the commands won't exist any more. At least until you update them with the new devices.

1 Like
  • 1.1.1 (08/28/2020) - Missed setting the type on one of the on/off events

Plan on rolling this into hpm?

I probably should at some point. Every time I look at the instructions for that I end up not wanting to spend the time making manifests, etc.

One of these days.

Cool...another device I have to want to buy... :wink:

These are great in bathrooms, laundry rooms, around doors, etc... Got to toss a bunch of battery powered motion sensors in the junk drawer.

3 Likes

Come on, hop on it! What do you think we're paying you for???

Oh. Wait. Darn, I guess we're not. :frowning:

Bro--this is pretty cool! Thanks! It took a few rule changes, but it's cool to have all the settings available AND to have the functions split into devices so you can have more sensible names.

A few questions:

  1. I guess you can't edit the "Device Name" field, only the "Device Label" in the children? Any idea why that is?

  2. When does it load/refresh the "Current States" list on the parent?

  3. I don't see any "refresh" button on the parent. Is that intentional?

  4. I assume the "Device Watchdog" should point only to the parent?

  5. When I point to the "Dimmer" child on the dashboard, the dashboard throws a big question mark icon up instead of a bulb--but it seems to be happy pointing to the parent. And, I can't turn it on/off regardless of where I point (but the child does adjust the dimmer). Recommendations? Or is it time to call the exterminator? :slight_smile:

Thanks!!

He has written a command line tool to create the manifest for you just in case you weren't aware.

A small little tool called Hubitat Package Manager Tools has been provided which assists in the creation of these files. On Windows simply run the hpm.exe --help to get help, and on MacOS and Linux run ./hpm --help