[BETA] GE 14287 Z-Wave Plus 3-Speed Fan Control With Double Tap

Hello. I made 2 device handlers for the GE 14287 3-Speed Fan Control that supports Double Tap and associated groups. This was done by combining/editing the code done by @jhamstead @nuttytree @dalec @ChadCK @johnconstantelo . Thanks guys. Great work

The device handlers come in 2 types. Choose the type that is best for you. Only one type is needed. (I did this after realizing I had issues adding a device with child devices to a scene)
1) Requires only one file and can be added to a Scene

To set LOW/MED/HIGH levels with alexa or google home, just create routines


2) Requires 2 files. Uses child devices to allow specific LOW/MED/HIGH commands with alexa/google home.
I had issues adding this type to a Scene

( zwave-fan-control-child-device.groovy file is originally from jhamstead, just a backup)

To Install

  1. Log into your IDE https://account.smartthings.com
  2. Click “My Device Handlers”
  3. Click “Settings” and add the following Repo: STDevMan / SmartThings-STDevMan / master
  4. Click “Update from Repo” and select “SmartThings-STDevMan (master)”
  5. Under “New (only in GitHub),” check the following:

         Option 1)
           smartthings : GE 14287 Z-Wave Plus 3-Speed Fan Control with Double Tap

         Option 2)
           smartthings : GE 14287 Z-Wave Plus 3-Speed Fan Control with Double Tap - Has Child Devices
           smartthings: Z-Wave Fan Control - Child Device

  1. Select the “Publish” button
  2. Click “Execute Update”

To Update Existing Devices

  1. Go to “My Devices”
  2. Select the device you want to change
  3. Click “Edit”
  4. Select the “Type” box
  5. Find “Z-Wave Fan Control” near the bottom of the list
  6. Click “Update”

Let me know if there are issues or if you it works for you

Have a good one


Tagging @dalec @ChadCK @johnconstantelo @jhamstead @nuttytree

I realized after seeing this that if someone uses Zwave smart bulbs in the light kit, they could use the double tap feature to control those bulbs by association and have a single gang zwave wall switch that would control both fan speed and lights even if the ST Hub was offline. It wouldn’t be intuitive for guests, but it would work for some households. So i’ve Added that as option 3 to the fan FAQ. :sunglasses:


As an FYI I am using the GE 14287 with a Hunter Dempsey 52" 59242. I have a separate dimmer for the light. Works great. Low: 32 Med: 67 High: 99

1 Like

Thanks @STDevMan! Just installed the single device type, working great :slight_smile: However, I cannot find a place to disable the blue light on the physical switch itself. I’m looking for a way to set the blue LED to “never”, I’ve used this with a different device handler (that I did not write) for a standard GE dimmer switch. Would that be an option you would consider adding to a future version of this?

To change the status light just do this quickly

UP UP UP DOWN (do it really fast)

I had the status indicator setting in the device handler before but it never worked so I took it out

1 Like

Yes! Worked perfect and took 2 seconds :slight_smile: Thanks again for the device handler!

Yes!! Thank you!!!

Can add the DTH (non-child) manually via code copy/paste and publish, and it’s great! Very feature complete, good work!

However tried through github and was able to add your repo but get a 500 error when trying to pull the DTH (non child version). Happy to help track the problem down but not sure where to look for the issue. Seems like your naming conventions are different from other DTHs? I haven’t had this error with other DTHs that I’ve pulled. Get the same error when trying to just pull the file as when trying to pull & publish at same time.

Oh No! Something Went Wrong!

500: Internal Server Error
Reference Id
Sat Dec 29 18:26:02 UTC 2018

I will admit I am a total newbie in this world, but I think there may be an issue with my GE 14287. I have tried your single file DH, the ones from jhamstead, nuttytree and ChadCK and usually the result it the same … the interface is altered (tiles or new controls appear), but the app stops communicating with the device. The device works manually – on/off/medium/high speeds (sometimes low too after a reset) and responds to Google commands like - set ceiling fan to 30% (low speed) or set ceiling fan 60% (medium speed), but can’t be controlled via the ST app after the DH is applied.

My steps to load are as follows: 1) Add a DH > From Code option, 2) paste in the Groovy script, 3) Save the file (create), 4) publish the DH (For Me), 5) Simulate > Home > Choose fan control > Install. I don’t see anything new in the simulator with your DH, but I do with some of the others. Should I see something new with your DH?

Am I doing something wrong, missing a step or something worse? I am trying not to get too frustrated, but am beginning if I should have bought the Lutron switch instead.

Any suggestions?

I’ll take a look in the next few weeks. Good chance I missed something since I didn’t follow any instructions lol

I didn’t do anything with the simulator. In your steps after publishing the DTH (for me) go into devices and find the device you want to use the new DTH. Select it. Click Edit. There’s a drop-down to choose which DTH to use. Custom DTHs show up at the bottom

No, you did it correctly, I forgot that last step …

  1. Add a DH > From Code option,
  2. paste in the Groovy script,
  3. Save the DH (create),
  4. publish the DH (For Me),
  5. Go to My Devices
    a) Edit Device
    b) Select newly added ‘Device Type’ from dropdown
    c) Hit the red ‘Update’ button.

Tonight I followed those steps using your (single file) DH. I can see in the events that the name and some other attributes are updated so I assumed it loaded to the ST hub. When I go to the ST app on my phone and attempt to control the device I get the message “Couldn’t connect to %device name%.”

Note there is no change to the app appearance … should that be the case (a dead ringer for the ZWave controller)?

The DH is listed on the hub, so I assumed this is a device or phone app issue. I was holding the phone in my hand, so I restarted it. Once rebooted the app is doing the same thing … No joy.

I went to the switch and reset it (3 taps top paddle, 3 taps bottom paddle), the blue light blinks and then sticks on (let’s me know I have to turn that dumb light off again). App still won’t connect.

OK, time for a hard reset of the device … I killed the room breaker for 10 seconds and flipped it back on. Still no joy!

I decided just for grins to restart the ST hub. Some device need kick in the pants to come back on-line and I was hoping that would work for the 14287 … what was I thinking (now the app stops responding completely … even less joy!!!)

I deleted the device and tried again with @nuttytree DH. Very similar results …

I can see the app looks different, so I know it’s uploading to the hub and the phone app … just not the device.

Is there any thing else I can check or is that it? Do I chalk it up to a bad switch or go through one more round of TS?

Thanks for your time.

Does the device work when you try to use it via the ST Classic app?

It works from the OTB app, but it never runs on low from the app. I believe the app uses 34% for low speed and my fan requires 33% for low speed operation (why I need a custom DH). As I mentioned earlier, if I integrate with Google Assistant I can say ‘set fan control to 33%’ and it will run on low speed. Because it works with Google I conclude that the switch functions with the OTB DH and pass will pass custom values.

Is there any other troubleshooting that can be done, possibly some log files to read?

Do you mean the ST Classic app?

I looked at the code above, and it’s very similar to what I put together when this device first came out. The DTH’s above allow you to select your low, medium and high thresholds within the device’s preferences. Did you changes those (via the little gear in the upper right hand corner)?

Here’s the code that manages the thresholds:

preferences {
		section("Fan Thresholds") {
			input "lowThreshold", "number", title: "Low Threshold (typical is 1-33)", range: "1..99", defaultValue: 33
			input "medThreshold", "number", title: "Medium Threshold (typical is 34-67)", range: "1..99", defaultValue: 67
			input "highThreshold", "number", title: "High Threshold (typical is 68-99)", range: "1..99", defaultValue: 99

You can see the defaults, which in your case is already at 33. I’d think that should work for you, so just in case, change your preferences for low to something like 20 and see if that changes anything for you?

No, I mean using the default ZWave Fan Control DH provided by ST.



Use the ST Classic app so you can use this custom handler to change the threshold values. The new ST app doesn’t have that capability yet.

I finally got the @nuttytree DH to load and run. Apparently I am still learning to copy-n-paste. The app still complains that it can’t connect, but it works. Do others have this issue? I bought some zooZ Zen23 switches and download custom DHs for these switches and they are working fine. I still think this switch may have issues and need to be replaced.



I don’t think so, not yet at least until you’ve checked how it works with the Classic app.

The new app exhibits this behavior a lot.

I’ll ask again, have you tried using the Classic app?

I’ve eyeballed the classic app and I loaded the default DH, but haven’t yet figured out how to adjust the values. Is there some tutorial, website with steps or YouTube vid that will show me how?