You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1.6 KiB

Why custom ESPHome firmware?

This lamp could always be added to Home Assistant using the Yeelight integration. For this to work, the lamp had to be configured to enable a special "LAN control" option, which provides the interface that the Yeelight integration could talk to.

January 2021, Xiaomi decided to remove the LAN control option from the firmware. Information about this can be found on the Yeelight forums:

https://forum.yeelight.com/t/topic/22664

In the forums, a work-around is offered: by providing your Mi ID, you can be added to some mythical white list, through which you'll get a special firmware upgrade that does have LAN control enabled. After that, no further ugprades should be done.

This just didn't feel right, so I started looking into alternative solutions to regain control over the lamp. After opening it up, I was pleased to find an ESP32-WROOM-32D chip inside, meaning that it might be possible to build my own firmware for it using ESPHome.

On the Home Assistant community forums, I found an existing thread where people already started poking at the lamp.

https://community.home-assistant.io/t/hacking-yeelight-fw-enabling-lan-control/284406

I joined the discussion and started poking as well. Some things turned out to be more complicated than anticipated and quite a bit of reverse engineering was required to make things work, but eventually this all resulted in working firmware.

Documents related to the reverse engineering process can be found in a separate GitHub repository:

https://github.com/mmakaay/esphome-yeelight_bs2-revengineering