Posting this info in case anyone runs into this problem in the hopes that it will help someone recover their bulb without destroying it.
These bulbs come from the manufacturer with and old version of WLED (0.14.0-b1 i think) which after updating home assistant and the wled integration was below the minimum compatible version. So I pushed the 0.15.0-b4 firmware to my bulbs which unfortunately seems unstable on this model. They continuously power cycled every 5-10 seconds and the LEDS would turn on/off/on/off in a never ending cycle. The firmware reset procedure by manually toggling the power did not have any affect nor did just leaving them to power cycle on their own for long periods of time.
I opened one of my bulbs up to see if there was easy access to the serial interface for flashing but there was no such luck. The LED driver board is glued in pretty tight and the ESP is attached to the power board below it. Even with a heat gun prying the LED board out eventually broke the housing. To make things worse it seems the bottom e14 screw is crimped I think after assembling the top half, and I couldn’t pull the power board out far enough to solder wire to the necessary pads due to the short power wire in the base.
After giving up on the hardware route I luckily realized I could use curl to upload firmware without having to deal with the web interface which wouldn’t load properly. However the uploads initially failed, as soon as I started the upload the bulb would reset again and it would never complete. Further messing with direct API access I just started to see what I could do, and fortunately I found that turning the LEDS off caused the bulb to stay online. From there I could upload the 14.4.0 firmware and now the bulbs are stable again.
I modified a script from WLED github repo to wait for the bulb to be pingable and run the command immediately.
#!/bin/bash
FWPATH=~/Downloads
trap "echo Exited!; exit;" SIGINT SIGTERM
update_one() {
if [ -f $FWPATH/$2 ]; then
ping -c 1 -t 1 $1 >/dev/null
PINGRESULT=$?
if [ $PINGRESULT -eq 0 ]; then
# 1. Toggle the LEDS off
curl -X POST "http://$1/json/state" -d '{"on":"t","v":true}' -H "Content-Type: application/json"
# 2. Push firmware update
#curl -vv -s -F "update=@${FWPATH}/$2" $1/update >/dev/null
# 3. Check version info after update
#curl -X GET "http://$1/json/info"
return 0
fi
return 1
fi
}
while true; do
if update_one $1 WLED_0.14.4_ESP02.bin.gz; then
echo "Command sent"
break
else
echo "Waiting for ping"
fi
done
Just uncomment the next step and comment out the previous one to step through the process. Run a ping in a separate window to monitor if shutting off the LEDS keeps the power from resetting.
Pictures of the internals attached.