Z-Wave Smart Fan Control Custom Device Type
Update: 08/10/2017 - Updated Github URL.
Update: 10/09/2015 - Updated Tile Layout.
Update: 10/19/2015 - Fixed Current Speed Highlighting on Android. Fixed bug in integer/string comparison that resulted in possibly highlighting the wrong speed. Added “Adjusting” highlighting of selected speed. Code cleanup.


Hello Everyone, I’m a new SmartThings V2 owner and my first adventure into any type of Home Automation. There has been some ups and downs, and findings of how lacking device type controls are. I purchased a GE 12730 Z-Wave Smart Fan Control and how disappointing is it that even in a V2 version of the hub that there is not really a Fan Control Device Type. The Dimmer Switch does not do Fan Control like what Fan Control should be like, the funny thing is… these devices are not even new! Why such a poor device type, or rather lack of one for them.
In any case, off i went in search of anything and came across @johnconstantelo contribution. Including @Sticks18 's posts on some tile coloring how to ideas.
Right off the bat the Device Type was miles better for Fan Control. But it had its bugs, fan speed status would not stick, it would revert back to always reporting high even though that was not the case, when digging deeper there were other bugs as well that needed to be addressed. Including the problems with how it responded if the Switch was physically changed and how it reported in the app.
I worked out all these problems and re-wrote it to also include user set input for low/med/high values. The main reason was that the values John had were not the exact same values that were for me, I’m not sure if they are depended on the switch or the fan but either case, it had to be adjustable for everybody. *(Its currently thought its depended on the switch and can vary between models)
So this new Device Type includes Preferences Values for low/med/high, it also will always report correct as to the status of the fan, it also has a ADJUSTING state which is inbetween commands. It is colored, also the low/med/high tiles will be highlighted accurately to the current status. It works great from the app or even if physically using the button to switch.
I left in the slider at the bottom so that you can use it to figure out what your low/med/high values should be, basically start close to the defaults and move one at a time till you hear your fan kick to the next level. You want the MAX level the fan can be at BEFORE it kicks over. Normally High should always be 99, but i left it in and adjustable for the heck of it. So all you have to find is low/med. If you enter nothing the defaults will be 33/67/99
Yes, i purposely left the bottom left fan% even in off state so i can see what it was set to. It also gives you an idea of what the physical button sets the fan to when you do it manually (holding up or down to adjust speed).
Hope everyone likes and can now build on this one as we all continue to make SmartThingsBetter 


but they do catch up.


So i didn’t see a need to say with text that the fan is on medium, the primary control says what it is, in large letters. Second, since i highlight the actual low/med/high buttons, thats another indicator what it is running at. So having a 3rd didn’t make sense. What I DID need though was to know what values the “dimmer” was being set to. See when you press a button on the app to set speed, it is going to the defined speed, so say medium is set to 67, you press it, and boom your “dimmer” is set to 67, but if you use the physical button, and hold paddle up or down, you will notice completely different values the physical button sets it to, and i’ve tested it alot, it gives just random values within ranges. In any case, i wanted to be aware of what this value was. The SLIDER was left in place just to help with finding out what values your fan should use. Might see if i can just have the preference page auto update the fan, so you can find find the values that way, so no slider needed. But not sure how well that will work.
That little annoyance was killing me 

