NEWS
Betatest NSPanel-lovelace-ui v0.7.x
-
Aktuelle Test Version 0.7.x Veröffentlichungsdatum 26.10.2025 Github Link https://github.com/ticaki/ioBroker.nspanel-lovelace-ui Installation über benutzerdefiniert und dort diese Zeichenkette rein kopieren:
iobroker.nspanel-lovelace-ui@latest
Dann installieren drücken.Der Adapter ist schon dicht an dem wo wir hinwollen, Nutzung ist erwünscht.
Hier findet ihr die aktuell gültige Alias Tabelle für diesen Adapter.
Anleitung wie man ein NSPanel im Adapter einrichtet findet ihr hier: https://forum.iobroker.net/post/1258258 (16.03.2025)
Dokumentation findet man hier GitHub Wiki
-
@ticaki eine kleine Erklärung um was es geht wäre gut
oder stehe ich auf dem Schlauch? Was ist der Unterschied zur anderen Firmware?@max_yeah
Die Firmware ist sowohl im Skript als auch im Adapter die selbe - beides kann eher als Steuersoftware betrachtet werden. Der Adapter wurde ursprünglich angegangen, weil- das Updaten vom Skript immer ein riesen Akt ist.
- es mit dem Adapter möglich ist tiefergreifende Befehle zu benutzen
- eine bessere Konfiguration möglich ist (woran wir aber bisher gescheitert sind)
- das Skript mal eine Refrakturierung vertragen könnte.
- komplexere Dinge möglich sind.
Für den Nutzer gib es wenn das aktuelle vorhaben abgeschlossen ist den Vorteil das er:
- Hilfe bei dem Erstellen der Aliase erhält. Falsch erstellte werden angemeckert.
- das "Skript" sich per Knopfdruck selbst updated(ist ja dann ein Adapter)
- Der Adapter hat seinen eigenen Mqtt-Client und kann einen eigenen Mqtt-Server bereitstellen.(Eine Fehlerquelle weniger und erheblich effizenter)
- Es wird leicht zu konfigurierende Vorlagen geben, für die keine Aliase nötig sind.
Wenn wir fertig sind, kann man beschreiben was alles jetzt möglich ist. Zur Zeit haben wir selbst ja nicht mal die Hälfte von dem getestet was möglich sein sollte, deshalb kommt da nicht viel von mir.
Nur mal ein paar Dinge, die in den Tiefen des Adaptercodes möglich sind, keine Ahnung ob das auch zur Verfügung gestellt wird:
Es gibt- in der Navigation einen Doppelklick (also 2 Ziele pro Button)
- bei einem button auf einer grid oder entities eine confirm funktion - also 2 mal klicken nötig damit die Aktion ausgeführt wird.
- 9 verschiedene Art wie aus colorOn, colorOff, colorScale bei einem Zahlenwert die Farbe berechnet wird.
(blau zu rot min: 0 max: 40) - das mehr als 4,6,8 Items auf einer cardGrid/cardEntities verwendet werden können - der Pfeil oben rechts im Bild bedeutet das man runter blättern kann. Ist man ganz unten kann man weiter nach rechts in der Navigation. (Da sollte der Doppelklick auch was machen, aber keine Ahnung, nur eine dunkle Erinnerung an die Möglichkeit vorhanden)
- jetzt schon das RGB Lampen im Icon die aktuelle Farbe und CT Lampen die Farbtemperatur visualisieren.
Hoffe das reicht erstmal, muß ja noch alles mehr oder weniger getestet werden.
-
@ticaki eine kleine Erklärung um was es geht wäre gut
oder stehe ich auf dem Schlauch? Was ist der Unterschied zur anderen Firmware?Erstmal sollten wir hier die Begrifflichkeiten klären.
Firmware in dem Sinne gibt es nicht, es sind eher mehrere Pakete die das Panel für seine Funktion benötigt.
-
Tasmota für den ESP32
-
Berrydriver als Übersetzer zum Display
-
TFT / HMI Software (Nextion) für die Darstellung der Seiten
dies liegt alles auf dem Panel im ESP32
-
NSPanel-Script aktuelle Version 4.5.x
-
Icon-Mapping Script
beides befindet sich im Javascript Adapter auf dem ioBroker. Zusätzlich wird ein MQTT-Server benötig.
Was soll jetzt der Adapter ersetzen / verbessern:
-
alle Script und MQTT-Server vereinen
-
Seitenkonfiguration vom Rest trennen
-
Erweiterung der Seitenkonfiguration, die mit dem Script nicht Möglich bzw. sehr aufwendig wäre. z.B. scrollen durch cardGrid und cardEntities
Wir stecken zur Zeit sehr viel Energie und Zeit in den Adapter, um das Script irgendwann abzulösen. Werden aktuell auch keine großen Updates von Script mehr bringen. Der Support wird weiterhin dasein und euch voll unterstützen.
-
-
Oben ergänzt:
EDIT Hab doch noch ein paar wichtige Dinge vergessen zu erwähnen:
- Der Adapter verwendet
Rule2undRule3auf dem Tasmota - Rule1 könnt ihr für eigene Regeln verwenden. - Bei einem Update des Adapters muß immer das Konfigurationsskript ausgeführt werden - da zur Zeit die hauptsächliche Arbeit in der Konvertierung besteht und diese nur angestoßen wird wenn man das Skript ausführt! Wenn das bei Start des Adapters passieren würde, könnten wir im Skript keine Rückmeldungen ausgeben - bzw. eine nachdem Adapterupdate als fehlerhaft einzustufende Skriptkonfiguration würde den Adapter-Start verhindern
- Der Adapter verwendet
-
Oben ergänzt:
EDIT Hab doch noch ein paar wichtige Dinge vergessen zu erwähnen:
- Der Adapter verwendet
Rule2undRule3auf dem Tasmota - Rule1 könnt ihr für eigene Regeln verwenden. - Bei einem Update des Adapters muß immer das Konfigurationsskript ausgeführt werden - da zur Zeit die hauptsächliche Arbeit in der Konvertierung besteht und diese nur angestoßen wird wenn man das Skript ausführt! Wenn das bei Start des Adapters passieren würde, könnten wir im Skript keine Rückmeldungen ausgeben - bzw. eine nachdem Adapterupdate als fehlerhaft einzustufende Skriptkonfiguration würde den Adapter-Start verhindern
Hi, ich habe mal ein Panel vom Script auf den Adapter umgestellt. Leider komm ich da nicht weiter, kannste mir n Tipp geben?
Fehlt oder ist bestimmt noch was falsch..
Anscheinend gibts noch Probleme mit der Communikation zum Adapter vom Panel oder rumgedreht, das Panel zeigt nur den Spinner und wartet auf Content..Was muss ich im Panel bei mqtt umstellen? der Adapter hat den Port 1881 hierm al ein Screenshot von den Configs:

Das Script sieht so aus (ich hab mal deine Beispiele rausgeworfen)
- Der Adapter verwendet
-
Hi, ich habe mal ein Panel vom Script auf den Adapter umgestellt. Leider komm ich da nicht weiter, kannste mir n Tipp geben?
Fehlt oder ist bestimmt noch was falsch..
Anscheinend gibts noch Probleme mit der Communikation zum Adapter vom Panel oder rumgedreht, das Panel zeigt nur den Spinner und wartet auf Content..Was muss ich im Panel bei mqtt umstellen? der Adapter hat den Port 1881 hierm al ein Screenshot von den Configs:

Das Script sieht so aus (ich hab mal deine Beispiele rausgeworfen)
@neuschwansteini sagte in Alphatest NSPanel-lovelace-ui v0.1.1:
const config: ScriptConfig.Config = {
panelTopic: 'NSPanel1/NSPanel1-BB',hier ein Fehler.
da er die ID gelesen hat hat auch die Verbindung zum Panel geklappt.
hast du noch Fehlermeldungen vom Starten des Script? Du musst das ConfigScript einmal Starten und wieder stoppen.
ggf. zeige mal noch die Seite General von der UI
-
@neuschwansteini sagte in Alphatest NSPanel-lovelace-ui v0.1.1:
const config: ScriptConfig.Config = {
panelTopic: 'NSPanel1/NSPanel1-BB',hier ein Fehler.
da er die ID gelesen hat hat auch die Verbindung zum Panel geklappt.
hast du noch Fehlermeldungen vom Starten des Script? Du musst das ConfigScript einmal Starten und wieder stoppen.
ggf. zeige mal noch die Seite General von der UI
und welcher Fehler ist das, ich versteh es leider nicht, wie es richtig sein muss.. ??
Alias Errors kommen keine, das Script startet ohne Fehler.Seite General des Adapters:

-
Wir haben das per Voice geklärt. Für die die mitlesen -
panelTopicim Skript muß den selben Eintrag haben, wie der panel topic im Admin. Daran erkennt der Adapter welches Panel konfiguriert werden soll. -
Bitte löscht den Ordner
panelswenn ihr eine aktuelle Version zieht, hab da etwas umstrukturiert.In
nspanel-lovelace-ui.0wird im Objekt die Skriptkonfiguration gespeichert, wenn ihr den löscht müsst ihr die Konfig nochmal rüberschicken. Auch kein Problem, aber macht arbeit
Und natürlich immer den Adapter neustarten, wenn ihr da was löscht.
-
@max_yeah
Die Firmware ist sowohl im Skript als auch im Adapter die selbe - beides kann eher als Steuersoftware betrachtet werden. Der Adapter wurde ursprünglich angegangen, weil- das Updaten vom Skript immer ein riesen Akt ist.
- es mit dem Adapter möglich ist tiefergreifende Befehle zu benutzen
- eine bessere Konfiguration möglich ist (woran wir aber bisher gescheitert sind)
- das Skript mal eine Refrakturierung vertragen könnte.
- komplexere Dinge möglich sind.
Für den Nutzer gib es wenn das aktuelle vorhaben abgeschlossen ist den Vorteil das er:
- Hilfe bei dem Erstellen der Aliase erhält. Falsch erstellte werden angemeckert.
- das "Skript" sich per Knopfdruck selbst updated(ist ja dann ein Adapter)
- Der Adapter hat seinen eigenen Mqtt-Client und kann einen eigenen Mqtt-Server bereitstellen.(Eine Fehlerquelle weniger und erheblich effizenter)
- Es wird leicht zu konfigurierende Vorlagen geben, für die keine Aliase nötig sind.
Wenn wir fertig sind, kann man beschreiben was alles jetzt möglich ist. Zur Zeit haben wir selbst ja nicht mal die Hälfte von dem getestet was möglich sein sollte, deshalb kommt da nicht viel von mir.
Nur mal ein paar Dinge, die in den Tiefen des Adaptercodes möglich sind, keine Ahnung ob das auch zur Verfügung gestellt wird:
Es gibt- in der Navigation einen Doppelklick (also 2 Ziele pro Button)
- bei einem button auf einer grid oder entities eine confirm funktion - also 2 mal klicken nötig damit die Aktion ausgeführt wird.
- 9 verschiedene Art wie aus colorOn, colorOff, colorScale bei einem Zahlenwert die Farbe berechnet wird.
(blau zu rot min: 0 max: 40) - das mehr als 4,6,8 Items auf einer cardGrid/cardEntities verwendet werden können - der Pfeil oben rechts im Bild bedeutet das man runter blättern kann. Ist man ganz unten kann man weiter nach rechts in der Navigation. (Da sollte der Doppelklick auch was machen, aber keine Ahnung, nur eine dunkle Erinnerung an die Möglichkeit vorhanden)
- jetzt schon das RGB Lampen im Icon die aktuelle Farbe und CT Lampen die Farbtemperatur visualisieren.
Hoffe das reicht erstmal, muß ja noch alles mehr oder weniger getestet werden.
@ticaki Danke für die Erklärung und Klarstellung.
Allein der Vorteil durch die leichteren updates wäre es Wert umzusteigen, (sofern man die gleichen Funktionen hat).
Ich habe noch ein Panel rumliegen, mit dem ich das sobald ich zeit habe mal testen kann.
In einem produktiv einsatz wären aber PowerCard und Charts für mich essentiel. -
@ticaki Danke für die Erklärung und Klarstellung.
Allein der Vorteil durch die leichteren updates wäre es Wert umzusteigen, (sofern man die gleichen Funktionen hat).
Ich habe noch ein Panel rumliegen, mit dem ich das sobald ich zeit habe mal testen kann.
In einem produktiv einsatz wären aber PowerCard und Charts für mich essentiel.@max_yeah
Produktiv sehe ich leider noch kein Datum für - wir haben aktuell ca. 40% und davon 15% ausreichend getestet
Das installiert man um zu gucken und Einfluss zu nehmen - Wir sind für konsturktives Feedback auch negatives dankbar. -
@max_yeah
Produktiv sehe ich leider noch kein Datum für - wir haben aktuell ca. 40% und davon 15% ausreichend getestet
Das installiert man um zu gucken und Einfluss zu nehmen - Wir sind für konsturktives Feedback auch negatives dankbar. -
@ticaki natürlich, ist ein super Sache. Finde gefühlt Täglich neue Anwendungsmöglichkeiten für die Panels (Ob man die wirklich braucht ist eine andere sache xP ). Würde mich freuen wenn ich zum Erfolg etwas beisteuern kann.
@max_yeah kurz ot: z.B.?
-
@hansi1234 said in Alphatest NSPanel-lovelace-ui v0.1.1:
@max_yeah kurz ot: z.B.?
naja Geräte die ich im Haus habe (die zum Teil nicht smart sind) die ich dann damit steure oder deren Zustand anzeige. Aber auch Smarte Geräte die aktuell nur ich einstellen oder ablesen kann weil nur ich die App auf dem Handy hab. Zum Teil hat es auch nicht wirklich was mit dem Panel zu tun. Weil die Logic ja nicht auf dem Panel läuft. Das Panel dient dann nur als Anzeige oder als Alternative trigger methode zur Alexa.
Hier ein paar Beispiele.
-
Kurz gemeldet
ab 0.1.5:
Wenn das Skript angepasst wird, muss zu jedem Bildschirmschonerelement noch die Eigenschafttype: "script"hinzugefügt werden.0.1.5 ist ein bissle buggy, nix wirklich schlimmes aber lohnt nicht sich die fehler anzugucken
0.1.6 wird heute kommen und das ist dann schon deutlich besser
-
Kurz gemeldet
ab 0.1.5:
Wenn das Skript angepasst wird, muss zu jedem Bildschirmschonerelement noch die Eigenschafttype: "script"hinzugefügt werden.0.1.5 ist ein bissle buggy, nix wirklich schlimmes aber lohnt nicht sich die fehler anzugucken
0.1.6 wird heute kommen und das ist dann schon deutlich besser
freut mich, dass ihr so dran bleibt!
Bin mit meinem Testpanel wieder zurueck zum Script, mich hatte es ja erstmal nur interessiert, was muss ich am Panel aendern, was am iobroker..Dann warte ich mal, bis ein "feuer frei fuer Beta tests" kommt..

-
freut mich, dass ihr so dran bleibt!
Bin mit meinem Testpanel wieder zurueck zum Script, mich hatte es ja erstmal nur interessiert, was muss ich am Panel aendern, was am iobroker..Dann warte ich mal, bis ein "feuer frei fuer Beta tests" kommt..

@neuschwansteini sagte in Alphatest NSPanel-lovelace-ui v0.1.1:
Dann warte ich mal, bis ein "feuer frei fuer Beta tests" kommt..

Roadmap ohne Datum sieht so aus:
0.2 Screensaver/cardGrid/cardEntities/Basisfunktionen laufen soweit und sind zum testen freigegeben
0.3 cardMedia ist verfügbar
0.4 alle cards sind verfügbar
0.5 erweiterte Funktionen (tasmota updates und ähnliches sind drin)Kannst dann selbst entscheiden was du brauchst und wobei du dann helfen willst - aktuell ist der noch nix zum antesten. imho
Hab selbst nur ein unwichtiges Panel auf dem Adapter im produktiven Einsatz laufen. -
@neuschwansteini sagte in Alphatest NSPanel-lovelace-ui v0.1.1:
Dann warte ich mal, bis ein "feuer frei fuer Beta tests" kommt..

Roadmap ohne Datum sieht so aus:
0.2 Screensaver/cardGrid/cardEntities/Basisfunktionen laufen soweit und sind zum testen freigegeben
0.3 cardMedia ist verfügbar
0.4 alle cards sind verfügbar
0.5 erweiterte Funktionen (tasmota updates und ähnliches sind drin)Kannst dann selbst entscheiden was du brauchst und wobei du dann helfen willst - aktuell ist der noch nix zum antesten. imho
Hab selbst nur ein unwichtiges Panel auf dem Adapter im produktiven Einsatz laufen.@ticaki Hi Ticaki,
funktioniert denn die virtuelle Version über den Nextion Editor auch mit eurem Adapter? Würde ein normaler ESP32 Chip auch erkannt werden?
Wäre ja zu Testzwecken auch interessant, da ich auch so mit dem Editor arbeite, um nicht ständig hinlaufen zu müssen.
-
@ticaki Hi Ticaki,
funktioniert denn die virtuelle Version über den Nextion Editor auch mit eurem Adapter? Würde ein normaler ESP32 Chip auch erkannt werden?
Wäre ja zu Testzwecken auch interessant, da ich auch so mit dem Editor arbeite, um nicht ständig hinlaufen zu müssen.
@patricknitsch
Soweit ich weiß benutzt @Armilar das auf dem Emulator. Was nicht geht - man kann kein berry vom Adapter installieren lassen, soweit ich weiß ist das eine andere Version als die beim normalen NSpanel - Sind aber kaum richtige Bezeichnungen im Admin, nur Tokens für die Übersetzungen. Interner MQTT-Server ist gut getestet - aktuell nutzt das kaum wer mit einem Extern... Obwohl @TT-Tom hast du nicht einen externen am laufen?Kurze Einrichtungsanleitung für ein normales NSPanel
Das hier sollte selbsterklärend sein - brokenCommen... bezieht sich auf info channels - da sind datenpunkte drunter die als common.type='state' haben - das ist natürlich vollkommen falsch - werden mit der option im ganzen alias.0 Datenzweig gefixt. Anschließend wird die option deaktiviert und der Adapter neugestartet.

Dann das hinzufügen der Panels:

-tasmotaIp: Die Ip des Gerätes das hinzugefügt/bearbeitet werden soll.
-tasmotaName: Name des Gerätes der an vielen Stellen zu finden ist.
-tasmotaTopic: Freiwählbarer kompletter Topic muss mit einem buchstaben anfangen - wenn da also 'a' steht, reicht das ist nur beim auseinanderhalten vielleicht nicht sinnvoll
Ist das ausgefüllt werden die Schaltflächen unten aktiv - TasmotaSendTo stellt das NSPanel auf die Werte im Adapter und für den Adapter ein - keine Nutzer eingabe auf dem NSPanel nötig, außer man will was spezielles
Diese Sachen werden geändert:
` MqttHost ${obj.message.mqttServer ? obj.message.internalServerIp : obj.message.mqttIp};` + ` MqttPort ${obj.message.mqttPort}; MqttUser ${obj.message.mqttUsername}; MqttPassword ${obj.message.mqttPassword};` + ` FullTopic ${`${obj.message.tasmotaTopic}/%prefix%/`.replaceAll('//', '/')};` + ` MqttRetry 10; FriendlyName1 ${obj.message.tasmotaName}; Hostname ${obj.message.tasmotaName.replaceAll(/[^a-zA-Z0-9_-]/g, '_')};` + ` WebLog 2; template {"NAME":"${obj.message.tasmotaName}", "GPIO":[0,0,0,0,3872,0,0,0,0,0,32,0,0,0,0,225,0,480,224,1,0,0,0,33,0,0,0,0,0,0,0,0,0,0,4736,0],"FLAG":0,"BASE":1};` + ` Module 0; MqttClient ${obj.message.tasmotaName.replaceAll(/[^a-zA-Z0-9_-]/g, '_')}%06X;` + ` Restart 1`;Dann bitte 20 Sekunden warten - da muß ich noch ne "taasmota ist fertig" routine einbauen. Die das ganze blockiert bis er wieder da ist.
Falls offene Änderungen aus einem der anderen Tabs nicht gespeichert sind, jetzt speichern
Anschließend auf TasmotaAdd... klicken, das prüft ob der Tasmota über mqtt erreichbar ist und fügt ihn dann der oberen Tabelle hinzu - falls das geschieht, wird der browser neugeladen und der Tasmota ist eingetragen - alle nicht gespeicherten Änderungen gehen dabei aktuell verloren - deshalb speichern bevor du auf den Schalter drückst.
Damit installierst du das aktuelle Berryscript (nicht für Emulator)

Hiermit wird die aktuell von uns freigegebene TFT Version auf dem Tasmota installiert

Bei beiden letzteren gibt es keine "ist fertig" anzeige.
Noch fragen? Raus damit

EDIT: Ich erkläre das so ausführlich, weils jemand anderes benutzen soll, so das wir wissen das es funktioniert.
-
Zum Script - da bitte die Vorlage vergleich um die Unterschiede auszumachen, das ist noch lange nicht in der nähe von fertig.
Merkpunkte für das Skript:
Meine Panels die auf dem Adapter laufen, sind jetzt nach ca. 10 Minuten mit geringen umbauten (keine davon direkt an den Daten) betriebsbereit.
Eine Page muß
mainheißen!
Jede Page - muss einenuniqueNamehaben - jede Page muß entweder inpagesoder insubPagesenthalten sein.
Jedesparentmuß ein String sein - ich hab da einfach um die Variablen' 'gemacht und dieuniqueNamesind ebenfalls die Variablen namen der Seite.
Jedes ScreensaverItem muß eintype: 'script',Property haben.
Für den Screensaver gibts jetzt noch die beiden Arrays:favoritScreensaverEntity: [ { type: 'template', template: 'text.accuweather.favorit', dpInit: `/^accuweather\\.0.+/`, modeScr: 'favorit', // dat hier müsste gehen, habs aber im Forum geschrieben keine garantie - hm kann sein das es nur mit type: 'native', naitve: { template: 'text.accu... usw... geht // data: { // entity2: { // value: { type: 'triggered', dp: 'meine.eigenen.temperaturen'} // } // } ], alternateScreensaverEntity: [ // only used with alternate Screensaver ],button1undbutton2gibt es nicht mehr die heißen jetztbuttonLeftundbuttonRightDie Typendefinition sieht so aus:
export type ConfigButtonFunction = | { /** * Mode for navigating to a page. * */ mode: 'page'; /** * The page to navigate to. * * @optional */ page?: string; } | { /** * Mode for toggling a datapoint. * */ mode: 'switch'; /** * The state of the datapoint to toggle. * */ state: string; } | { /** * Mode for triggering a button datapoint. * */ mode: 'button'; /** * The state of the button datapoint to trigger. * */ state: string; } | null;Beispiel:
buttonLeft: { mode: 'switch', state: 'irgendeineidzueinemschalter' }Edit: bei einigen Datenpunkten bekommt man eine Hilfe wenn man mit der Maus darüber hovert. Werden immer mehr werden.