ESPHome Dashboard new

Wenn ESPHome Devices mit SmartHomeNG verwendet werden sollen, kann es hilfreich sein das ESPHome Dashboard auf dem Rechner zu installieren, auf dem SmartHomeNG läuft.

Das ESPHome Dashboard verwendet eine recht große Anzahl von Python Packages. Um Konflikte mit Packages/Package-Versionen die in SmartHomeNG verwendet werden zu vermeiden, wird das ESPHome Dashboard in einem eigenen virtuellen Environment installiert. Die minimal benötigte Python Version für ESPHome ist zurzeit Python 3.9.

Zur Installation und Verwaltung von ESPHome sind Skripte im tools Verzeichnis der SmartHomeNG Installation vorhanden.

Die Installation erfolgt mithilfe des Skripts esphome_install.

$ esphome_install

Das Skript

  • prüft ob eine für ESPHome benötigte Python Version auf dem System gefunden wird

  • erstellt ein virtuelles Environment mit der entsprechenden Python Version

  • aktiviert das erstellte virtuelle Environment

  • installiert ESPHome in das virtuelle Environment

  • zeigt anschließend die Version von ESPHome an, die installiert wurde

  • und erzeugt das Verseichnis in dem die Konfigurationen für ESPHome gespeichert werden

Die Dateien aus dem erzeugten Verzeichnis /usr/local/smarthome/var/esphome/config werden beim Backup und Restore der SmartHomeNG Konfiguration mit gesichert bzw. zurück restauriert.


ESPHome Dashboard starten und testen

Das ESPHome Dashboard kann im aktuellen Terminal Fenster mit dem Befehl

$ esphome_start

gestartet werden und mit Ctrl-C wieder beendet werden.

Nun sollte das Dashboard mit einem Browser (Chrome oder Safari) aufgerufen werden können. Die URL dazu ist

<Name/IP des SmartHomeNG Systems>:6052

Nun sollte das ESPHome Dashboard angezeigt werden.

Der folgende Screenshot zeigt das Dashboard, welches im lokalen Netzwerk bereits ein ESPHome Device entdeckt (discovered) hat.

../../_images/esphome_dashboard.jpg

ESPHome Dashboard als Dienst einrichten

Damit das ESPHome Dashboard bei jedem Start des Systems automatisch gestartet wird, muss es als Dienst eingerichtet werden.

Da ESPHome in ein virtuelles Environment installiert wurde, muss dieses virtuelle Environment zum starten dest Dienstes genutzt werden. Es muss der Python Interpreter aus diesem virtuellen Environment genutzt werden um esphome zu betreiben. Dazu muss der folgende Text in die Datei /etc/systemd/system/esphome.service eingefügt werden:

[Unit]
Description=ESPHome-dashboard daemon
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/smarthome/tools/esphome_start
User=smarthome
Restart=on-failure
RestartSec=30
TimeoutStartSec=900
RestartForceExitStatus=5
Environment="PATH=/usr/local/smarthome/venvs/py_esphome/bin:/usr/local/sbin:/usr$

[Install]
WantedBy=default.target

Starten des Dienstes

Der so vorbereitete Dienst kann über den systemctl Befehl gestartet werden.

sudo systemctl start esphome.service

Wenn alles ok ist, kann der Autostart aktiviert werden:

sudo systemctl enable esphome.service

Bei Systemstart wird nun das ESPHome Dashboard automatisch gestartet.

Um den Dienst wieder auszuschalten und den Neustart bei Systemstart zu verhindern nutzt man:

sudo systemctl disable esphome.service

Um zu sehen, ob das ESPHome Dashboard läuft, genügt ein

systemctl status esphome.service

Läuft es noch nicht und man möchte sozusagen manuell starten reicht ein:

sudo systemctl start esphome.service

Ein Neustart des Dashboards würde mit

sudo systemctl restart esphome.service

funktionieren, ein Stop von SmartHomeNG entsprechend

sudo systemctl stop esphome.service