Control Homewerks Fan 7130?

Well, it matches the model number linked in the first post, so … I’m reasonably sure it’s the same one. :wink:

1 Like

James did you ever find a solution? My electrician somehow wired all the lights in the room that are with the fan on the same switch so it won’t control the individual functions looking at an alternate way

I was able to reverse engineer the signal for my fan. If you’re interested, I can give you step-by-step instructions. It’s pretty straight forward once you know what to do.

1 Like

Sure thing, let me know what you did!

So I just installed this fan. It worked when I tested the switch before screwing it into the wall. Once I get the switch into the box in the wall, it stops working. I think my RF signal can’t reach the fan once the switch is placed in the wall. Any ideas on how I can fix this? How did you alleviate your situation?

Edit: scratch that. Even with the switch exposed without barriers between, the switch fails to work.

You’ll need a device to decode the signal. I used this RTL-SDR and the software urh to decode the signal.

Record the signal - press stop and then save.

You can ignore everything and just look at the analog interpretation. Zoom in and you’ll see the signal repeated multiple times. The wide bars are 1s and the thin bars are 0. Below is what it looks like when my light button is pressed (11111110011000100011010010010100). I wrote the 1s and 0s above the corresponding sections in the image below.

Do that for each of the 4 buttons.

I used a Particle Photon with a 433Mhz RF transmitter (sorry, I can only include 2 links in this post, but if you search amazon, you can find them) wired up to digital pin 5 with library rc-switch to control the RF transmitter.

Here’s my code as an example. You’ll need to modify this based upon the device you use.

#include "RCSwitch.h"
#include "Particle.h"

RCSwitch mySwitch = RCSwitch();

const String fan =       "11111110011000100101011010110110";
const String light =     "11111110011000100011010010010100";
const String nightLight ="11111110011000100001001001110010";
const String music =     "11111110011000100111100011011000";

static const RCSwitch::Protocol customprotocol = { 250, { 20, 9 }, { 1,  1 }, { 3,  1}, false };

void setup() {

    pinMode(5, OUTPUT);
    Particle.function( "fanToggle", fanToggle);
    Particle.function( "lightToggle", lightToggle);
    Particle.function( "nightLightToggle", nightLightToggle);
    Particle.function( "musicToggle", musicToggle);

void loop() {}

int fanToggle(String x){
    return 0;

int lightToggle(String x){
    return 0;

int musicToggle(String x){
    return 0;

int nightLightToggle(String x){
    return 0;

Ok I know this is an old post but I have some much simpler answers.

I own the home werks bathroom fan with Bluetooth speaker and night light. I can confirm the hard wires only connect to the rocker switch. The four buttons are RF in the 400mhz range.

I also own the Bond bridge which I use for 3 RF remote control ceiling fans.

Today I set up a generic device on the bridge and when it was listening I pressed the light button. The bridge heard and recorded the RF signal.

My bond account is tied to my Google Home so I now have voice control of my home werks fan/light combo

You have to set up a generic device for each feature you want to control.

No programming, or Arduino or rocket science.

It’s stateless so only you know if the device is already on or off. And the RF signal is the same For on or off. So if you use the wrong voice commands it doesn’t matter. But I like not having to get it of bed if someone forgot the light.

Hello Kieron, Quick question, with the Bond bridge are you able to set a timer (either with Smartthings or Bond) to turn the fan of after x minutes of being on?

That’s a great question. I haven’t tried it. Bond bridge definitely doesn’t have timer functions. Smartthings might, but I think you might have to use some sort of IFTTT bandaid.

I used broadlink rm pro to capture the rf signals. Set it up as a fan remote. Linked it to my Amazon echo’s. So far it’s working well. With routines I can turn everything on or off with one command.

Thanks for this. I just got the fan switching off a launchpad board. Must have flubbed the binary on the other two I programmed. How did you go about figuring out the customprotocol?