Contraseña de API obsoleta en Home Assistant 2023.02
Al acceder a nuestro Home Assistant tras actualizar a la versión 2023.2, si utilizamos dispositivos ESPHome con contraseña de API, nos podemos encontrar con una alerta en la sección de Ajustes con el mensaje:
API Password deprecated on <nombre dispositivo>
En este artículo vemos cómo resolverlo.
En el menú de Ajustes nos puede aparecer en la parte superior un elemento como el siguiente:
Si pulsamos en el mensaje, nos mostrará el siguiente diálogo:
y en el enlace SABER MÁS
nos enviará a https://esphome.io/components/api.html, la documentación de la API.
En el apartado Configuration variables nos informará de la variable encryption
, que contiene a su vez el parámetro key
, una cadena de 32 bytes codificada en base64 como ésta: VEY3yb8yK1x+s03pORI3IBCrGaCHIfBnjaijQaedTRI=
. Este valor se genera aleatoriamente cada vez que visitamos la página, por lo que se podría utilizar directamente, pero lo habitual será generar o escribir una nosotros mismos con la misma longitud.
La solución pasa por reemplazar en el archivo YAML
de configuración del dispositivo ESPHome, el apartado:
# Enable Home Assistant API
api:
password: "ABCDEfghi1234"
por
# Enable Home Assistant API
api:
encryption:
key: "VEY3yb8yK1x+s03pORI3IBCrGaCHIfBnjaijQaedTRI="
y cargar el nuevo código en nuestro dispositivo ejecutando:
esphome run archivo.yaml
Una vez actualizado el firmware en nuestro dispositivo, aparecerá una notificación en Home Assistant indicando que una integración requiere reconfiguración:
Si pulsamos en el enlace Check it out nos enviará directamente a al apartado Ajustes
-> Integraciones
, donde aparecerá la integración que requiere aplicar una reconfiguración:
pulsamos en el botón RECONFIGURAR
y nos mostrará un diálogo que pedirá la clave de cifrado que hayamos especificado:
Introducimos la clave y pulsamos el enlace ENVIAR
. Si la clave es correcta, nos mostrará un diálogo de confirmación:
Sólo queda pulsar en CERRAR
. Nuestro dispositivo estará operativo de nuevo y la alerta desaparece.