NEWS
SONOFF NSPanel mit Lovelace UI
-
@GregorS
Oh ein Urgestein 😉
Hast du Tasmota mal neu gestartet?
Sind deine Tasten von den Relais entkoppelt? -
@TT-Tom sagte in SONOFF NSPanel mit Lovelace UI:
Oh ein Urgestein 😉
Läuft bis auf den Taster 1 ohne Probleme 👍
Kann man sich die Einstellungen in der Konsole sehen / anzeigen? -
Rule1: SmartHome/NSPanel_1/stat/RESULT = {"Rule1":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""}}
Rule2: SmartHome/NSPanel_1/stat/RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""}}
Rule3: SmartHome/NSPanel_1/stat/RESULT = {"Rule3":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":39,"Free":472,"Rules":"on CustomSend do Buzzer 1 endon rule3 1"}} -
Hi,
ich hab mal eine Frage/FeatureRequest.
Und zwar haben ich immer öfter den Fall, das ich am Panel eine Uhrzeit konfigurieren möchte.
Zb möchte ich meine neue Wallbox damit verwalten, und dort dann über das Pannel Ladezeiten konfigurieren können (bzw meine Frau die keinen direkten Zugang zu der App hat).
Aktuell ist es so gelöst das ich für eine Uhrzeit 2 Slider benötige (Stunden und Minuten).
Gibt es Ideen oder Ansätze ein für einen Time Alias/Datenpunkt, und eine entsprechende Implementierung in der lovelace firmware. Sodas man dann ähnlich wie bei Temperatur in der ThermoCard(1) eine digitale Uhrzeit mit rauf runter Pfeilen abbilden kann
Gerne fülle ich das noch mal in ein Feature Request auf github ab. Ich wollte nur erstmal fragen ob es da was gibt was ich eventuell übersehen hab. Oder da was in der mache ist.
Danke für eure Mühen und Support!!Beispiel für Timer unter:
https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Page-‐-Typen_How-2_Beispiele#page-beispiele und
https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#timer---popuptimer---leveltimer
Das popupTimer kann 3 Funktionen
Uhrzeit:

Countdown:

AlarmTime (Wecker)

Der Unterschied in den 3 Varianten liegt im Alias-Channel
- value.time
- level.timer
- value.alarmtime
Anhand des Channels schaltet er die relevanten Actions als Schaltfläche hinzu.
let popupTimer_Test: PageType = { 'type': 'cardGrid', 'heading': 'Timer, 'useColor': true, 'items': [ { id: 'alias.0.NSPanel_1.Countdown', icon: 'timer-outline', name: 'Timer', onColor: White }, { id: 'alias.0.NSPanel_1.Uhrzeit', icon: 'clock-plus-outline', name: 'Kaffemaschine', onColor: White }, { id: 'alias.0.NSPanel.AlarmTime', icon: 'alarm', name: 'Wecker', onColor: Red, offColor: Green, useColor: true }, ] };Alle benötigen die gleichen Alias-Datenpunkte
- ACTUAL
- STATE
Die Zeit wird in
Sekundenab 0:00 angegeben und muss, sofern ein anderes Format benötigt wird, extern umgewandelt werden! -
Rule1: SmartHome/NSPanel_1/stat/RESULT = {"Rule1":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""}}
Rule2: SmartHome/NSPanel_1/stat/RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""}}
Rule3: SmartHome/NSPanel_1/stat/RESULT = {"Rule3":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":39,"Free":472,"Rules":"on CustomSend do Buzzer 1 endon rule3 1"}} -
Eine allgemeine Frage:
Gibt es im Wiki (oder sonst wo) eine Page mit den vorhandenen Icons und deren Namen? -
Im Wiki => Menu => letzter Punkt unter Definition
@TT-Tom sagte in SONOFF NSPanel mit Lovelace UI:
Im Wiki => Menu => letzter Punkt unter Definition
Vielen, vielen Dank
-
Hallo zusammen,
ich habe heute an meinem NSPanel ein Tasmota Update vorgeschlagen bekommen und habe das Update auf Version 15.3.0 durchgeführt. Des weiteren habe ich ich im iobroker die Instanz javascript auf Version 9.0.18 aktualisiert. Zunächst ist das Panel hochgefahren, bis ich irgendwann festgestellt habe damit das Panel hängt. Nach einem Neustart des Panels und allem anderem JavaScript, MQTT habe ich nun folgendes Problem:
Am NSPanel läuft ein Kreis und es kommt die Meldung: Waiting for content...
Scripte laufen
MQTT läuft ebenfallsTasmota/NSPanel:
Tasmota Version 15.3.0 (release-tasmota32)
Erstellt 2026.02.19 14:07:33
Core-/SDK-Version 3.3.7/5.3.4.260127kann mir hierzu jemand weiterhelfen ?
-
Hallo zusammen,
ich habe heute an meinem NSPanel ein Tasmota Update vorgeschlagen bekommen und habe das Update auf Version 15.3.0 durchgeführt. Des weiteren habe ich ich im iobroker die Instanz javascript auf Version 9.0.18 aktualisiert. Zunächst ist das Panel hochgefahren, bis ich irgendwann festgestellt habe damit das Panel hängt. Nach einem Neustart des Panels und allem anderem JavaScript, MQTT habe ich nun folgendes Problem:
Am NSPanel läuft ein Kreis und es kommt die Meldung: Waiting for content...
Scripte laufen
MQTT läuft ebenfallsTasmota/NSPanel:
Tasmota Version 15.3.0 (release-tasmota32)
Erstellt 2026.02.19 14:07:33
Core-/SDK-Version 3.3.7/5.3.4.260127kann mir hierzu jemand weiterhelfen ?
@JackONell sagte in SONOFF NSPanel mit Lovelace UI:
Am NSPanel läuft ein Kreis und es kommt die Meldung: Waiting for content...
Welche TFT Version ist denn das? Wenn da ein Kreis laeuft.... ist die Uralt..
-
Scriptversion muss immer mit dem darin angegebenen TFT Version übereinstimmen, also wenn du immer deine Scripte geupdatet hast, dann biste jetzt bei 5.1.x irgendwas..
Automatisch macht er das nicht, musste per Hand machen.
Beim Scriptstart werden die Werte ausgegeben, da ich den Adapter nutze, kann ich dazu nicht mehr sagen, ist schon lange her bei mir, mit dem Script... -
ein paar infos liefen
script version => steht in der ersten Zeile
TFT Version => steht hier alias.0.NSPanel.xxxx.Display_Firmware.TFT.currentVersion.ACTUALLäuft tasmota richtig in die Konsole schaut und mal das Log posten
-
Script Version:
TypeScript v4.3.1.7 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @Sternmiere / @Britzelpuf / @ravenS0ne - abgestimmt auf TFT 53 / v4.3.1 / BerryDriver 9 / Tasmota 13.1.0Zur TFT Version habe ich leider nur folgendes im Script gefunden (ist das richtig ?):
//Desired Firmware const tft_version: string = 'v4.3.1'; const desired_display_firmware_version = 53; const berry_driver_version = 9; const tasmotaOtaUrl: string = 'http://ota.tasmota.com/tasmota32/release/';Die Tasmota Konsole gibt folgendes aus:
20:22:30.841 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:22:36.741 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:22:42.741 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:22:48.741 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:22:54.641 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:00.641 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:06.541 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:12.541 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:17.933 MQT: SmartHome/tele/NSPanel_85E568/STATE = {"Time":"2026-02-21T20:23:17","Uptime":"0T01:45:08","UptimeSec":6308,"Heap":137,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":999,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":217},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"Home24","BSSId":"08:B6:57:C2:D4:F9","Channel":5,"Mode":"HT20","RSSI":84,"Signal":-58,"LinkCount":1,"Downtime":"0T00:00:03"},"Hostname":"NSPanel-85E568-1384","IPAddress":"192.168.2.17"} 20:23:17.945 MQT: SmartHome/tele/NSPanel_85E568/SENSOR = {"Time":"2026-02-21T20:23:17","ANALOG":{"Temperature1":25.6},"TempUnit":"C"} 20:23:18.440 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:24.442 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:30.342 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:36.342 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:42.241 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:48.241 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:54.147 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:00.147 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:06.041 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:12.041 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:17.941 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:23.940 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:29.944 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:35.841 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:41.840 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:47.741 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:53.742 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:59.642 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:05.640 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:11.533 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:17.533 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:23.433 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:29.436 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} -
Script Version:
TypeScript v4.3.1.7 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @Sternmiere / @Britzelpuf / @ravenS0ne - abgestimmt auf TFT 53 / v4.3.1 / BerryDriver 9 / Tasmota 13.1.0Zur TFT Version habe ich leider nur folgendes im Script gefunden (ist das richtig ?):
//Desired Firmware const tft_version: string = 'v4.3.1'; const desired_display_firmware_version = 53; const berry_driver_version = 9; const tasmotaOtaUrl: string = 'http://ota.tasmota.com/tasmota32/release/';Die Tasmota Konsole gibt folgendes aus:
20:22:30.841 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:22:36.741 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:22:42.741 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:22:48.741 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:22:54.641 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:00.641 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:06.541 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:12.541 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:17.933 MQT: SmartHome/tele/NSPanel_85E568/STATE = {"Time":"2026-02-21T20:23:17","Uptime":"0T01:45:08","UptimeSec":6308,"Heap":137,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":999,"MqttCount":1,"Berry":{"HeapUsed":16,"Objects":217},"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"Home24","BSSId":"08:B6:57:C2:D4:F9","Channel":5,"Mode":"HT20","RSSI":84,"Signal":-58,"LinkCount":1,"Downtime":"0T00:00:03"},"Hostname":"NSPanel-85E568-1384","IPAddress":"192.168.2.17"} 20:23:17.945 MQT: SmartHome/tele/NSPanel_85E568/SENSOR = {"Time":"2026-02-21T20:23:17","ANALOG":{"Temperature1":25.6},"TempUnit":"C"} 20:23:18.440 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:24.442 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:30.342 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:36.342 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:42.241 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:48.241 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:23:54.147 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:00.147 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:06.041 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:12.041 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:17.941 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:23.940 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:29.944 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:35.841 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:41.840 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:47.741 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:53.742 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:24:59.642 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:05.640 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:11.533 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:17.533 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:23.433 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"} 20:25:29.436 MQT: SmartHome/tele/NSPanel_85E568/RESULT = {"CustomRecv":"event,startup,53,eu"}@JackONell
im Script was sehr sehr alt ist muss eine eine Variable geben die Debug heißt
irgendwie sowasvar Debug: boolean = false;ist ziemlich am Anfang vom Script, dort machst du aus false -> true und startest das script neu
dann kommt unten im Logfenster eine menge Meldungen, die Kopieren und posten -
@tt-tom Vielen Dank für deine Mühe !
Im Skript habe ich nur folgendes gefunden, hab jetzt nichts "aktiviert" da es mir im im Log trotzdem was ausgibt:let Icons = new IconsSelector(); let timeoutSlider: any; let vwIconColor = []; let weatherForecast: boolean; let Debug: boolean;auch wenn ich folgendes "aktiviere" wird nicht mehr ausgegeben
let Debug: boolean = true;Das Log gibt folgendes aus:
javascript.0 22:50:12.919 info Stopping script javascript.0 22:50:13.214 info Compiling TypeScript source javascript.0 22:50:25.453 error TypeScript compilation failed: await setStateAsync(NSPanel_Path + 'PageNavi', <iobJS.State>{ val: { "pagetype": "page", "pageId": 0 }, ack: true }); ^ ERROR: Conversion of type '{ val: { pagetype: string; pageId: number; }; ack: true; }' to type 'State' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type '{ val: { pagetype: string; pageId: number; }; ack: true; }' is missing the following properties from type 'State': ts, lc, from let name = page.heading !== undefined ? page.heading : o.common.name.de; ^ ERROR: Property 'de' does not exist on type 'StringOrTranslated'. Property 'de' does not exist on type 'string'. let heading = page.heading !== undefined ? page.heading : o.common.name.de; ^ ERROR: Property 'de' does not exist on type 'StringOrTranslated'. Property 'de' does not exist on type 'string'. heading = page.heading !== undefined ? page.heading : o.common.name.de; ^ ERROR: Property 'de' does not exist on type 'StringOrTranslated'. Property 'de' does not exist on type 'string'. unsubscribe(value); ^ ERROR: Argument of type 'unknown' is not assignable to parameter of type 'string | RegExp | string[]'. -
@tt-tom Vielen Dank für deine Mühe !
Im Skript habe ich nur folgendes gefunden, hab jetzt nichts "aktiviert" da es mir im im Log trotzdem was ausgibt:let Icons = new IconsSelector(); let timeoutSlider: any; let vwIconColor = []; let weatherForecast: boolean; let Debug: boolean;auch wenn ich folgendes "aktiviere" wird nicht mehr ausgegeben
let Debug: boolean = true;Das Log gibt folgendes aus:
javascript.0 22:50:12.919 info Stopping script javascript.0 22:50:13.214 info Compiling TypeScript source javascript.0 22:50:25.453 error TypeScript compilation failed: await setStateAsync(NSPanel_Path + 'PageNavi', <iobJS.State>{ val: { "pagetype": "page", "pageId": 0 }, ack: true }); ^ ERROR: Conversion of type '{ val: { pagetype: string; pageId: number; }; ack: true; }' to type 'State' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type '{ val: { pagetype: string; pageId: number; }; ack: true; }' is missing the following properties from type 'State': ts, lc, from let name = page.heading !== undefined ? page.heading : o.common.name.de; ^ ERROR: Property 'de' does not exist on type 'StringOrTranslated'. Property 'de' does not exist on type 'string'. let heading = page.heading !== undefined ? page.heading : o.common.name.de; ^ ERROR: Property 'de' does not exist on type 'StringOrTranslated'. Property 'de' does not exist on type 'string'. heading = page.heading !== undefined ? page.heading : o.common.name.de; ^ ERROR: Property 'de' does not exist on type 'StringOrTranslated'. Property 'de' does not exist on type 'string'. unsubscribe(value); ^ ERROR: Argument of type 'unknown' is not assignable to parameter of type 'string | RegExp | string[]'.okay, das ist das Problem mit dem alten Script. Der JavaScript Adapter hat sich weiterentwickelt und ist jetzt genauer bei der Programmierung. Du musst auf die aktuelle Scriptversion wechseln. da deine Version über ein Jahr alt ist. Wirst du einiges an deiner Seiten config anpassen müssen.
im wiki gibt es dazu einige Informationen zum Upgrade.
https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#hilfe-bei-update--upgradeStarte das leere Script erstmal und aktualisiere dann den Berry Treiber und danach die TFT-Firmware
Dann kannst du anfangen die Seiten zu importieren. Stück für Stück.
Wenn Probleme auf kommen melde dich
-
Vielen Dank für deine Hilfe. Hab mal das neue Script eingebunden. Hab jetzt zumindest mal wieder eine funktionierende Oberfläche. Der Rest muss ich mir mal die nächsten Tage/Wochen anschauen :D
Manchmal ist es echt besser kein Update zu machen, das spart gewisse Arbeit :D
Falls ich nochmal Hilfe benötige, werde ich mich nochmal melden.
Danke nochmals