ESPHome mit Python über die Kommandozeile flashen

AZDelivery Mikrocontroller Board ATmega328 mit USB-Kabel inklusive E-Book!
AZDelivery Mikrocontroller Board ATmega328 mit USB-Kabel inklusive E-Book!
9,99 €

Für alle die nicht das ESPHome AddOn im Home Assistant nutzen um ESPHome Projekte über den Browser zu kompilieren und zu flashen gibt es noch weitere Möglichkeiten ESPHome Projekte auf den ESP zu bringen.

Die erste Variante auf die ich hier nicht weiter eingehen möchte ist die Möglichkeit, ESPHome über Docker zu installieren. Weitere Infos dazu findet Ihr in der ESPHome Dokumentation:
https://esphome.io/guides/getting_started_command_line.html

Alternativ könnt Ihr einfach Python inklusive ESPHome installieren und eure ESPHome-YAML Dateien auf der Kommandozeile kompilieren und flashen.


ESPHome für die Kommandozeile installieren

Zu erst muss Python installiert werden. Das geht natürlich auch manuell. Bei Windows empfehle ich um Probleme zu vermeiden, Python aus dem Microsoft Store zu installieren.
https://apps.microsoft.com/store/detail/python-39/9P7QFQMJRFP7

Sobald Python installiert ist, muss ein Arbeitsbereich eingerichtet werden. Dazu erstellt man an einer beliebigen Stelle einen Ordner in dem man die ESPHome Projekte später verwalten möchte. (z.B. im Dokumente-Ordner des aktuellen Benutzers)

Anschließend wechselt man im Arbeitsplatz (Explorer) in den neu erstellten Ordner und gibt oben in der Adresszeile das Kommando „cmd“ ein und bestätigt mit Enter. Dadurch öffnet sich die Kommandozeile in der man sich direkt im richtigen Verzeichnis befindet.

Kommandozeile aus dem Arbeitsplatz heraus starten

Jetzt muss der Arbeitsbereich angelegt werden. Das erledigt der folgende Befehl der auf der Kommandozeile eingegeben werden muss.

python -m venv esphome-venv
.\esphome-venv\Scripts\activate

Jetzt muss der Bereich aktiviert werden. (Dieser Befehl muss immer erneut ausgeführt werden, wenn die Kommandozeile erneut geöffnet wird)

Arbeitsbereich einrichten

Nachdem der Arbeitsbereich eingerichtet und aktiviert wurde, kann nun ESPHome mit den folgenden zwei Befehlen installiert werden:

pip3 install wheel
pip3 install esphome



ESPHome Projekt kompilieren und flashen

Um nun ein ESPHome Projekt auf einen ESP zu flashen muss falls noch nicht geschehen die yaml-Datei in dem Verzeichnis abgelegt werden. Sofern darin Secrets verwendet werden, muss ebenfalls die Datei secrets.yaml mit den entsprechenden Einträgen im gleichen Verzeichnis abgelegt werden.

Wofür die secrets.yaml ist und wie sie verwendet wird erkläre ich im folgenden Video:

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Secrets.yaml


Nun kann mit folgendem Befehl die yaml-Datei kompiliert werden.
Dadurch wird eine Bin-Datei erzeugt, die anschließend mit einem Programm wie ESPHome-Flasher auf den ESP geflasht werden kann. Der Pfad an dem die Bin-Datei gespeichert wird, steht in der Ausgabe direkt über der Erfolgsmeldung.

Ausgabe des Pfades zur kompilierten Firmware


Sofern beim Kompilieren bereits ein ESP am USB angeschlossen und die entsprechenden Treiber installiert sind, wird einem direkt das Flashen angeboten.

Es werden alle zur Verfügung stehenden Com-Anschlüsse aufgelistet, welche sich mit der entsprechenden Zahl auswählen lassen. Nach bestätigen mit Enter startet sofort der Flash-Vorgang.

Flashvorgang über die Konsole erfolgreich