Setup esphome from this PR: esphome/esphome#5535 (Code is also here)
python3 -m venv .
bin/pip install .
bin/pip install setuptools
For each Shelly:
- Create minimal yaml with correct firmware version. Check Shelly device for exact board requirements here.
esphome:
name: shelly-upgrade
esp32:
board: correct-board
framework:
type: esp-idf
platform_version: 6.4.0
version: 5.1.1
wifi:
networks:
- ssid: "ssid"
password: "password"
ota:
password: ota-password
unprotected_writes: True
logger:
web_server:
button:
- platform: restart
name: Restart
- Build firmware file with
bin/esphome compile path/to/yaml-name.yaml
firmware.bin
can be found at: /path/to/.esphome/build/{yaml-esphome-name}/.pioenvs/{yaml-esphome-name}/firmware.bin
-
Flash the Shelly to Tasmota with Safeboot: https://github.com/tasmota/mgos32-to-tasmota32?tab=readme-ov-file#lets-start
-
Use firmware.bin file from step 1 to upgrade from Tasmota using the web interface.
-
Upgrade the partition schema:
bin/esphome -v upload-factory-ota /path/to/yaml-name.yaml
-
Install actual esphome configuration normally with
use_address: ip
as the hostname is not correct yet.