[BETA v0515] Hampton Bay Zigbee Ceiling Fan/Light Controller

Correct. I’ve done this, works just fine.

Use the RF/zigbee in-ceiling receiver, and in the in-wall RF transmitter (there’s a link to the transmitter that’ll work somewhere in this thread or one of the other threads for the RF/zigbee receiver). The receiver that comes with the in-wall transmitter would not be used.

Just make sure you re-wire it correctly.

How does it work since the in-wall controller only “knows” three speeds and the fan has four? Do you lose the ability to set the “med-hi” speed from the wall?

Correct, the in-wall transmitter sends hi, med and low commands to the receiver in the fan canopy. The med-hi level can still be sent through ST. Personally, I don’t really care if my fan has three or four speed levels.


Hi Anyone can share the link to the in-wall transmitter they used?

In-wall Transmitter:

Perfect thanks

Hey guys, for thermostat control I’ve implemented a WebCore piston with really positive results. So a few boundary conditions… I’m using the Nest (NST) device handler so I’ve linked my piston to my NEST thermostat.

  1. If the NEST thermostat is set to “cool” the set point for the fans is set from the NEST
  2. If the NEST thermostat is set to “off” the set point is set in the piston
  3. If the NEST thermostat is set to anything else the piston is inactive

The speed is selected by a delta in temperature from the set point and the temperature from a thermostat in the same room as the fans.

The fans will stay on until a 30 min period with no motion occurs at which time the fans turn off.

It’s all pretty self explanatory… I think. Give it a try and let me know what you think

1 Like

Hi Charlie,

I am having the same issue with the 4 speed thermostat control from @dalec
Turns on great with motion, but will not turn off until temp is reached. If no motion for X min, but temp not reached, it stays on.
Have you found a solution for this?
I’m new, so was not following your self explanatory response :slight_smile:

So, the issue is with the Thermostatic remote, not the DTH in SmartThings, right? Or are you doing something else to control the fans through SmartThigns? I’m trying to understand why you think this is problem in ST and not with the remote control.

I believe it’s the 4 speed thermostat control. I’m using the dcoffing KOF Zigbee Fan Controller, and don’t have any other issues with it. The Thermostat control app responds to motion above X temp, not below. The issue is it does not stop after X time after motion stops as it should. It continues even after motion stops until it reaches the set temp.

What thermostat control app?

I don’t know code, but am wondering if the issue is in this section:
} else if (evt.value == “inactive”) { //testing to see if evt.value is indeed equal to “inactive” (vs evt.value to “active”)
//motion stopped
def isActive = hasBeenRecentMotion() //define isActive local variable to returned true or false
log.debug “motionHandler INACTIVE($isActive)”
if (isActive) {
def lastTemp = tempSensor.currentTemperature
if (lastTemp != null) { //lastTemp not equal to null (value never been set)
tempCheck(lastTemp, setpoint)
else {

I implemented WebCore, a rules engine, and wrote a piston. This piston ultimately had a bit more capability than I originally hoped for.

I’ve published the piston and if you would like you can reference it in the webcore community… I think.

Where as the thermostat turned on and off by a set point and motion, and was supposed to turn off by lack of motion, the piston uses the set point of the themostat unless the thermostat is off, then a set point in the program is used. The Webcore “rules engine” is way cool, I’m planning on giving my fans in the bedrooms a unique behavior from those in the living room. In the bedroom I’m planning on different set point depending on whether it is day or night. I’m also thinking about using the outside temperature from Acuweather as a variable in the decision tree for behavior.

You don’t have to be a programmer to use the webcore engine. The interface does not allow you to make syntax errors. I’m actually a little glad that I couldn’t get the 4speed thermostat working the way I wanted. It opened me up to Webcore which has given all my other device automation additional functionality.

I can simply to the functionality of the thermostat if you prefer and publish. I’m finding webcore very friendly and useful.

I just noticed that my published piston is not showing the switch names. I will republish this weekend and when you see the name of the fans it will be apprarent what I’m doing. For instance fan1_low might be switch 1.

Start researching Webcore community. It is way cool and actually gave my thermostat control more functionality

Thank you, Charlie. I’ve been using apps out of the GitHub integration. I’ll check out WebCore.

I think the WebCore engine is on gethub. I would start with the webcore community

I’ve displayed the piston with the switch names. This should make the logic much easier to understand.
A few things to note:

  1. There are two fans in my family room (‘fan one’ and ‘fan two’)
  2. Temp_fam is the temperature read from the motion sensor in my family room
  3. Temp_set is the “manual” temperature above which the fans will come on. This is only used if the air conditioner thermostat is turned “off”
  4. Delta_T is the difference in Temperature between the desired temp (either selected by Temp_set or the Nest thermostat) and the actual temperature in the family room Temp_fam.
    5)Therm_status is the status of my nest thermostat. It sends the values ‘cool’ ; ‘heat’ ; ‘off’ or ‘auto’. The piston will only run if the thermostat returns ‘cool’ or ‘off’. Because the fan is a manual change to reverse the direction I don’t want the fans to run if the heat is on.
    6)Delay is the period of time I want the fans to run after no motions is detected.
  5. Living_rm_set_pt is the set thermostat setting of the Nest. My preference is to use the setting from the Nest but if the Nest is turned off the Piston will used the preselected setting Temp_set
    8)Offset is a variable I through in to allow for adjustments to when the fan came on.
    9)run_stat is a boolean variable that when set to ‘true’ the piston will run. This variable gets set to ‘true’ when the Nest is either off or in ‘cool’ mode, so the piston will not run if the house is being heated.

You will notice that when I turn the fans off, I turn off every level. I did not have consistent behavior by turning off the top level only. So for instance if the fan one was on “Med-Hi” and I issued a turn off fan one, it would not always turn off, consequently I just turn off every child of the fan.

Finally… When I installed the Nest device handler, it also installed Acuweather. I’m not sure if there is data being passed from the outside weather that I might also use in my logic but that will be the next step.

You will find Webcore can do a lot of cool stuff, it can send you an SMS, or initiate different behaviors based on time of day or presence sensors or motion detection.

I hope that helps and enjoy.

Hello I have installed 3 of these my house is 1 level the very first fan I have no issues with at all the other 2 stop responding to smartthings one of the is right next to the hub. Looking for recommendations on how to resolve this.

Have you tried resetting the controller by flipping the switch / breaker on 3 seconds / off 3 seconds 5 times? Then you can pair to the hub again.

Is your antenna outside of the fan cowl? I didn’t have one of mine outside of the cowl since it was flush to the ceiling. But after resetting twice I got up there and filed a groove in the ceiling so the antenna could get outside. No problems since.