ESPHome on MagicHome LED Controller

After the Sonoff Basic and the Sonoff 4CH Pro, we’re now flashing the MagicHome RGB LED Controller to install the ESPHome firmware on it. With this device, we can control the color, the intensity and the effects applied to the LED strip. So here are the details to have it available on Home Assistant.

What is ESPHome ?

ESPHome is an ecosystem which allows to control the hardware connected to ESP8266/ESP32 devices.

Using simple configuration files, it’s able to control LED strips, temperature sensors, inputs, outputs, i2c devices and a lot more.

Have a look at their site to see what it can do.



MagicHome WiFi
RGB LED Controller


Regarding the wiring, we first have open the controller. There is no screw to remove, we only have to remove the cover.

Then, on the bottom side of the PCB, we can find 5 pads required to flash it :

  •  3.3v
  •  TX
  • RX
  • GND
  • GPIO0

On each of these pads, I soldered a wire in order to be able to connect it to the serial adapter.

Once done, make sure that the serial adapter is using 3.3v. Otherwise, a 5v will damage your device.


Install ESPHome

To use Python to upload the firmware, we need a Python 3 installed, this can be found here if you don’t already have it.

A Python package already exist to manage everything around the configuration and the upload. I can be installed by running the following command :

pip install esphome

Configuration File

Here is the a minimal configuration for this controller. With this, on Home Assistant, we can choose the color, the intensity and select an effect (I added slow random colors, fast random colors and an “In Alarm” mode which flash red and blue).

Just copy-paste that file on your computer and set your WiFi SSID and password.

Here’s the GitLab Snippet :

Enter in the Programming Mode

To enable the programming mode on the MagicHome LED Strip Controller , we have to : 

  • Disconnect the serial adapter.
  • Connect GPIO0 to the ground.
  • Now, reconnect the 3.3v.
  • After few seconds, you can disconnect GPIO0 from the Ground.
Connect GPIO0 with the Ground
Connect GPIO0 with the Ground

🎉 Then, the programming mode should be enabled ! 🎉

Upload the Firmware

Your device is now ready for the firmware upload, it can be done with this command :

esphome magichome_led_strip.yaml run

Exit the Programming Mode

Once the firmware is uploaded, we can disconnect everything, remove all the wires that we soldered and put it back in its case.

If we have to upload a new configuration, we can use the OTA (over-the-air) feature which we enabled in the config file.

Add to Home Assistant

Since Home Assistant version 0.85, ESPHome is natively supported through the integrations. This can be configured directly from the UI, which means that we don’t have to play with the configuration files !

What's next ?

Right now I’m working on my next tutorial. This time, I’ll not flash an existing device. With an ESP-01, I’ll control 16 relays with the I2C port. 

If you like these tutorials, don’t forget to subscribe to see my next projects !

Follow us !

ESPHome 16ch Relays
Home Assistant, ESPHome and 16 relays

2 thoughts on “How to install ESPHome on MagicHome LED Controller”

    1. No yet 🙂 But I have few devices (plug, power strip and few lights) that I can’t open to flash, so that’s my next option.

      Did you try it on your side ?

Comments are closed.