So I had some old LED strips that were hooked up around the window frame in my kid’s room which were not doing anything because the old WiFi controller I had on it was just so flaky and it connected via the cloud to, I’m assuming, China. I revisited getting it working, and it turned out that it was using an ESP12 chip. So I figured I should get that going with ESPHome (Check out my previous article about ESPHome) to give me total local control with Home Assistant.

NOTE: This worked out for me because I already had a light strip and controller. If you were purchasing this stuff from scratch, I would recommend just using a Wemos D1 Mini with a WS2812B strip and a power supply. I did this behind my TV and it gives you so many more options with the addressable lights and it doesn’t cost a lot more. And on top of that, it is a lot easier to do than this one. I plan on doing a write-up on how to do that some time this week. Stay tuned.

Here’s what you will need:

Soldering the wires

  1.  First, crack open the case. I found it easiest to wedge a flat head screwdriver where the connector is.
  2. Next, you need to solder a wire going from the pin IO0 (it looks like it says 100) to one of the GND pins. And solder one male to female jumper onto the Rx pin and one onto the Tx pin.

  3. Now connect the LED Controller’s RX to the USB-Serial adapter’s TX. And the LED Controller’s TX to the USB-Serial’s RX.
  4. Plug the USB to Serial into your Home Assistant computer that has ESPHome on it.
  5. In ESPHome, click the + symbol and fill in the information. Then edit that device you created, and add the following to the end and save it:
    output:
      - platform: esp8266_pwm
        pin: GPIO14
        id: 'color_red'
      - platform: esp8266_pwm
        pin: GPIO05
        id: 'color_green'
      - platform: esp8266_pwm
        pin: GPIO12
        id: 'color_blue'
    
    light:
      - platform: rgb
        name: "Kids LED"
        red: color_red
        green: color_green
        blue: color_blue
        
        effects:
          - random:
              name: Rainbow
              transition_length: 5s
              update_interval: 7s
          - flicker:

     

  6. Go to the ESPHome main page, click the drop down at the top, select your USB-Serial adapter. You may need to restart ESPHome for it to show up. Then click ‘Upload’ on the device you created. This should upload the code to the LED Controller, and the controller should connect to WiFi. From here, you can update the device over the air, and you don’t need the USB to serial device.
  7. All that is left is to add it into home assistant. Go to “Configuration -> Integrations”. You should see the device at the top. Just follow the steps there to get it added. The password you need to put in is the API password you setup in step 5.

That’s it. You should now be able to control that strip from Home Assistant. I have it set to slowly turn on when their Amazon Echo’s alarm goes off.

One Reply to “Making a Cheap WiFi LED Strip Controller a Lot Smarter”

Leave a Reply