I am using Home-Assistant since a few years now and reading about ESPHome for some time also, but until recently, I was using exclusively Tasmota flashed devices.
Trying to move to ESPHome, currently testing everything with a couple of devices (and trying to learn in the process).
With Tasmota, I already had the surprise to upgrade to a new version and afterwards the device wasn’t working as expected anymore, so I had to revert to the firmware version that was on the device before the upgrade. This is quite simple, because all the firmware versions of Tasmota are on their OTA webpage.
Now with ESPHome, everything being compiled locally, I am not able to find the N-1 version of the firmware (after making the upgrade), in case things don’t work as expected. I am not sure, but I think the firmware.bin generated is overwritten by the new version. So the old firmware version is gone.
Is my understanding correct?
How do you manage this?
I personally save the factory image that worked so I can flash it using esptool via USB, if a future upgrade fritzes the device. It’s a menu option when installing the image.
ESPHome is not great as far as rolling back goes. There is an add-on repository with all recent versions, it lets you go back to a previous version for compile:
Its better to just specify which eaphome version to compile with in the config so you dont accidentally update the device and then have to redo it again. Putting the version in the config would not have that issue.
I run an ESPHome Core setup. It’s fairly easy to roll back. I just have to blow out the software virtual environment where I created the ESP Home installation and then recreate the venv, and then just run pip install ESP Home and ESP Web with the correct versions.
Not sure how easy or difficult it is to roll back with the ESPHome addon, which I never used.