Z-Wave Smart Fan Control Custom Device Type

@ChadC, You are a Wife Saver! I installed the GE Smart Dimmer and the GE Fan control yesterday in our master bedroom and awoke to find my wife had covered the blue LED indicators. She hates any kid of lights in the room at night, and has been very tolerant of my home automation projects. I remembered seeing “Indicator Light” in the device settings from the handler you created and used it to turn off the LED indicator. So I just wanted to say “Thanks You”, your custom device type works great and kept me out of the dog house.

Thanks for doing this, @ChadCK! Love the device type!

Any chance you could update the code extension to .src? I think that’s what’s causing me to not be able to sync via github.


I used this to modify and build to my needs as well as a new dimmer switch device type that I recently released. Great work on this, I did find a bug though. You give the ability to change the icon but after you change it, doesn’t save it.

That’s not a DH issue, but an issue with the mobile app itself. Sometimes you have to do it 2 or three times for it to save your new icon.

Thanks for this custom device handler - just incorporated with 3 fans and they work perfectly! Now to work out some routines to adjust these as temperatures change and we come and go. I love the fact that it changes to show “adjusting” as the fan speeds up or slows down - very clever. Would be great if SmartThings could incorporate this into the standard device handlers and then it could be run locally. How do we get these to be reviewed and incorporated by SmartThings?

I have so far managed to get the fan turning on and off with Alexa/Echo, as well as adjust speed by saying “turn on fan x%”. Am trying to work out how to say set “High, Medium or Low” - anyone have any thoughts on how to do this with Alexa/Echo?

1 Like

I’ve done this exact thing by creating a virtual momentary button tile called “Den Fan Low” then created a rule using Rule Machine that triggers based on this momentary button tile.


Select Trigger Events:
Den Fan Low On

Select Conditions:
Dimmer level of Den Fan != 32
Den Fan off

Define Rule:
Dimmer level of Den Fan != 32
Den Fan off

Select Actions for True:
Capture: Den Fan
Dim: Den Fan: 32

Select Action for False:
Restore: Den Fan

The with Alexa all I have to say is “Alexa, turn on Den Fan Low”.

Works great but does require 3 virtual momentary button tiles and Rule Machine rules for each fan. In my house that is 5 fans, so I would love to hear if anyone has a better solution.


Exactly what @ryan.ray did with virtual devices tied to the physical device. It will require a SmartApp, and what he did with Rule Machine is perfectly fine.

Thank you. I’ll play around and see if I can get this working.

Thanks for a great Device Handler!!! Hard to believe this wasn’t part of the “built-in” device handlers as ceiling fans are SO common.

Here is a smartapp designed to do this exactly.

1 Like

I would love for Echo to work with low/med/high commands. I have 8 fans, not going to set up 24 virtual switches and associated triggers.

1 Like

Take look at this…

Perfect! I can work with that. Thanks!

@ChadCK Thanks for the custom device. Just installed it and works great!

@ChadCK is there a way to have the physical switch to always reset to MED after its been turned off? This way a flick of the physical switch to ON will always start in MED?

You can do this with the Smart Lighting app. Set up a rule to Turn on and Set Level of “your fan” to 50% when “your fan” is switched on.


ahhh good call. Thanks for that.

Another question, how are people using switch on the physical side? Seems a little convoluted to hold the paddle up or down and wait for the setting to go higher or lower. Is there a way to make it where one toggle of the paddle sets to low, 2 sets to med and 3 sets to high or something like that?

There doesn’t appear to be any way to do that per the switch documentation and the advanced z-wave config stuff.


@ChadCK Thanks for this DTH. I’ve been using it for a couple of days and wonder/hope you are still developing it. Something I’m looking for (that may well be beyond the ability of the device) is for an isPhysical message to be sent if it’s pressed OFF when the switch is already OFF.

I get the isPhysical event if it’s on, but nothing when the switch’s pre-existing condition is already OFF. Any chance you could look at that?

Thanks for sharing this @ChadCK! I just used this on my Z-Wave Smart Fan Control, and it works exactly as I wanted to. The only modification I made was removing the slider as I didn’t need it.

I’m new to using the SmartThings IDE and Groove, so I’m pasting the changes I made in case there is a better way to remove the slider, or in case anyone else finds it useful:

Comment out (or remove) the following lines from the code:

		controlTile("levelSliderControl", "device.level", "slider", height: 2, width: 2, inactiveLabel: false) {
			state "level", action:"switch level.setLevel"

Then, replace the following line (two lines below the above):
details(["switch", "lowSpeed", "medSpeed", "highSpeed", "indicator", "levelSliderControl", "refresh"])

With the following:
details(["switch", "lowSpeed", "medSpeed", "highSpeed", "indicator", "refresh"])

Again, thanks for sharing!