OTA a different firmware (Tasmota?) to ESPHome

Greetings,
I’m wondering if its possible to use ESPHome’s OTA Firmware Update mechanism to send a completely different firmware like Tasmota. I’m just starting to learn about ESPHome and it’d be nice to know I have a backout plan if it turns out I’m not smart enough to use ESPHome. I know I could USB re-flash the devices but I’m wondering if its possible OTA (no re-soldering, or uninstalling).
Thanks

Should be possible, there is a cli esphomeyaml command for uploading binaries where you specify the target ip and port which is the same the dashboard uses.

I have flashed ota esphomelib into running tasmota, but not the other way around. Been testing this week several devices I can give it a try later to go from esphomelib to tasmota

1 Like

You could theoretically do it by replacing the <NODE_NAME>/.pioenvs/<NODE_NAME>/firmware.bin file with the target firmware file and the running esphomeyaml something.yaml upload. Then it will upload any firmware you want.

The easier option though is to enable the web_server component, go to the ESP page in your browser and use the OTA update field. There you can select any file from your computer and upload that.

@OttoWinter I tried the web_server method and all worked well until it ran out of space “Update Failed: ERROR[4]: Not Enough Space”. Any ideas anyone on a minimum ESPHome FW to start with or a minimum Shelly FW to flash? I’m trying to flash a Shelly 2.5 from ESPHome back to the Shelly FW. I’m using the Shelly recovery FW shelly25.bin
Thanks

Not sure if it’ll help in your case, but it does support gzipped binary files (like the tasmota bin files are), so you might try gzipping your bin before OTA-ing and see what happens.

esphome:
  name: miniota
  platform: ESP8266
  board: esp01_1m # shelly 2.5

wifi:
  networks:
  - ssid: 'SSID'
    password: 'password'

ota:

logger:
  level: NONE

This worked for me. Thanks for the suggestion. This saves having to upload a minimal firmware first. File size dropped from ~470kb to ~300kb and upload was successful.