ESPHome: API Password deprecated on 2023.02

Sonoff RF Bridge 433 New
Sonoff RF Bridge 433 New
--

Wahrscheinlich haben viele nach dem letzten Update auch die Meldung “API Password deprecated on …” in Ihren Reparatur-Hinweisen.

ESPHome Api Password deprecated

Mit dem Home Assistant Update 2023.02 wurde nämlich das Passwort zur Absicherung der ESPHome API auf deprecated gesetzt. Das bedeutet, Diese Art der Absicherung der Kommunikation zwischen eurem Home Assistant und den ESPHome Geräten sollte in Zukunft nicht mehr verwendet werden.

Das ist aber gar nicht so schlimm, denn es gibt ja schon eine ganze Weile die neue Möglichkeit, die API-Verbindung nicht nur mit Passwort zu sichern, sondern sie über einen Encryption-Key zu verschlüsseln. Und diese Lösung soll jetzt das alte Passwort endgültig ablösen.

Die Informationen zum Update findet Ihr auch noch einmal unter folgendem Link:
https://www.home-assistant.io/blog/2023/02/01/release-20232/#now-even-tighter-integrated-with-esphome

Vorerst funktioniert das alte API-Passwort weiterhin, allerdings wird nun bereits über die Home Assistant Reparatur Hinweise mit der Meldung “API Password deprecated on …” auf die Verwendung des auslaufenden Passwortes hingewiesen.

Daher ist davon auszugehen, dass diese Funktion in naher Zukunft entfernt wird. Eine Information darüber, wie viel Zeit uns für die Umstellung bleibt habe ich auf die Schnelle nicht gefunden, aber ich gehe davon aus, dass wir noch ein paar Monate Zeit haben.
Trotzdem würde ich empfehlen, zeitnah das Passwort durch die Verschlüsselung zu ersetzen.


Was ist das Problem?

Es geht um das API-Passwort, welches man eingeben muss, wenn man ein ESPHome Gerät in Home Assistant unter “Einstellungen – Geräte & Dienste” hinzufügt.

Im Code sah das bisher so aus:

api:
  password: "MeinSuperSicheresPasswort"

Dieses Passwort sollte ab sofort nicht mehr verwendet, sondern statt dessen der Verschlüsselungs-Key eingesetzt werden.


Was ist zu tun?

In allen Projekten, in denen bisher ein Passwort zur Absicherung der API-Verbindung verwendet wurde, ersetzt man einfach die “Passwort-Zeile” mit zwei Zeilen für die Verschlüsselung wie im folgenden Code zu sehen. Achtet dabei auf die Einrückung!

api:
  encryption:
    key: "GxB0x7wN6qMbHG5SkjwkBrj+tJOd+GhL7e4Qe6AxHl0="

Einen eigenen Schlüssel für die Verschlüsselung könnt Ihr z.B. auf der Seite zur API-Komponente in der ESPHome Dokumentation generieren:
https://esphome.io/components/api.html

Aus diesem Textfeld könnt Ihr euch den zufällig generierten Schlüssel kopieren

Jetzt müsst Ihr nur noch die Firmware mit einem Klick auf “Install” erneut auf den ESP flashen.


Die Geräte werden dann automatisch im “Geräte & Dienste” Bereich als “Aufmerksamkeit erforderlich” angezeigt. Hier reicht es in der Regel einmal auf “Neu konfigurieren” zu klicken.

Im Schlimmsten Fall müsst Ihr das Gerät einmal aus den Integrationen entfernen (Über das 3-Punkte Menü löschen) und anschließend neu hinzufügen. Das war bei mir aber nur bei zwei Geräten der Fall.


Anmerkungen

Was mir aufgefallen ist, ist dass bei diesem Update bei vielen Geräten ein trennen vom Strom nach dem Update notwendig war, was sonst eher nicht notwendig war.
Mein NS-Panel ließ sich OTA gar nicht mehr aktualisieren. Hier musste ich noch einmal per FTDI flashen. Hier kann ich nicht sagen woran genau das lag.

Alle Bluetooth Proxys sollten auf jeden Fall einmalig per FTDI oder per USB geflasht werden, um alle Vorteile der neuen Version nutzen zu können. Das hängt damit zusammen, dass OTA die Partitionstabelle auf dem ESP nicht neu geschrieben werden kann. Anschließend können weitere Updates wieder wie gewohnt OTA erfolgen.


Sollte euch noch etwas auffallen, lasst es mich gerne über Discord wissen.
https://smarthomeyourself.de/discord


ESPHome Tutorial Serie

Falls Ihr noch mehr über ESPHome wissen wollt, werft doch einfach mal einen Blick in meine ESPHome Tutorial Serie auf YouTube:

Playlist:
https://www.youtube.com/playlist?list=PLtEjuZQyAkqGAvHjsM6G295CsKXetm-_Z


Ansonsten findet Ihr auch jede Menge Informationen rund um ESPHome hier im Wiki: