Nextion TFT vom Sonoff NSPanel automatisch aktualisieren

AZDelivery NodeMCU ESP8266 Heltec mit OLED Display CP2104 WLAN WiFi Development Board kompatibel mit Arduino inklusive Ebook!
AZDelivery NodeMCU ESP8266 Heltec mit OLED Display CP2104 WLAN WiFi Development Board kompatibel mit Arduino inklusive Ebook!
15,99 €

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 Home Control Panel für Temperatur und Feuchtigkeitskontrolle,Smart Lichter,Smart Schalter,Arbeitet mit Alexa & Google Home
Bei Amazon ansehen * 61,99 €
Stand von: 3. Dezember 2024 12:17 - Details
SONOFF NSPanel Smart Scene Wlan Wandschalter,Wifi Smart Schalter,2 Way Smart Hom... *
(* = Affiliate-Link / Bildquelle: Amazon-Partnerprogramm)
×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.


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