Skip to content

OTA Encryption not supported #137

Open

Description

@hole222

ESPHome is moving from OTA password and plain text upload to encrypted uploads. As of 2027.3.0 password protected OTA updates will be removed. See: https://esphome.io/components/ota/esphome/#enabling-encryption-on-an-existing-device

Attempting to configure my AIR-1 to use this new configuration fails:

Image
substitutions:
  name: spare-bed-air-1
  friendly_name: spare-bed-air-1
packages:
  ApolloAutomation.AIR-1: github://ApolloAutomation/AIR-1/Integrations/ESPHome/AIR-1.yaml
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
api:
  encryption:
    key: {redacted]
esp32:
  framework:
    type: esp-idf
ota:
  - platform: esphome
    encryption:
wifi:
  ssid: WAPLO
  password: !secret wifi_password

HA Version: 2026.10.3
ESPHome Version: 2026.10.0

Activity

  1. gdt commented on Oct 25, 2026

    @gdt
    Contributor

    I don't see a password line under ota in what you pasted.

  2. hole222 commented on Oct 25, 2026

    @hole222
    Author

    That's because I am trying to use encryption not a password. Both can not be used at the same time.

    The password that you "don't see" is in

    packages:
      ApolloAutomation.AIR-1: github://ApolloAutomation/AIR-1/Integrations/ESPHome/AIR-1.yaml
    

    This needs to be removed if using encryption and removed completely before 2027.3.0 is released.

  3. gdt commented on Oct 25, 2026

    @gdt
    Contributor

    Thanks for clarifying; it's good to have the issue easier to follow.

    I would recommend that you fork the repo, add a commit that drops the password, test, and submit a pull request.

  4. TorvaldUtne commented on Oct 29, 2026

    @TorvaldUtne

    This IS kind of a sticky situation, though. Changing the config here will break the next push for a lot of folks who do a straight include off github.

    Details are here: https://esphome.io/components/ota/esphome/#enabling-encryption-on-an-existing-device

    I am not sure what the easiest transition is, but I saved it locally, edited it and did the include so I could do the double push, Once with allow_plaintext_upload: true and once with it removed. I have to stay with my local copy until things are sorted.

    There does need to be a kind of plan, I think.

  5. hole222 commented on Oct 29, 2026

    @hole222
    Author

    I don't completely understand the ESPHome include syntax, but can it not be conditionally applied?

    e.g. if encryption: is defined include that, else if password: is defined include that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions