Lifesmart Cololight modular lights support

I have only little experience with python. I’m not sure how to make it suitable for an official component. I was hoping someone with more experience would take a look it.

1 Like

Great job, the next step could be the implementation of custom effects or the control of individual lights …

talk to the developers. They are available on Discord, or you can open a request on GitHub to make an official component.

Does it work with the new version Lifesmart LS160? Btw already great work, i love the ha community.

I’m using it myself with a LS160. So unless they released a new version/revision without changing the name it should work fine.

I have ordered the starterset +10 seperate tiles, im thrilled to try them en hope youre custom component works.

im using LS160 controller, the linux command didnt work and tried the custom components, was able to add but isn’t working. Are you using hass io?

I’m using Ubuntu with hassio (https://www.home-assistant.io/hassio/installation/#alternative-install-on-a-generic-linux-host). But that shouldn’t matter.
Are you sure you are using the right IP? You can view it in the app. Also not sure if it matters but I’m using guest mode. I have never registered for an account.

I just retested on a second cololight and the command line works by retyping the apostrophes after copy paste. Your custom components also worked. I have a cololight account btw.

Amazing work!
Thank you for putting in the effort on this.

works fine.
thank you

Thanks, NoedelVreter! It’s working great! Is there a way to integrate new light effects?

No possibility to integrate custom effects?

We recently got a set of these and I’m using this code to control them. It’s great!

I did play around with different values for the effects and found some really interesting combinations. We replaced most of the effects with the ones we liked.

My question is this: we have the Pro version that will listen for music (without the app) and light up accordingly. We’re able to activate it with the button on the back but I’m hoping there is a way to activate it with code. Has anyone tried or had any luck with this?

Thanks!

For anyone up to some minor soldering you can flash these controllers with WLED. The controller uses an esp32. The controller case snaps apart with a little effort and the board has pads on the back for rx,tx and ground and gpio0. Pics courtesy of the FCC here: https://fccid.io/2AJMI-00LS166/Internal-Photos/internal-photos-4372040

If you want button control you need to compile your own binary as the button is not on the pin that is set by default in the WLED code.

Pins are:
Led Data pin: GPIO16
Capacitive button GPIO4

The soundreactive fork of wled also works with the mic on these! The pin needs to be specified for the mic as GPIO32.

short video of one of the sound reactive effects in WLED running: https://www.youtube.com/watch?v=LflxOpsTs1I

1 Like

Thank you for this information.

I got a non-pro version myself which uses an esp8266 chip.
Soldering was pretty simple (even with my lack of steady hands).
I found out that it only has 1MB storage which limits things like WLED. So I flashed ESPHome on it.
Seems the LED data pin is GPIO2. Not sure about the button, since I don’t use that.

Here are the important parts of my ESPHome config:

esphome:
  name: cololight
  platform: ESP8266
  board: esp01_1m

------

light:
  - platform: fastled_clockless
    chipset: WS2811
    pin: GPIO2
    num_leds: 57
    rgb_order: GRB
    max_refresh_rate: 16ms
    name: Cololight
    effects:
      - addressable_rainbow:
          name: Rainbow
          speed: 10
          width: 19
      - addressable_color_wipe:
          name: Color Wipe
          colors:
            - red: 100%
              green: 0%
              blue: 0%
              num_leds: 19
            - red: 0%
              green: 0%
              blue: 100%
              num_leds: 19
      - addressable_lambda:
          name: Random
          update_interval: 1000ms
          lambda: |-
            it.range(0, 18)  = ESPColor::random_color();
            it.range(19,37)  = ESPColor::random_color();
            it.range(38,56)  = ESPColor::random_color();
2 Likes

May I know how did you flash it? I have an extra controller lying around.

  1. Did you short RST and GND0 before powering it up to enter flash mode?
  2. What’s the FTDI connection aside from tx,rx:
    RST to FTDI ground
    5v pin to FTDI VCC

Or can I use the USB power itself while it is connected to RX TX of FTDI?

cololight GPIO0 to cololight GND
FTDI GND to cololight GND
FTDI RX to cololight TX
FTDI TX to cololight RX

FTDI as 3.3V
Cololight powered by USB

1 Like

Great.It’s now working. Smoother than the original :slight_smile:

For the num_leds, does it increase according to the number of light connected?

Edit: num_leds corresponds to the led per hexagons connected serially , so 57 = 3 hex (#1 connected to #2 and #2 connected t o#3)… That means, additional hex = reflash of the new code with the updated num_leds and effects that relies on the # of leds (e.g. random).

Thats right. However in my setup I have #3 and #4 connected to #2. They count as 1 hex

For those that are using the addon:

BazaJayGee66 is now the new maintainer. Please update your HACS repository.

3 Likes