[OBSOLETE] SmartLife (H801) RGBW LED Strip Wifi Controller & Bulb

I saw this post… http://www.cnx-software.com/2017/03/03/ai-light-esp8266-based-wifi-rgb-light-bulb-supports-mqtt-via-espurna-open-source-firmware/… the bulb looks promissing

1Pcs E27 Dimmable LED Light Bulb Smart Wireless Wifi AC 110V 220V LED Corn Lamp Cold White Warm White Dimming LED Spotlight
http://s.aliexpress.com/zArAr2U7
(from AliExpress Android)

3 Likes

Powered through FTDI was a success!

1 Like

Oh yeah! Nice find there. I am ordering one of these because I know that @erocm1231 can make this one work with his eyes closed and hands tied behind his back…

It’s RGBW LED E27 bulb with 16.7M colors. But no warm white :disappointed: BUT in the description at the AliExpress website it calls it out with …Lamp Cold White Warm White Dimming with a specified 6000(K) color temp and 600lumens

I was banging my head against the wall for hours (literally) on this exact problem with an H801. Was driving me CRAZY! Started using the FTDI power, no success. Tried the 12v power through the wiring harness (?) with no success. Saw your post and decided to try the FTDI power again. Oddly enough, it worked!!

FYI in case anyone else gets this error, using the FTDI power resolved the issue. Hope this might help someone else. :slight_smile:

@erocm1231 hey Eric, question.

Trying to use the new ActionTiles color picker on these. It seems to change the color but then shuts the strip off. Every once in a while it changes to the inverse color selected and stays on it, but I think that’s just a dropped command situation. But when I do see a change right before it shuts off, the color is always reversed which I though strange since your color picker works fine.

Terry said he’d look into it if he gets the time but since they are Works With Smart Things certified now, it won’t be a priority. Are you aware of anything in your handler that would be nonstandard and cause a turn off command after a color is selected or sent to it?

1 Like

just for additional info for @erocm1231 . This was the response that @michaelahess got

1 Like

I guess I am not cool enough to use ActionTiles yet so can you send over the logs for your controller when you have ActionTiles change the color?

I’ve never been cool or lucky until yesterday. :slight_smile:

Here’s the basic on/off:

59559bdc-9799-43b5-a03b-f8fc14af9447  1:59:58 PM: debug {"rgb":"000000", "r":"00", "g":"00", "b":"00", "w1":"00", "w2":"00", "power":"off", "running":"false", "program":"0", "uptime":"13 days and 17:26:54"}
59559bdc-9799-43b5-a03b-f8fc14af9447  1:59:58 PM: debug uri /off?transition=true
59559bdc-9799-43b5-a03b-f8fc14af9447  1:59:58 PM: debug off()
59559bdc-9799-43b5-a03b-f8fc14af9447  1:59:55 PM: debug {"rgb":"ff007c", "r":"ff", "g":"00", "b":"7c", "w1":"00", "w2":"00", "power":"on", "running":"false", "program":"0", "uptime":"13 days and 17:26:51"}
59559bdc-9799-43b5-a03b-f8fc14af9447  1:59:55 PM: debug uri /on?transition=true
59559bdc-9799-43b5-a03b-f8fc14af9447  1:59:55 PM: debug on()

Tapping Red from an off state, stays on, green:

59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:23 PM: debug {"rgb":"0cf000", "r":"0c", "g":"f0", "b":"00", "w1":"00", "w2":"00", "power":"on", "running":"false", "program":"0", "uptime":"13 days and 17:28:19"}
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:23 PM: debug {"rgb":"fc6c00", "r":"fc", "g":"6c", "b":"00", "w1":"00", "w2":"00", "power":"on", "running":"false", "program":"0", "uptime":"13 days and 17:28:19"}
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:23 PM: debug {"rgb":"000000", "r":"00", "g":"00", "b":"00", "w1":"ff", "w2":"00", "power":"on", "running":"false", "program":"0", "uptime":"13 days and 17:28:19"}
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug uri /rgb?value=0ff00&channels=true&transition=true
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug setting color with hex
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug setColor being called with [hue:0, saturation:100, hex:#2550000]
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug uri /rgb?value=fc700&channels=true&transition=true
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug setting color with hex
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug setColor being called with [saturation:100]
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug setSaturation(100)
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug uri /w1?value=ff&channels=true&transition=true
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug setColor being called with [hue:0]
59559bdc-9799-43b5-a03b-f8fc14af9447  2:01:22 PM: debug setHue(0)

Tapping Blue from on state, turns off:

59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:22 PM: debug {"rgb":"000000", "r":"00", "g":"00", "b":"00", "w1":"00", "w2":"00", "power":"off", "running":"false", "program":"0", "uptime":"13 days and 17:29:18"}
59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:22 PM: debug {"rgb":"fc6c00", "r":"fc", "g":"6c", "b":"00", "w1":"00", "w2":"00", "power":"on", "running":"false", "program":"0", "uptime":"13 days and 17:29:18"}
59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:21 PM: debug {"rgb":"ec1cc0", "r":"ec", "g":"1c", "b":"c0", "w1":"00", "w2":"00", "power":"on", "running":"false", "program":"0", "uptime":"13 days and 17:29:18"}
59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:21 PM: debug uri /rgb?value=00000&channels=true&transition=true
59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:21 PM: debug setting color with hex
59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:21 PM: debug setColor being called with [hue:65, saturation:100, hex:#0025255]
59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:21 PM: debug uri /rgb?value=ee1ff&channels=true&transition=true
59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:21 PM: debug setting color with hex
59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:21 PM: debug setColor being called with [hue:65]
59559bdc-9799-43b5-a03b-f8fc14af9447  2:02:21 PM: debug setHue(65)

Individual channels and the color picker in the DHT on the ST app work entirely as expected. The shutting off thing seems kind of random, if I wait between color changes, it turns off less.

Me either… I am on the email list of the uncool :thinking: with you as we are waiting for the invite from @tgauchat

UPDATE: @Synthesis @erocm1231 It took a week but as of 5:24am 3/11/17 the ActionTiles team officially deemed me “cool” :sunglasses: to be a part of the rollout.

It sucks being uncool. I’m just as uncool as you guys. :frowning:

2 Likes

Thanks! Alright, I am noticing a few strange things. The device is being sent a hue value and a saturation value as two separate commands and then a hue/saturation/hex value in a third command. Although the hex value does not look valid.

setColor being called with [hue:0, saturation:100, hex:#2550000]
setColor being called with [hue:65, saturation:100, hex:#0025255]

Makes sense that things aren’t working right. I haven’t seen SmartApps send three separate commands to change color. The third command with all values is more of what I am used to, but the hex value is not looking correct.

I will probably put some conditional programming to ignore the incomplete color changes. My handler still using hex by default so it is going to choke on the last command unless that gets fixed.

2 Likes

@erocm1231
Eric, I had asked one time previously about color temp control and you had mentioned it wasn’t on the map.
But I’m curious, is there a way to modify the DH to see the W1 channel as 6500k white and the W2 channel as 2200k warm white, or vice versa. Or something along the line of those K values. Possibly even make it user configurable.

The idea is this.
Channel - Color associated - Hooked up to
RGB = RGB channels - RGB LED Strip
W1 = Day White - Cool White LED Strip
W2 = Warm White - Warm White LED Strip

This way, even without a temperature picker for white values, the user could open the color chart and manually pick it.
Something along the lines of the DH mimicking the Hue Lightstrip Plus or Osram Lightify strip.
I just got my H801 imported into stringify working with a RGBW handler on their end. It controls the RGB just fine, but the color slider doesn’t adjust.

If you made it an option in the DH settings “function as RGBW-WW Lightstrip, single control” on/off (similar to the RGB vs White exclusive on/off option that would unlock some serious potential while keeping the unique multi channel capabilities that make this DH/device so cool for alternative uses/multi zone strip control.

:slight_smile:
Thanks for the consideration in advance!!

I am using a Mac computer to flash the wifi controller. I am having a problem with the execute command. Is the execute command going to be different for a mac? For the COM number I was only able to find the serial number for the USB. Is the COM number and the serial number the same for Mac computers?

You’d need the Linux version of the flash utility. Serial number will not be related to the COM port number. I don’t have any Macs handy so can’t really help there. But it should be the same as a Linux box, assuming the BSD commands are similar. https://www.cyberciti.biz/faq/find-out-linux-serial-ports-with-setserial/

All, I was just wondering if the community had any suggestions. I purchased all the products as outlined in the thread. I was able to flash the device. I should say that the process completed and the words success were at the end. After a flash update I power cycled the device but I do not see the esp… SSID to connect to. What can I be missing?

Hi James,

I was able to make this work on my Mac. I’m not well-versed with python or development tools, but I managed to muddle my way through it. Here’s a compilation of steps I used combined with some instructions and tips cobbled together from various depths of the interwebz:

Step 1: Identify your FTDI device. In a terminal window, before you plug the FTDI device in, start typing “ls /dev/cu.” (without the quotes) and hit TAB a couple times, you should see the list of current serial devices appear. Depending on your Mac, the list might come up empty at first, that’s ok. Plug your FTDI device into a USB port and repeat, and there should be an additional item listed now. That’s the name of the device you’ll be using instead of a COM number.

Step 2: You need the Python version of esptool. As long as your macOS is up to date you should have a working Python. You can try “sudo easy_install pip” from a terminal and in theory that should work. If it doesn’t, you might have to google around a little bit and try a different version of Python and/or pip using something like Homebrew.

Step 3: Once you’ve got your Python and pip working, you can do a “pip install esptool” or you might need to do “sudo pip install esptool”. It should automatically install pySerial as a dependency. Once that’s done you should be able to type “esptool.py -h” (tab autocomplete should work if esptool.py is properly put in your path) or “./esptool.py -h” if esptool.py was installed to the directory you’re currently in. If that still doesn’t work, “python esptool.py -h” or “python ./esptool.py -h”. ONE of those should work.

Step 4: Assuming you’ve downloaded the binary firmware linked at the bottom of Post 1 and everything else is working, the command to flash is:

esptool.py --port=/dev/[DEVICE] write_flash -fm=dio -fs=32m 0x00000 [PATH TO BIN FILE]

If esptool.py isn’t in your path you might need to do “python esptool.py” or “python ./esptool.py” depending on where it is located.

[DEVICE] is the cu.xxxxxx device that you identified in step 1, and [PATH TO BIN FILE] is the path to where you’ve downloaded the firmware file, for example if it’s in the same directory that you’re currently working in, it might be “./SmartLifeRGBWController.ino.generic.bin” or if it’s in your Downloads folder and you’re not executing the command from that folder, it might be “~/Downloads/SmartLifeRGBWController.ino.generic.bin” for example.

Hopefully this all helps.

1 Like

The device only speaks 2.4Ghz, if you have your computer set to only use the 5GHz band you won’t see the SSID.

Just a thought.

1 Like

Mark

Thanks for the reply. I was able to complete steps 2. However, the command for step one did not work. But I was able to pull information about the usb device by going to utilities then system information. I found the serial number and what the mac computer is call the the device. The name is FT232R USB UART. Do I use FT232R USB UART or the serial number for the flash command? Also, for the flash command is the path directly to the zip file or does it need to unzipped?

Thanks

Maybe this video can help?

Sorry, I omitted a bit in the command.

The device identification in system information is not how the driver is loaded/referenced in the operating system. Try this at a terminal prompt:

Without the FTDI plugged in, enter the command:
$ ls /dev/cu.*

You’ll see a couple things listed, for example on my Mac I have:

$ ls /dev/cu.*
/dev/cu.Bluetooth-Incoming-Port /dev/cu.JAMBOXbyJawbone-SPPDev

Yours won’t match, but you get the idea.

Now, plug in the FTDI and run the command again, here’s what I got on my system:

$ ls /dev/cu.*
/dev/cu.Bluetooth-Incoming-Port /dev/cu.JAMBOXbyJawbone-SPPDev /dev/cu.usbserial-A50285BI

So, in my case, it’s /dev/cu.usbserial-A50285BI so my flash command would be:

esptool.py --port=/dev/cu.usbserial-A50285BI write_flash -fm=dio -fs=32m 0x00000 ~/Downoads/SmartLifeRGBWController.ino.generic.bin

You’ll need to unzip the file to get the .bin file out of it.

When you’re typing the esptool.py command, you can enter the /dev/cu.usb part and then hit TAB and it should complete for you so that you don’t have to worry about mistyping it. Or you can copy/paste from the previous command’s output.

And don’t call me Shirley (Mark). LOL, :slight_smile:

-Keith

1 Like