NEWS
SONOFF NSPanel mit Lovelace UI
SONOFF NSPanel mit Lovelace UI
-
Funktioniert
Vielen Vielen Dank für das schnelle Anpassen 
Wegen meiner dritten Frage mit einem weitere Symbol auf dem Screensaver bzgl. der Temperatur vom eingebauten Sender, hast du mir nicht zufällig ein Lösungsansatz ?
Gruss Claudio
nee, kann leider keine Icons machen wo in der HMI keine sind. Da müsstest du einen Feature Request (Issue) bei @joBr99 machen.
Alternativ einen der unteren Icons opfern und die Sensor-Temperatur vom NSPanel einsetzen.
z.B. der
firstScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Hourly.h0.PrecipitationProbability', ScreensaverEntityIcon: 'weather-pouring', ScreensaverEntityText: 'Regen', ScreensaverEntityUnitText: '%', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100} },statt accuweather den Datenpunkt: 0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperature
-
nee, kann leider keine Icons machen wo in der HMI keine sind. Da müsstest du einen Feature Request (Issue) bei @joBr99 machen.
Alternativ einen der unteren Icons opfern und die Sensor-Temperatur vom NSPanel einsetzen.
z.B. der
firstScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Hourly.h0.PrecipitationProbability', ScreensaverEntityIcon: 'weather-pouring', ScreensaverEntityText: 'Regen', ScreensaverEntityUnitText: '%', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100} },statt accuweather den Datenpunkt: 0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperature
@armilar said in SONOFF NSPanel mit Lovelace UI:
Alternativ einen der unteren Icons opfern und die Sensor-Temperatur vom NSPanel einsetzen.
Entweder das oder eines der Icons links oder rechts von dem Strich in der Mitte mit der Temperatur ersetzen (wenn das unter ioBroker geht)
-
22:19:00.013 warn javascript.0 (16857) at SendToPanel (script.js.common.NSPanelTS_ts:2432:13) 22:19:00.013 warn javascript.0 (16857) at SendTime (script.js.common.NSPanelTS_ts:2600:9) 22:19:00.013 warn javascript.0 (16857) at Object.<anonymous> (script.js.common.NSPanelTS_ts:1515:9) 22:19:00.015 info javascript.0 (16857) script.js.common.NSPanelTS_ts: setForeignState(id=mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend, state={"val":"time~22:19","ack":false,"ts":1672348740014,"q":0,"from":"system.adapter.javascript.0","lc":1672348740014,"c":"script.js.common.NSPanelTS_ts"}) 22:19:00.015 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=alias.0.Recklinghausen.ICON, timerId=undefined) => {"val":38,"ack":true,"ts":1672347901286,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672340698212} 22:19:00.015 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=alias.0.Recklinghausen.TEMP, timerId=undefined) => {"val":7.3,"ack":true,"ts":1672347901287,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672347901287} 22:19:00.015 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Daily.Day1.Day.PrecipitationProbability, timerId=undefined) => {"val":81,"ack":true,"ts":1672340700584,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672303497603} 22:19:00.016 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Current.WindSpeed, timerId=undefined) => {"val":26.5,"ack":true,"ts":1672347901288,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672347901288} 22:19:00.016 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Current.UVIndex, timerId=undefined) => {"val":0,"ack":true,"ts":1672347901289,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672322700304} 22:19:00.016 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Current.RelativeHumidity, timerId=undefined) => {"val":71,"ack":true,"ts":1672347901288,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672347901288} 22:19:00.016 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Daily.Day1.Day.PrecipitationProbability, timerId=undefined) => {"val":81,"ack":true,"ts":1672340700584,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672303497603} 22:19:00.016 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Daily.Day1.Day.PrecipitationProbability, timerId=undefined) => {"val":81,"ack":true,"ts":1672340700584,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672303497603} 22:19:00.016 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Current.WindSpeed, timerId=undefined) => {"val":26.5,"ack":true,"ts":1672347901288,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672347901288} 22:19:00.016 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Current.WindSpeed, timerId=undefined) => {"val":26.5,"ack":true,"ts":1672347901288,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672347901288} 22:19:00.016 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Current.UVIndex, timerId=undefined) => {"val":0,"ack":true,"ts":1672347901289,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672322700304} 22:19:00.017 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Current.UVIndex, timerId=undefined) => {"val":0,"ack":true,"ts":1672347901289,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672322700304} 22:19:00.017 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Current.RelativeHumidity, timerId=undefined) => {"val":71,"ack":true,"ts":1672347901288,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672347901288} 22:19:00.017 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=accuweather.0.Current.RelativeHumidity, timerId=undefined) => {"val":71,"ack":true,"ts":1672347901288,"q":0,"from":"system.adapter.accuweather.0","user":"system.user.admin","lc":1672347901288} 22:19:00.017 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=mqtt.0.SmartHome.NSPanel_1.stat.POWER1, timerId=undefined) => {"val":"OFF","ack":true,"ts":1672310670039,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1672310669949} 22:19:00.017 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=mqtt.0.SmartHome.NSPanel_1.stat.POWER1, timerId=undefined) => {"val":"OFF","ack":true,"ts":1672310670039,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1672310669949} 22:19:00.017 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=mqtt.0.SmartHome.NSPanel_1.stat.POWER2, timerId=undefined) => {"val":"OFF","ack":true,"ts":1672333707248,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1672333707127} 22:19:00.017 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=mqtt.0.SmartHome.NSPanel_1.stat.POWER2, timerId=undefined) => {"val":"OFF","ack":true,"ts":1672333707248,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1672333707127} 22:19:00.019 warn javascript.0 (16857) at SendToPanel (script.js.common.NSPanelTS_ts:2432:13) 22:19:00.019 warn javascript.0 (16857) at HandleScreensaverColors (script.js.common.NSPanelTS_ts:6251:9) 22:19:00.019 warn javascript.0 (16857) at HandleScreensaverUpdate (script.js.common.NSPanelTS_ts:6165:13) 22:19:00.019 warn javascript.0 (16857) at Object.<anonymous> (script.js.common.NSPanelTS_ts:1516:9) 22:19:00.020 info javascript.0 (16857) script.js.common.NSPanelTS_ts: setForeignState(id=mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend, state={"val":"color~0~65535~65535~65535~19017~65535~65535~65535~65535~65535~64750~42639~26095~42639~65535~65535~65535~65535~65535~65535~65535~65535","ack":false,"ts":1672348740020,"q":0,"from":"system.adapter.javascript.0","lc":1672348740020,"c":"script.js.common.NSPanelTS_ts"}) 22:19:00.020 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=0_userdata.0.NSPanel.1.Config.MRIcons.alternateMRIconSize.1, timerId=undefined) => {"val":false,"ack":true,"ts":1671973226792,"q":0,"c":"script.js.common.NSPanelTS_ts","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1671973226792} 22:19:00.020 info javascript.0 (16857) script.js.common.NSPanelTS_ts: getState(id=0_userdata.0.NSPanel.1.Config.MRIcons.alternateMRIconSize.2, timerId=undefined) => {"val":false,"ack":true,"ts":1671973227354,"q":0,"c":"script.js.common.NSPanelTS_ts","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1671973227354} 22:19:00.022 warn javascript.0 (16857) at SendToPanel (script.js.common.NSPanelTS_ts:2432:13) 22:19:00.022 warn javascript.0 (16857) at HandleScreensaverUpdate (script.js.common.NSPanelTS_ts:6181:13) 22:19:00.022 warn javascript.0 (16857) at Object.<anonymous> (script.js.common.NSPanelTS_ts:1516:9) 22:19:00.023 info javascript.0 (16857) script.js.common.NSPanelTS_ts: setForeignState(id=mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend, state={"val":"weatherUpdate~~7.3 °C~Regen~~81 %~Wind~~26.5 km/h~UV~~0 ~Luft~~71 %~~~~17299~~17299~~~","ack":false,"ts":1672348740023,"q":0,"from":"system.adapter.javascript.0","lc":1672348740023,"c":"script.js.common.NSPanelTS_ts"}) 22:19:30.008 info javascript.0 (16857) script.js.common.NSPanelTS_ts: setForeignState(id=0_userdata.0.NSPanel.1.ScreensaverInfo.weatherForecast, state={"val":false,"ack":false,"ts":1672348770007,"q":0,"from":"system.adapter.javascript.0","lc":1672233690009,"c":"script.js.common.NSPanelTS_ts"})Wenn man die Warnungen sieht, dann fällt mir auf, dass die schon bei einer einfachen Funktion, wie z.B. dem Senden der Zeit ausgelöst werden.
Welche nodeJS Version ist installiert?
kurz in der Linux-Console
node -vausführen. Dein JS-Adapter muss ja neu sein, da die Aliase angelegt werden...
-
Wenn man die Warnungen sieht, dann fällt mir auf, dass die schon bei einer einfachen Funktion, wie z.B. dem Senden der Zeit ausgelöst werden.
Welche nodeJS Version ist installiert?
kurz in der Linux-Console
node -vausführen. Dein JS-Adapter muss ja neu sein, da die Aliase angelegt werden...
Ich würde dennoch mal die Farbdefinitionen für den Screensaver checken. Ich glaube die Vermutung dass da eine Farbdefinition fehlt, ist gar nicht so abwägig.
-
Ich würde dennoch mal die Farbdefinitionen für den Screensaver checken. Ich glaube die Vermutung dass da eine Farbdefinition fehlt, ist gar nicht so abwägig.
22:19:00.013 warn javascript.0 (16857) at SendTime (script.js.common.NSPanelTS_ts:2600:9)Aber warum sollte beim Senden der Zeit eine Warnung ausgelöst werden?
function SendTime(): void { try { const d = new Date(); const hr = (d.getHours() < 10 ? '0' : '') + d.getHours(); const min = (d.getMinutes() < 10 ? '0' : '') + d.getMinutes(); SendToPanel(<Payload>{ payload: 'time~' + hr + ':' + min }); } catch (err) { console.warn('function SendTime: ' + err.message); } }Ich denke das hat einen anderen Hintergrund
-
22:19:00.013 warn javascript.0 (16857) at SendTime (script.js.common.NSPanelTS_ts:2600:9)Aber warum sollte beim Senden der Zeit eine Warnung ausgelöst werden?
function SendTime(): void { try { const d = new Date(); const hr = (d.getHours() < 10 ? '0' : '') + d.getHours(); const min = (d.getMinutes() < 10 ? '0' : '') + d.getMinutes(); SendToPanel(<Payload>{ payload: 'time~' + hr + ':' + min }); } catch (err) { console.warn('function SendTime: ' + err.message); } }Ich denke das hat einen anderen Hintergrund
@armilar Hi Leutz
Ich schon wieder. Bin gerade an der Subpage Guest_Wifi. Ich habe einen Alias angelegt. Diesen muss ich ja im Script anpassen.
Was soll den in den Alias rein? Ich denke hier ist das Passwort hinterlegt. Ist das dann eine Info mit dem Aktuellwert? Ich habe keine Ahnung. Gibt es hierzu schon etwas zum nachlesen? Auf github ist zwar die cardqr beschrieben, verstehe ich aber nicht wirklich.Ist der QR-Code dann nur ein icon oder kann man den real abscannen?
Ist dann ja eigendlich überflüssig, da er ja rechts daneben angezeigt wird. Nehme ich jedenfalls an.LG aus dem Sauerland
Jörg -
Ich habe ein Problem mit den MQTT Einstellungen. Ich möchte die Hardwarebuttons per Rule nutzen. Die Objektstruktur sieht für mich aber nicht korrekt aus. Wo liegt mein Fehler?
Folgende Settings habe ich:Rule2 on Button1#state do Publish NSPanel/%topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish NSPanel/%topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endonRule2 121:51:59.833 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:51:59.938 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:00.045 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:06.513 RUL: BUTTON1#STATE performs "Publish NSPanel/nspanel_1/%prefix%/RESULT {"CustomRecv":"event,button1"}" 21:52:06.521 MQT: NSPanel/nspanel_1/%prefix%/RESULT = {"CustomRecv":"event,button1"} 21:52:20.767 RUL: BUTTON2#STATE performs "Publish NSPanel/nspanel_1/%prefix%/RESULT {"CustomRecv":"event,button2"}" 21:52:20.774 MQT: NSPanel/nspanel_1/%prefix%/RESULT = {"CustomRecv":"event,button2"} 21:52:29.946 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:30.055 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"}

-
Ich habe ein Problem mit den MQTT Einstellungen. Ich möchte die Hardwarebuttons per Rule nutzen. Die Objektstruktur sieht für mich aber nicht korrekt aus. Wo liegt mein Fehler?
Folgende Settings habe ich:Rule2 on Button1#state do Publish NSPanel/%topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish NSPanel/%topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endonRule2 121:51:59.833 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:51:59.938 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:00.045 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:06.513 RUL: BUTTON1#STATE performs "Publish NSPanel/nspanel_1/%prefix%/RESULT {"CustomRecv":"event,button1"}" 21:52:06.521 MQT: NSPanel/nspanel_1/%prefix%/RESULT = {"CustomRecv":"event,button1"} 21:52:20.767 RUL: BUTTON2#STATE performs "Publish NSPanel/nspanel_1/%prefix%/RESULT {"CustomRecv":"event,button2"}" 21:52:20.774 MQT: NSPanel/nspanel_1/%prefix%/RESULT = {"CustomRecv":"event,button2"} 21:52:29.946 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:30.055 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"}

-
Ich habe ein Problem mit den MQTT Einstellungen. Ich möchte die Hardwarebuttons per Rule nutzen. Die Objektstruktur sieht für mich aber nicht korrekt aus. Wo liegt mein Fehler?
Folgende Settings habe ich:Rule2 on Button1#state do Publish NSPanel/%topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish NSPanel/%topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endonRule2 121:51:59.833 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:51:59.938 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:00.045 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:06.513 RUL: BUTTON1#STATE performs "Publish NSPanel/nspanel_1/%prefix%/RESULT {"CustomRecv":"event,button1"}" 21:52:06.521 MQT: NSPanel/nspanel_1/%prefix%/RESULT = {"CustomRecv":"event,button1"} 21:52:20.767 RUL: BUTTON2#STATE performs "Publish NSPanel/nspanel_1/%prefix%/RESULT {"CustomRecv":"event,button2"}" 21:52:20.774 MQT: NSPanel/nspanel_1/%prefix%/RESULT = {"CustomRecv":"event,button2"} 21:52:29.946 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:30.055 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"}

trage in der Rule 2 mal für %prefix%
teleein...Oder gleich den kompletten Fulltopic
NSPanel/nspanel_1/tele/RESULT -
SONOFF NSPanel Touch Display Switch
mit Lovelace UI und TASMOTA Firmware

Das Thema https://forum.iobroker.net/topic/50888/sonoff-nspanel/1542 wird hier jetzt fortgesetzt...
An alle begeisterten NSPanel'er
Dieser Thread soll sich jetzt ausschließlich mit den Fragen und Themen rund um das SONOFF NSPanel mit Lovelace UI beschäftigen.
Wie alles begann:
- 22.10.2021
Blakadder's Dokumentation der Dekodierung des NSPanel-Kommunikationsprotokolls und Einrichtung der Steuerung des Nextion-Bildschirms mit benutzerdefinierter Firmware.
https://blakadder.com/nspanel-hacking/ - 01.01.2022
Erste Gehversuche mit Blockly-Scripts auf der Original-Firmware nach einer ersten coolen Anleitung für den ioBroker von @haus-automatisierung. - ...
Funkstille auf allen Kanälen, da das Panel in der Originalsoftware einfach zu wenig Funktionalität hat. Ein Vergleich mit "Jugend forscht" wäre maßlos übertrieben... - 15.01.2022
@jobr99 Erstes POC von Lovelace Konzept mit ESPhome Komponente, da Nextion Upload Protcol unter tasmota nicht umsetzbar ist (berry tcpclient crashed ESP, HTTP Libary ist auf viel zu kleine Dateien limitiert) - 17.01.2022
peepshow-21 Erste implementierung von Nextion Upload Protocol 1.1 mit Workaround für HTTP Libary über Java Converter um tft files für tasmota vorzubereiten - 20.01.2022
s-hadinger fixt bug in berry tcpclient - 31.01.2022
Erste Version für HomeAssistant mit Nodered und Tasmota - 08.02.2022
@joBr99 Erste Implementierung von Nextion Upload Protokoll 1.2 in Berry basiertend auf HTTP Range Header Requests und lokalem Buffer (funktioniert nur mit -nspanel tasmota build uns PSRAM Support) - 12.02.2022
peepshow-21 Implementierung von Nextion Upload Protocol 1.2 mit vollständigem Download und "streaming" zum Nextion Screen während dem Download - 05.03.2022
@joBr99 Portierung von Node-Red Flow zu AppDaemon, da AppDaemon sich besser eignet zur Implementierung vom Backend - 13.03.2022
@joBr99 Erste Version von Lovelace Berry Driver basierend auf Upload Protocol Implementierung von peepshow-21, da diese etwas stabiler läuft mit zusätzlichem Error Handling - 30.03.2022
@joBr99 kommt mit der Info um die Ecke, dass es ein erstes Script v1.9.0 für den ioBroker von @Britzelpuf gibt. Zu diesem Zeitpunkt gab es bereits den Screensaver die Seitennavigation und die Möglichkeit eine Lampe, einen Dimmer eine Taste und eine Info, sowie die popUps für Licht (Brightness) und Shutter (Position) und einen Thermostaten zur Steuerung einzubinden. - 10.04.2022
@joBr99 Firmware got bigger and bigger with >15 Minutes Flashing Time for the tft file
Increased Flashing Speed of Berry Driver from 115200 to 921600 and added skipping to the End with HTTP Range Headers, resulted in faster display flashing - 11.04.2022
@Armilar macht seine ersten Änderungen auf github und hört seit dem nicht mehr auf, weitere Funktionen in das TSScript hinzuzufügen...
@joBr99 entwickelt die HMI und neue Funktionen für Home Assistant schneller als der Wind - und macht das Panel zur echten Bereicherung für jedes Smart Home

heute
- Eine der besten Community's die ich jemals erlebt habe. Hilfsbereit und kompetent wird jeder mit Hilfestellungen und Problemlösungen in kürzester Zeit versorgt.
Es macht großen Spaß zusammen mit euch...
VG
Armilar
Beispiele:










Features:
- cardEntities für die Unterstützung diverser Steuerelemente (siehe Beispiele)
- cardGrid (3x2-Raster) für die Unterstützung diverser Steuerelemente (siehe Beispiele)
- cardGrid2 (4x2) für die Unterstützung diverser Steuerelemente (siehe Beispiele)
- cardGrid3 (2x2) für die Unterstützung diverser Steuerelemente (siehe Beispiele)
- cardPower zur Visualisierung der Energieverteilung
- cardAlarm als Seite für Alarmanlagen
- cardMedia - der Media-Player (Diverse Adapter)
- cardThermo - Seite für Thermostat oder Klimaanlage
- cardQR - Seite mit QRCode zur Anzeige von WLAN-Informationen
- cardChart - Balkendiagramme
- Detailseiten für Leuchtmittel (Helligkeit, Temperatur und Farbe)
- Detailseite für Jalousien/Rollos (Position und Tilt)
- Detailseite für Ventilatoren
- Detailseite für Timer
- Auswahl Detailseite für Werteliste
- Bildschirmschonerseite mit Uhrzeit, Datum und Wetterinformationen oder/und Infos
- Multilingual (unterstützt über 40 Sprachen)
- Unbegrenzte Anzahl an Seiten und Unterseiten
- Abfallkalender
- Favoritenseiten
- etc.
NsPanel Lovelace UI ist eine Firmware für den Nextion-Bildschirm innerhalb des NSPanel.
Die allgemeine Idee ist, dass das Nextion-Display einen Seitenzähler durchläuft und der ESP32 dem Display sagt, was zu tun ist. Alles ist dynamisch durch Alias-Erstellung konfigurierbar, es ist nicht erforderlich, Nextion Editor zu programmieren. Neben der Seiten-Definition sind im ioBroker keine Programmierkenntnisse erforderlich. Es ist im ioBroker ebenfalls kein Lovelace-Adapter erforderlich.
Das Panel arbeitet mit Tasmota und MQTT. Um das Panel zu steuern und mit Inhalten von ioBroker zu aktualisieren, gibt es ein vordefiniertes TypeScript (TS) für den JavaScript-Adapter.
Aktuelle Wiki (Anleitung) für den ioBroker
https://github.com/joBr99/nspanel-lovelace-ui/wiki by @Kuckuckmann
NsPanelTs.ts (TypeScript) für ioBroker v4.9.3.X
zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar und @TT-Tom
https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
abgestimmt auf:- TFT 58 / v4.9.3 ( by @joBr99 / Armilar > 4.4.0)
- BerryDriver 9 ( by peepshow-21 (based on code by blakadder and s-hadinger))
- Tasmota 15.1.0 ( by Theo Arends ) --> Theo-Arends-Sonoff-MQTT-OTA
Projekt:
by @joBr99
- main (Home Assistant - Version und Nextion HMI): https://github.com/joBr99/nspanel-lovelace-ui by @joBr99
- ioBroker: https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker by @Armilar (HA - Adaption)
Icon-Mapper:
- icon_mapping.ts:
https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/icon_mapping.ts
(TypeScript muss in global liegen)
Icons:
unter: https://docs.nspanel.pky.eu/icon-cheatsheet.html
Video-Tutorial:
https://www.youtube.com/watch?v=ZPLJk2ZLo_8 by @haus-automatisierung
@armilar guten Morgen, krass wie hier dieses Forum lebt. Klasse !!! Ich konnte mich einige Zeit nicht um das NS Panel kümmern. Möchte jetzt einmal meine freien Tage nutzen um mein NS Panel auf Stand zu bringen. Mein Panel zeigt mir mittlerweile an, dass es neue TFT Firmware gibt. Aktuell ist Tasmota 12.2.0 drauf. Auch alles andere wie die TFT Firmware etc ist also etwas älter. Ich bin aktuell auf der Suche nach einer Anleitung, um mein NS Panel wieder auf Stand zu bringen. Konnte so nix auf die Schnelle finden. Habt Ihr eventuell einen Link für mich ?
Gruß André
- 22.10.2021
-
@armilar guten Morgen, krass wie hier dieses Forum lebt. Klasse !!! Ich konnte mich einige Zeit nicht um das NS Panel kümmern. Möchte jetzt einmal meine freien Tage nutzen um mein NS Panel auf Stand zu bringen. Mein Panel zeigt mir mittlerweile an, dass es neue TFT Firmware gibt. Aktuell ist Tasmota 12.2.0 drauf. Auch alles andere wie die TFT Firmware etc ist also etwas älter. Ich bin aktuell auf der Suche nach einer Anleitung, um mein NS Panel wieder auf Stand zu bringen. Konnte so nix auf die Schnelle finden. Habt Ihr eventuell einen Link für mich ?
Gruß André
Welche Script-Version ist aktuell drauf?
-
@tt-tom Hi
Hab mal versucht nach der Beschreibung vorzugehen.
Also einen Datenpunkt angelegt und einen Alias erstellt. Zuordnung Aktuell auf den DP gelegt. Anschließend den Datenpunkt beschrieben. Da scheint aber der Fehler zu liegen. Laut Beschreibung müssen die Buchstaben zugewiesen werden. Also sieht mein Strig wie folgt aus:
WIFI:T:WPA;S:meine_SSID;P:mein_Kennwort;H:;
Trotzdem bekomme ich Warnmeldungen.javascript.0 2022-12-31 14:49:00.878 warn script.js.NSPanel.NSPanel_Kueche: function SendToPanel: Cannot read properties of undefined (reading 'payload') javascript.0 2022-12-31 14:49:00.878 warn script.js.NSPanel.NSPanel_Kueche: function GenerateQRPage: Cannot read properties of null (reading 'split') javascript.0 2022-12-31 14:49:00.878 warn at processImmediate (node:internal/timers:466:21) javascript.0 2022-12-31 14:49:00.878 warn at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56) javascript.0 2022-12-31 14:49:00.878 warn at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29) javascript.0 2022-12-31 14:49:00.878 warn at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38) javascript.0 2022-12-31 14:49:00.878 warn at Object.<anonymous> (script.js.NSPanel.NSPanel_Kueche:2236:17) javascript.0 2022-12-31 14:49:00.878 warn at HandleMessage (script.js.NSPanel.NSPanel_Kueche:2313:21) javascript.0 2022-12-31 14:49:00.877 warn at HandleButtonEvent (script.js.NSPanel.NSPanel_Kueche:3949:29) javascript.0 2022-12-31 14:49:00.877 warn at GeneratePage (script.js.NSPanel.NSPanel_Kueche:2371:29) javascript.0 2022-12-31 14:49:00.877 warn at GenerateQRPage (script.js.NSPanel.NSPanel_Kueche:3696:67) javascript.0 2022-12-31 14:49:00.876 warn getState "alias.0.Guest_Wifi.Password.ACTUAL.ACTUAL" not found (3)Oder verstehe ich das falsch und muss anstelle der Buchstaben die Werte ersetzen?
Anschließend kann ich mein Panel nicht mehr bedienen.
LG aus dem Sauerland
-
@tt-tom Hi
Hab mal versucht nach der Beschreibung vorzugehen.
Also einen Datenpunkt angelegt und einen Alias erstellt. Zuordnung Aktuell auf den DP gelegt. Anschließend den Datenpunkt beschrieben. Da scheint aber der Fehler zu liegen. Laut Beschreibung müssen die Buchstaben zugewiesen werden. Also sieht mein Strig wie folgt aus:
WIFI:T:WPA;S:meine_SSID;P:mein_Kennwort;H:;
Trotzdem bekomme ich Warnmeldungen.javascript.0 2022-12-31 14:49:00.878 warn script.js.NSPanel.NSPanel_Kueche: function SendToPanel: Cannot read properties of undefined (reading 'payload') javascript.0 2022-12-31 14:49:00.878 warn script.js.NSPanel.NSPanel_Kueche: function GenerateQRPage: Cannot read properties of null (reading 'split') javascript.0 2022-12-31 14:49:00.878 warn at processImmediate (node:internal/timers:466:21) javascript.0 2022-12-31 14:49:00.878 warn at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5916:56) javascript.0 2022-12-31 14:49:00.878 warn at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29) javascript.0 2022-12-31 14:49:00.878 warn at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38) javascript.0 2022-12-31 14:49:00.878 warn at Object.<anonymous> (script.js.NSPanel.NSPanel_Kueche:2236:17) javascript.0 2022-12-31 14:49:00.878 warn at HandleMessage (script.js.NSPanel.NSPanel_Kueche:2313:21) javascript.0 2022-12-31 14:49:00.877 warn at HandleButtonEvent (script.js.NSPanel.NSPanel_Kueche:3949:29) javascript.0 2022-12-31 14:49:00.877 warn at GeneratePage (script.js.NSPanel.NSPanel_Kueche:2371:29) javascript.0 2022-12-31 14:49:00.877 warn at GenerateQRPage (script.js.NSPanel.NSPanel_Kueche:3696:67) javascript.0 2022-12-31 14:49:00.876 warn getState "alias.0.Guest_Wifi.Password.ACTUAL.ACTUAL" not found (3)Oder verstehe ich das falsch und muss anstelle der Buchstaben die Werte ersetzen?
Anschließend kann ich mein Panel nicht mehr bedienen.
LG aus dem Sauerland
Ich vermute, dass du in dem pageItem .ACTUAL mit drin hast.
Nimm das mal raus. Es werden virtuelle Devices und Channel abgefragt. Keine Datenpunkte...
Also nur:
alias.0.Guest_Wifi.Passwordverwenden. Das .ACTUAL ermittelt das Script. Gilt übrigens für alle id's
EDIT: Ansonsten kurz die Seite mit dem pageItem posten...
-
Ich vermute, dass du in dem pageItem .ACTUAL mit drin hast.
Nimm das mal raus. Es werden virtuelle Devices und Channel abgefragt. Keine Datenpunkte...
Also nur:
alias.0.Guest_Wifi.Passwordverwenden. Das .ACTUAL ermittelt das Script. Gilt übrigens für alle id's
EDIT: Ansonsten kurz die Seite mit dem pageItem posten...
@armilar Hi
Genau das war das Problem. Funktioniert tadellos. Vielen Dank dafür.
Jetzt wird ja das Passwort versteckt. Was muss ich mit "H" machen, damit es angezeigt wird? In der Beschreibung steht:H = Hidden (nur erforderlich wenn versteckt)Muss ich das in dem Datenpunkt nur löschen?
LG aus dem Sauerland
-
@armilar Hi
Genau das war das Problem. Funktioniert tadellos. Vielen Dank dafür.
Jetzt wird ja das Passwort versteckt. Was muss ich mit "H" machen, damit es angezeigt wird? In der Beschreibung steht:H = Hidden (nur erforderlich wenn versteckt)Muss ich das in dem Datenpunkt nur löschen?
LG aus dem Sauerland
-
Hallo @Armilar und Frohes neues Jahr allen zusammen.
Bin gestern endlich nochmal dazu gekommen mit meinem NS Panel zu basteln. Also erst mal neu flashen mit Tasmota 12.3.1 bin dann genau nach der Anleitung vor gegangen Link
bei dem PartUnter dem grünen Vezeichnisbaum „global“ im ioBroker-Menüpunkt Skripte erzeugst du ein Skript mit dem Namen „IconsSelector“ vom Typ: TypeScript (TS). Dort fügst du den Inhalt der Datei:bekomme ich im Log
javascript.0 2023-01-01 09:28:17.160 error at Script.runInContext (node:vm:141:12) javascript.0 2023-01-01 09:28:17.160 error at script.js.common.System.NS_Panel_01:251:13 javascript.0 2023-01-01 09:28:17.160 error ReferenceError: IconsSelector is not defined javascript.0 2023-01-01 09:28:17.160 error ^ javascript.0 2023-01-01 09:28:17.159 error var Icons = new IconsSelector(); javascript.0 2023-01-01 09:28:17.159 error script.js.common.System.NS_Panel_01: script.js.common.System.NS_Panel_01:251Und JS Adapter schmiert ab. Also erst mal das alte "icon_mapping" aktiviert NS Panel läuft damit
Screensaver mit Wetter alias kommt.Bekomme aber für fast alle Info Datenpunkte keine Daten hatte ich damals auch, hatte mich aber da nicht weiter drum kümmern können ...

Hast du da eine Idee was schief läuft ?
Würde gerne erst die Sachen zum Laufen bringen die schon drin sind und dann mal weiter "spielen"
Alle Adapter sind aktuell Stable Außer Geräte Verwalten der ist auf 1.1.1 durch den Bug bei importierten zustanden..... -
Hallo @Armilar und Frohes neues Jahr allen zusammen.
Bin gestern endlich nochmal dazu gekommen mit meinem NS Panel zu basteln. Also erst mal neu flashen mit Tasmota 12.3.1 bin dann genau nach der Anleitung vor gegangen Link
bei dem PartUnter dem grünen Vezeichnisbaum „global“ im ioBroker-Menüpunkt Skripte erzeugst du ein Skript mit dem Namen „IconsSelector“ vom Typ: TypeScript (TS). Dort fügst du den Inhalt der Datei:bekomme ich im Log
javascript.0 2023-01-01 09:28:17.160 error at Script.runInContext (node:vm:141:12) javascript.0 2023-01-01 09:28:17.160 error at script.js.common.System.NS_Panel_01:251:13 javascript.0 2023-01-01 09:28:17.160 error ReferenceError: IconsSelector is not defined javascript.0 2023-01-01 09:28:17.160 error ^ javascript.0 2023-01-01 09:28:17.159 error var Icons = new IconsSelector(); javascript.0 2023-01-01 09:28:17.159 error script.js.common.System.NS_Panel_01: script.js.common.System.NS_Panel_01:251Und JS Adapter schmiert ab. Also erst mal das alte "icon_mapping" aktiviert NS Panel läuft damit
Screensaver mit Wetter alias kommt.Bekomme aber für fast alle Info Datenpunkte keine Daten hatte ich damals auch, hatte mich aber da nicht weiter drum kümmern können ...

Hast du da eine Idee was schief läuft ?
Würde gerne erst die Sachen zum Laufen bringen die schon drin sind und dann mal weiter "spielen"
Alle Adapter sind aktuell Stable Außer Geräte Verwalten der ist auf 1.1.1 durch den Bug bei importierten zustanden..... -
Welche Script-Version ist aktuell drauf?
@armilar sagte in SONOFF NSPanel mit Lovelace UI:
Welche Script-Version ist aktuell drauf?
Guten Morgen und frohes neues Jahr 2023. Hoff Ihr seit gut rein gekommen. So habe einmal alles Aufgenommen siehe Bilder. Bei dem Script nehme ich einmal an, dass ich ab dem Punkt
"Ab hier keine Konfiguration mehr" das neue Skript einfügen muss. Die Beschreibung oben würde ich dann auch tauschen.


