OTA encryption
ESPHome 2026.9.0 added encrypted OTA updates, using the same key as the API encryption. Unlike the OTA password, which only checks who sends the update, the encryption also protects the firmware image in transit, which includes your Wi-Fi password and API key. Since then, ESPHome shows the warning 'ota' password wastes significant flash and RAM when compiling panels with API encryption.
This release adds the ota_encryption substitution to enable it, and the api_encryption_key substitution to set the API encryption key:
substitutions:
api_encryption_key: !secret api_encryption_key
ota_encryption: true- Nothing changes unless you opt in. With the default
ota_encryption: false, your panel keeps usingota_passwordexactly as before, on every supported ESPHome version. - One-step migration from an OTA password (ESPHome 2026.10.0 or newer): set
ota_encryption: trueand keep your currentota_passwordfor one install. The password is used only to send that update, and is not built into the new firmware. Setota_passwordback to blank afterwards. - New installations are now guided to use the API encryption and
ota_encryption: truefrom the first flash. - Configurations following the previous manual guide (
password: !removeandencryption:) keep working. - Configurations that set the API encryption key directly in an
api:block keep working.
Once a panel requires the encryption, it refuses OTA updates without the API encryption key. Keep your key safe: if it is lost, the panel can only be recovered with a serial flash.
See OTA encryption for the migration steps for each case.
What's Changed
Other Changes
- feat: Add OTA encryption option by @panel-easy-assistant[bot] in #594
- feat: Add OTA encryption option by @edwardtfn in #634
Full Changelog: v2026.11.3...v2026.11.4