ESPHome 2026.9: cifrar OTA en un dispositivo existente usando la clave del API

Si tienes nodos ESPHome funcionando y hasta ahora actualizabas por OTA con un password sin cifrar, esta guía te da el cambio mínimo para que las próximas actualizaciones vayan cifradas: el bloque OTA hereda la clave que ya usa tu API.

· Última revisión: 16/09

Diagrama de dos caminos para cifrar las actualizaciones OTA: heredar la clave del bloque api si ya existe, o provisionar la clave con serial si no hay api key

Qué cambió en ESPHome 2026.9.0

ESPHome 2026.9.0 salió el 16 de septiembre con builds más rápidas y una novedad relevante para nodos ya desplegados: el cifrado de OTA dejó de estar reservado a dispositivos que grabas por serial desde el principio. Un nodo que ya corre 2026.9.0 y tiene una clave de cifrado que ofrecer puede empezar a recibir actualizaciones cifradas sin volver a abrir la carcasa. La documentación oficial describe el procedimiento como Enabling Encryption on an Existing Device.

El detalle se reescribió esta misma semana, dividido en dos caminos según si el dispositivo tiene una clave de API estática o no.

Caso 1: ya tienes una api key

Si tu YAML ya define api: encryption: key, tienes la pieza central. En 2026.9.0 puedes dejar que el bloque OTA herede esa misma clave en lugar de duplicarla o de seguir usando password. El cambio es retirar el password y añadir un bloque ota: encryption: vacío, que hereda del API.

Antes de 2026.9.0:

api:
  encryption:
    key: !secret api_key

ota:
  password: !secret ota_password

Después, con 2026.9.0 o superior ya instalado:

api:
  encryption:
    key: !secret api_key

ota:
  encryption:

Si tenías la clave repetida en ota: encryption: key:, el propio ESPHome 2026.9.0 la reemplaza por el bloque heredado cuando reescribe el YAML. El resultado es el mismo: OTA pasa a usar la clave del API.

Orden importante: instala primero 2026.9.0 en el nodo y luego aplica el cambio de YAML. Un dispositivo que se actualiza por OTA obtiene el cifrado una vez que ya corre 2026.9.0 con una clave que puede ofrecer, y lo conserva desde entonces.

Caso 2: no tienes api key

Si el nodo no usa el API nativo o no tiene una clave estática, no hay nada que heredar. La vía que la documentación marca como segura es provisionar la clave en la primera escritura: un dispositivo grabado por serial puede llevar el cifrado desde el arranque. La sección oficial también contempla un bloque API temporal con reboot_timeout: 0s para preparar el dispositivo, pero no reproduzco ese YAML aquí sin validarlo línea a línea: cambió hace dos días y prefiero enlazar la fuente a darte un camino a medio verificar.

Lo que sí tienes que descartar es la expectativa mágica: un nodo que se actualiza por OTA sin clave previa no queda cifrado por haber leído la release. La clave tiene que llegar por serial o por la interfaz web en la primera escritura, y desde ese momento las siguientes actualizaciones OTA van cifradas.

La sección oficial separa este caso en pasos numerados con el YAML por paso: ESPHome OTA Updates. Si encajas aquí, revísala con el YAML de tu nodo delante.

Tabla resumen

Situación del nodo y cambio a hacer en 2026.9.0
SituaciónAcción
Ya tiene api: encryption: keyActualiza a 2026.9.0, quita el password del OTA y añade ota: encryption: para heredar la clave.
Tenía la clave duplicada en OTAESPHome la reescribe como bloque heredado; el resultado es el mismo.
Sin api keyLa clave se provisiona por serial o con la interfaz web en la primera escritura. Consulta el procedimiento oficial.

Lo que OTA no resuelve

Activar este cifrado no migra las actualizaciones pasadas ni te protege de un nodo que todavía no tiene la clave. Un firmware anterior a 2026.9.0 no puede ofrecer la clave para heredarla; si tu nodo tiene firmware muy viejo y no lo quieres grabar por serial, consulta la sección oficial, que menciona un corte de soporte para firmware antiguo hacia 2027.3.0. No he podido confirmar qué implica exactamente ese corte para una instalación media, así que lo dejo anotado como dato a comprobar antes de decidir.