SmartLife (H801) esp8266 Based RGBW Controller

This is a relatively inexpensive RGBW controller powered by the esp8266. It is a great little device that I have spent some time working on. Currently using 3 in my home and they have been great. This is fun little device!


I have created a service manager, device handler, and firmware for the device for SmartThings. Like I said, it is a great device, but the software probably needs some bugs ironed out. I am working on it with my limited time so hopefully it will get polished eventually.

The service manager lets you create “programs” and virtual switches for the programs. This way you can have a program activated based on an event. For example, you could have the LEDs flash blue and red if someone opens the front door in the middle of the night. The virtual switch will show up as a regular switch in SmartThings so there are many possibilities with this.

Firmware Flashing

You can flash the device just like most other esp8266 devices. Download the ESPEasy firmware flashing tool. You will use esptool.exe from this zip to flash the firmware. Next download the firmware image that I have built here, and place it in the same directory that you extracted the esptool.exe binary. Connect the FTDI adapter (SET AT 3.3V) to the controller leads marked TX, RX, GND, & 3.3 and connect it to your computer. Bridge (or connect) the two leads labeled “J3” together and power up the controller. This puts it in flashing mode. Run the following command (make sure to replace %comport% with the comport number of your FTDI adapter i.e. COM6):

esptool.exe -vv -cd nodemcu -cb 115200 -cp COM%comport% -ca 0x00000 -cf SmartLifeRGBWController.ino.generic.bin


SmartThings Config

Second, there are three SmartThings pieces of code that need to be installed. First, the device handler for the Controller. Then the device handler for the virtual switch. Lastly, the SmartApp. They are listed at the bottom of this post.

After the firmware is flashed, the device will broadcast an ssid of espRGBW.[mac address]. Connect to it with the password “configme”. After you are connected, browse to and connect the device to your wifi network.

From that point you will open the service manager app and discover new devices. It should find the device on your network as long as SSDP is working properly on all of your devices. After it is added, you can create programs, virtual switches, and rename them all from in the service manager.

Like I said, this is a work in progress and I will work on it when I can. In its current state it works really well. Good luck and have fun. This is a nifty device.

Controller Device Handler:

Virtual Switch Device Handler:

Service Manager SmartApp:

Where to purchase

There are several places you can buy these, but I got mine from AliExpress.


15 thoughts on “SmartLife (H801) esp8266 Based RGBW Controller

  1. so would it be possible to flash one of these controllers with a firmware that is compatible with a phillips HUE bridge, like the FW that the dresden electrik FLS-PP lp RGB wifi controller uses or that phillips HUE RGB strips use? , i want to be able to use these strips/controller with a kodi plugin that adds ambilight to a TV via HUE LED strips ,so if it is not possible to flash a HUE compatible firmware to these controllers , then would it be possible to use these controllers with smart things hub and have it work with the kodi ambilight plugin?
    i do not know much about smart things so not sure if it could translate or emulate the commands from the kodi ambilight plugin since i am pretty sure it was designed to work with HUE and i am not sure if it supports strips connected through another hub/bridge

      1. ok but isn’t zigbee a type of wifi ?
        i found this github project but i do not understand github and i have zero knowledge about arduino either so i am not really sure what this is, but this blog post implies it could be done but it is very vague so i can not understand any of it, the github is linked in this blog post

        i do not understad what any of these files are what they do or what they are for since i am not familiar with arduino at all, and reading the description of the project only makes me more confused it says something about emulating a bridge which makes no sense to me at all ,i mean wouldn’t the idea be to emulate the HUE rgb controller and not a HUE bridge? but the blog post shows this controller and it sort of implies it could be used with a hue bridge directly but the author is inept and very bad at describing what he means
        anyways i looked at the files and i do not see any .bin ,file i was hoping there would just be a .bin file that i could use with this tutorial for flashing and just replace the smart things frimware .bin with one there but it is just a bunch of files i do not undestand and a bad description of what the project is actually for

        1. While Wifi and Zigbee are both wireless technology, they are completely different. It is like saying English and Chinese are both languages, but being able to speak one doesn’t mean you can speak the other.

          I took a quick look at the links provided, and they seem unclear on how far the projects are. You are right about being able to emulate the bridge on an ESP8266, but I think you are more interested in attaching devices to an already acquired Hue bridge. There is a small list of non-hue devices that you can already attach (cree bulb, FLS-PP RGBW controller), but these devices are Zigbee devices.

          I suppose that you might be able to emulate a Hue bridge with an ESP8266 and then program it to recognize an H801 as an official hue lightstrip, but I don’t know if the posted project has that capability.

          On Sat, Dec 31, 2016 at 9:14 AM smartlifeautomated wrote:


          1. ok so i finally got around to doing this
            i got a gen 1 hue hub and an h801
            i managed to successfully flash the h801
            and install the 2 device handlers and the smart app in the IDE ,and to get the h801 connected to my network
            but when i go to the smart app it refuses to detect it
            i have tried everyhting
            i did the factory reset power cycle 5 times and rest the h801 and re-enter my wifi credentials and it connects again ,i can see it in my routers client list , i tire in on DHCP ,i tried it with a static IP too
            it will not get detected no matter what, however i can add it manually and it says added but then in the smartlife RGBW lite connect smart app when i click on the device i just see this message “device has not been fully configured please make sure the device is powered on and has the correct IP address ,when confirmed please come back to this page”
            it shows in the things list but wheni try to control it it is totally erratic and useable same thing when i put the controllers IP in my browser and try and control it from there , i am able to reuplod the FW and flash it from the browser too
            here is what i get when i go to staus
            {“rgb”:”000000″, “r”:”00″, “g”:”00″, “b”:”00″, “w1″:”00”, “w2″:”00”, “power”:”off”, “running”:”false”, “program”:”0″, “uptime”:”12:17:22″, “version”:”2.0.6″, “date”:”Jun 20 2017 20:47:54″}

            and when i check the log in the graph IDE during discovery i keep on seeing this error message

            6546ce95-aee4-4aa3-b7c4-efa094bcb353 10:02:07 AM: error java.lang.NullPointerException: Cannot invoke method startsWith() on null object @ line 646

            do you know what that error means? and is there another way i can get it to detect or make it work by adding it manually ?
            why is there an option to add it manually but then it still says it is not configured? am i supposed to do something else after if i add it manually like maybe change something in the advanced tab in SmartLife RGBW Controller Settings ?
            99% sure everything is set up right , flashed FW is right , handlers and smart app are right and published
            i just can not get it to be detected

  2. oh yeah also when do you disconnect the j3 jumper? after you hook up the FTDI and power up the controller, then are supposed to disconnect the jumper soon as it is switched on and before you flash the FW or do you leave it jumped for the whole time you are flahsing?

    1. I actually don’t think it matters whether you leave it connected or not. As long as you disconnect it when you are done with the flashing. Otherwise it will go into flash mode again.

  3. yes i understand they are different i just was getting at that they probably have the same hardware inside ,RF TX and RX in the same frequency range and that they could be changed just like flashing a different FW changes it to work on smart things
    yes i am aware of the FLS-PP RGB controller but it’s like $65
    these are actually affordable but i will have to buy a smart things hub

    yes i do not know what they mean by emulate the bridge or how far along the project is but that home automation blog shows this controller in the post about that project , it seems like were trying to imply it could be used directly with a hue bridge

  4. Hey – did something change w/ the latest firmware upgrade? the Red and Green drivers seem to be reversed. When i turn up Green… i get Red and vice versa. I’ve checked the wiring and Green to Green. blue >blue, etc..

    This is consistent on the last couple of controllers that I’ve flashed. the issue is consistently reversed on 2 – H801 and 3 — ESP 128 (RBG) controllers

        1. Generally the different device firmwares are not compatible with each other. If you have an H801, you should only flash H801 firmwares. If you have an AriLux LC-L02, then you should only flash that firmware. If flashing the different firmware swapped the colors around, you should probably flash back to the one that worked and continue to only use that devices firmware.

Leave a Reply

Your email address will not be published. Required fields are marked *