Normalerweise muss man zum aktualisieren der Oberfläche des Nextion TFT im NSPanel immer den Dienst auf dem ESP aufrufen, der die Software auf dem Display aktualisiert. Dieser Dienst lädt sich dann die TFT-File von einer im Sketch hinterlegten URL auf das Display und aktualisiert so die Oberfläche. Diesen Dienstaufruf kann man dank Home Assistant aber auch automatisch auslösen lassen, sofern man diese vom Home Assistant bereitstellen lässt (also diese im /config/www-Verzeichnis des Home Assistant ablegt).
Und zwar überwacht man mit einem Folder-Watcher das Verzeichnis und reagiert mit einer Automatisierung, sobald sich die TFT-Datei aktualisiert.
Damit die Folder-Watcher Integration Zugriff auf das Verzeichnis hat, muss dieses in der configuration.yaml auf jeden Fall noch in den allowed_external_dirs eingetragen werden.
- SONOFF NSPanel Smart Scene Wlan Wandschalter,Wifi Smart Schalter,2 Way Smart Hom... *(* = Affiliate-Link / Bildquelle: Amazon-Partnerprogramm)
Dienst einlesen der TFT-Datei
Der Dienst im ESPHome-Code des NSPanel um die TFT-Datei auf das Nextion-Display zu laden sieht wie folgt aus:
api:
services:
- service: upload_tft
then:
- lambda: 'id(disp1)->upload_tft();'
Damit die Methode upload_tft() nun aber auch weiß, wo sie die TFT-Datei findet, müsst Ihr die vollständige URL dazu ebenfalls im ESP-Code hinterlegen. Diese Angabe wird jedoch nicht im Dienst sondern am Display selbst mit dem Parameter „tft_url“ vorgenommen.
Hier muss die URL noch an die des eigenen Home Assistant angepasst werden. Das Verzeichnis „/config/www“ ist beim http(s)-Zugriff über „/local/“ erreichbar.
display:
- platform: nextion
id: disp1
uart_id: tf_uart
tft_url: http://192.168.5.102:8123/local/nspanel_tft/nspanel.tft
Configuration.yaml
Gehen wir einmal davon aus, der Name der TFT-Datei „nspanel.tft“ lautet und diese im Verzeichnis „/config/www/nspanel_tft“ abgelegt wird.
Der Code in der configuration.yaml müsste dann in etwa wie folgt aussehen:
allowlist_external_dirs:
- /config/www/nspanel_tft
folder_watcher:
- folder: /config/www/nspanel_tft
Nun muss Home Assistant einmal neu gestartet werden, um die Änderungen zu übernehmen.
Automatisierung
Um nun auf die Ereignisse vom Folder-Watcher zu reagieren, müssen wir eine neue Automatisierung anlegen. In dieser überwachen wir im Trigger die Events vom Folder-Watcher auf Änderungen an der Datei „/config/www/nspanel_tft/nspanel.tft“. Sobald diese Datei geändert wird, soll der Dienst zum aktualisieren der Oberfläche auf dem Panel aufgerufen werden.
alias: Update NSPanel Büro on TFT-FileChange
description: ''
trigger:
- platform: event
event_type: folder_watcher
event_data:
event_type: modified
path: /config/www/nspanel_tft/nspanel.tft
action:
- service: esphome.nspanel_upload_tft
mode: queued
max: 2