NEWS
Sonoff NSPanel
-
@armilar sagte in Sonoff NSPanel:
@kmxak vielleicht hat @britzelpuf schon Infos zum aktuellen Entwicklungsstand???
Sicher, das @britzelpuf was machen wollte?
In GitHub ist nichts zu finden.@muchul sagte in Sonoff NSPanel:
@armilar sagte in Sonoff NSPanel:
@kmxak vielleicht hat @britzelpuf schon Infos zum aktuellen Entwicklungsstand???
Sicher, das @britzelpuf was machen wollte?
In GitHub ist nichts zu finden.So war vor einigen Wochen noch das Statement. Ich denke er entwickelt es zunÀchst auf eine erste stabile Version und veröffentlicht es dann auf Github. Ich habe aber auch keinen aktuellen Stand hierzu.
-
@muchul sagte in Sonoff NSPanel:
@armilar sagte in Sonoff NSPanel:
@kmxak vielleicht hat @britzelpuf schon Infos zum aktuellen Entwicklungsstand???
Sicher, das @britzelpuf was machen wollte?
In GitHub ist nichts zu finden.So war vor einigen Wochen noch das Statement. Ich denke er entwickelt es zunÀchst auf eine erste stabile Version und veröffentlicht es dann auf Github. Ich habe aber auch keinen aktuellen Stand hierzu.
-
das ganze ohne alias zu machen gibt es aber nicht oder es scheint ja sehr darauf aufgebaut zu sein.
-
das ganze ohne alias zu machen gibt es aber nicht oder es scheint ja sehr darauf aufgebaut zu sein.
@kmxak sagte in Sonoff NSPanel:
das ganze ohne alias zu machen gibt es aber nicht oder es scheint ja sehr darauf aufgebaut zu sein.
Ich kann mir ebenfalls nicht vorstellen, dass @britzelpuf auf die Aliase verzichten wird, da diese der FlexibilitĂ€t, auch beim Einsatz mehrerer Panel, entgegenkommen, in Analogie genutzt werden können (z.B. Screensaver) und das Panel sich nach wie vor somit komplett von auĂen steuern lĂ€sst.
Ich lasse mich aber ebenfalls ĂŒberraschen.
-
Neues Video Tutorial von haus-automatisierung.com
https://www.youtube.com/watch?v=ZPLJk2ZLo_8 - NSPanel mit Lovelace UI - so habe ich mir das vorgestellt!Ansonsten weiterhin gĂŒltig:
Ich habe hier mal eine aktuelle Anleitung fĂŒr euch erstellt. Leider kann ich nicht auf jedes Detail beim Alias eingehen, da das bereits den Rahmen sprengen wĂŒrde, jedoch soll es ein Leitfaden sein, wie man etwas schneller zum Ziel kommt.Step fĂŒr Step - Anleitung zur Einrichtung eines Sonoff NSPanel mit Lovelace UI unter ioBroker

1. Voraussetzungen fĂŒr den ioBrokerFĂŒr den Betrieb benötigst du âkeinenâ ioBroker-lovelace-Adapter. Die komplette lovelace-Integration erfolgt ĂŒber die TFT-Firmware und die nachfolgenden ioBroker-Adapter.
- MQTT-Adapter

Die Kommunikation zwischen dem NSPanel und ioBroker erfolgt mittels MQTT ĂŒber Tasmota. Da der Datenpunkt âCustomSendâ erforderlich ist und dieser nicht im Sonoff-Adapter vorhanden ist und auch nicht durch das Skript angelegt werden kann, erfolgt die Kommunikation ânichtâ ĂŒber den Sonoff-Adapter --> spĂ€ter mehr ⊠- Javascript-Adapter
Es werden zwei Type-Skripte (TS = das etwas mĂ€chtigere Javascript) benötigt. Zum Einen ein Icon-Skript, da alle verwendeten Icons nicht als âechte Grafikenâ im Panel hinterlegt sind, sondern als Schriftzeichen-Symbole. Des Weiteren ein TS-Skript mit dem eigentlichen Laufzeit-Code, welches fĂŒr jedes eingesetzte NSPanel vorhanden und konfiguriert sein sollte --> spĂ€ter mehr ⊠- GerĂ€te verwaltenâ-Adapter

Ăber diesen Adapter sollten die Aliase spĂ€ter (mit Ausnahme des Media-Alias fĂŒr Alexa & Co.) erstellt werden --> spĂ€ter mehr ⊠- Accu-Weather-Adapter

Spielt in erster Linie eine Rolle beim Screensaver-Wetter, da zum Ersten die Icons und die Temperatur-Informationen fĂŒr den Forecast ausgelesen werden (falls genutzt) und zum Zweiten das aktuelle Wettericon fĂŒr den Screensaver benötigt wird. Wer keine Wetterstation oder AuĂentemperatursensor hat, kann auch die Temperatur aus Accu-Weather importieren --> spĂ€ter mehr ⊠- Alexa2-Adapter
Zur Visualisierung des Media-Playerâs sollte der Alexa2-Adapter installiert sein. Wenn du statt Alexa-Devices andere Hersteller wie z.B. Google-Home-GerĂ€te oder in erster Linie der Spotify-Premium-Adapter im Einsatz hast, so ist es auch möglich mit einem entsprechend, alternativen Media-Adapter den Media-Player zu betreiben --> spĂ€ter mehr âŠ
2. Panel mit Tasmota flashen.
Hierzu eignet sich fĂŒr den "Hardwareteil" die Anleitung von haus-automatisierung.com(https://www.youtube.com/watch?v=uqPz08ZpFW8). Video bis 11 Minuten und 30 Sekunden befolgen!
Die Beschreibung, wie man das Panel mit Tasmota flashen kann, ohne einen Kurzschluss zu erzeugen, ist schon sehr gut erklÀrt.
Du installierst gleich einen âabweichendenâ Berry-Treiber (autoexec.be) als in der Video-Beschreibung genannt. Wenn du Tasmota und ânoch nicht der Berry-Treiberâ installiert hast, bitte mit der Youtube-Video-Anleitung von Matthias ab Zeit=11:30 aufhören. Ich verwende in meinen Panels die Version âtasmota32-DE.binâ. Du kannst aber auch die âtasmota32-nspanel.binâ verwenden.
Zur MQTT-Konfiguration kommen wir im Punkt 4
An dieser Stelle solltest du aber bereits die grundsĂ€tzliche Tasmota Konfiguration vornehmen:a) Unter âSonstige Einstellungenâ trĂ€gst du im Feld Vorlage
{"NAME":"NSPanel","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}ein, hakst Aktivieren "an" und klickst auf Speichern. Du kannst natĂŒrlich auch noch Device und Friendly Name vergeben

b) Unter Logging fĂŒgst du die IP von deinem ioBroker unter Sys-Log Host () ein und klickst auf Speichern.
c) Unter Konsolen/Konsole kannst du natĂŒrlich auch noch weitere Einstellungen vornehmen (ipaddress1 192.168.X.X fĂŒr statische IPâs, setOptionâs, etc.)3. Berry-Treiber installieren
Im Tasmota findest du unter âKonsolenâ den Button âVerwalte Dateisystemâ. Wenn du diesen anklickst, siehst du einen weiteren Button âDatei erstellen und bearbeitenâ. Du Ă€nderst den Dateinamen âneue-datei.txtâ in âautoexec.beâ und fĂŒgst den Inhalt aus dem folgenden Link ein:https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be

Danach klickst du auf âSpeichernâ und dann solltest du Tasmota rebooten.Wenn das Panel bereits unter einer anderen Variante (z.B. haus-automatisierung.com) installiert war, dann bitte alle Dateien (insbesondere autoexec.be und autoexec.bec) vorher ĂŒber das Flammensymbol hinter dem Dateinamen löschen. Und von vorne mit dem Punkt 3 beginnen

4. MQTT im Tasmota konfigurieren
Im Tasmota unter âEinstellungen/MQTT konfigurierenâ:
a) Host deines ioBrokers vergeben
b) Den Port deiner ioBroker-MQTT-Adapter-Instanz eingeben (fĂŒr mqtt.0.). Wenn du noch keinen MQTT-Adapter installiert hast, dann verwende bitte nicht unbedingt den Standard-Port 1883. Dieser Port wird auch von anderen Pseudo-MQTT-Adaptern (Sonoff/Shelly/etc.) ebenfalls verwendet und fĂŒhrt im parallelen Betrieb mit anderen MQTT-Devices spĂ€ter unweigerlich zu Komplikationen. Ich verwende fĂŒr die MQTT-Instanzen gerne einen Port ab 1886 oder 1887 oder 1888 oder höher. Das Problem zeigt sich in der Regel ab dem Zeitpunkt, an dem der âCustomSendâ nicht von deiner mqtt.0.-Instanz abonniert wird.
c) Benutzer und Passwort aus der ioBroker-MQTT-Instanz eintragen
d) Bei Client und topic trage ich in der Regel âNSPanel_Xâ ein. (X = 1, 2, 3 oder WZ fĂŒr Wohnzimmer, etc.)
e) FĂŒr den full topic verwende ich in der Regel âSmartHome/%topic%/%prefix%/â.
f) Speichern klicken und Einstellungen verlassen
5. TFT-Firmware auf das Panel flashen
Tasmota âKonsolen/Konsoleâ öffnen und in die KommandozeileFlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.1.0.tftAchtung !!! Die aktuellsten Versionen (3.1.0 könnte nicht mehr aktuell sein) befinden sich "immer" im ioBroker TypeScript Header (TS-Skript) unter:
https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.tseingeben, mit Enter bestĂ€tigen. Das Panel installiert jetzt die TFT-Firmware (Kann beim ersten Mal ein paar Minuten dauern â Fortschritt beobachten â am Ende erfolgt ein Reboot und das Panel wechselt in einen Screen â âWaiting for Contentâ

Das Panel wartet jetzt auf den Input von deinem ioBroker-Skript (Installierst du in einem der nĂ€chsten Punkte âŠ)
6. MQTT im ioBroker installieren und konfigurieren
Wenn du bereits eine Instanz des MQTT-Adapters (z.B. mqtt.0.) nutzt, dann bitte den Port der MQTT-Adapter-Instanz auch im Tasmota-MQTT verwenden. Bitte auch hier den Hinweis aus Punkt 4b beachten und ggf. einen anderen Port fĂŒr die Kommunikation eintragen.
Ansonsten wĂ€hlst du im ioBroker-MenĂŒ unter âAdapterâ den mqtt-Adapter aus und erstellst wie gewohnt eine Instanz des Adapters. Du kannst dir natĂŒrlich auch eine zusĂ€tzliche Instanz (z.B. mqtt.1. oder mqtt.2. etc.) erstellen.Meine Einstellungen im Reiter Verbindung sind z.B.:
a) IP = Server/Broker
b) WebSockets benutzen (angehakt)
c) IP Adresse des ioBrokers (wahrscheinlich eth0 oder eth1) auswÀhlen
d) Port 1886 (analog Port aus Tasmota/MQTT)
e) Benutzer (analog Benutzer aus Tasmota/MQTT)
f) Kennwort + Kennwort wiederholen (analog Passwort aus Tasmota/MQTT)
Meine Einstellungen im Reiter MQTT-Einstellungen sind:
a) Maske zum Bekanntgeben eigener States: mqtt.0.* (Bei zusÀtzlicher Instanz entsprechend höher (mqtt.1.* etc.)
b) Eigene States beim Verbinden publizieren (angehakt)
c) States bei subscribe publizieren (angehakt)
d) Leere Session erzwingen: Client-Einstellungen verwenden
7. CustomSend anlegen
Der MQTT Datenpunkt wird benötigt und muss vom MQTT-Adapter angelegt werden. Ein manuelles Anlegen unter âObjekteâ oder âcreateStateâ ist im ioBroker ânicht mehrâ möglich. Um den Datenpunkt zu erzeugen, öffnest du im Tasmota die Konsole und gibst ohne die AnfĂŒhrungszeichenâCustomSend time~12:00âein.
Alternativ kann auch der MQTT-Explorer (http://mqtt-explorer.com/) genutzt werden und ein payload unter .../cmnd abgesendet werden.

Danach sollte im MQTT-Adapter unter Objekte ein Datenpunkt: âSmartHome/NSPanel_X/cmnd/CustomSendâ erscheinen. Falls nicht, solange wiederholen bis dieser Datenpunkt abonniert wurde, oder ggfs. Nochmals die MQTT-Einstellungen ĂŒberprĂŒfen. In den Vergangenen Fragen dieses Topics ging es hĂ€ufiger um diesen Punkt.8. Icon âTypeScriptâ unter âSkripteâ im Verzeichnis âglobalâ anlegen
Wie bereits in der Einleitung erwĂ€hnt, werden zwei TypeScripts (TS) benötigt. Das erste ist das Icon-Skript. Das Icon-Skript dient zur Ăbersetzung von Schriftzeichensymbolen zwischen dem Skript und der TFT-Firmware.
Unter 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:https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/icon_mapping.ts
ein und startest das Skript.
Nur zur Info: Du kannst die einzelnen Icon-Symbolnamen (aktuell 6896 unterschiedliche Icon-Symbole) auf
einsehen und spĂ€ter (kommen wir bei der Alias-Erstellung noch zu) auch jedes Icon in deinem Panel an entsprechender Stelle verwenden. FĂŒr die Einbindung sind die âNamenâ der Icons wichtig.
9. TypeScript âNSPanelTs.tsâ anlegen
Unter dem regulĂ€ren Vezeichnisbaum âcommonâ im ioBroker-MenĂŒpunkt Skripte erzeugst du (gerne auch in weiteren Unterverzeichnissen) ein weiteres Skript (Aktuell in fĂŒr die TFT-Version 3.1.0) mit dem Inhalt:https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts
FĂŒr jedes einzelne NSPanel das du konfigurieren möchtest, musst du dieses Skript anlegen und speziell fĂŒr dieses jeweilige NSPanel entsprechende Einstellungen vornehmen. FĂŒr den Skriptnamen verwende ich in der Regel eine Kombination aus Panel und Skriptversion, wie z.B.: NSPANEL_1_3.1.0
(Es kommen in regelmĂ€Ăigen AbstĂ€nden weitere NSPanel-Features und Bug-Fixes in das GitHub-Skript in denen dann nur noch der untere Teil (--- ab hier keine Konfiguration mehr ---) ausgetauscht werden muss und die NSPanel-Parameter erhalten bleiben)
Die aktuelle Ănderung von
2.8.0 auf 2.9.0ist z.B.:-
Steuerung von KlimagerÀten/Klimaanlagen

-
QR-Code fĂŒr z.B. GĂ€ste WLAN

-
Neues Design fĂŒr Thermostate

-
etc.
Im oberen Teil des Skripts sind die grundsĂ€tzlichen Teile der zu erstellenden Aliase, Konstanten und Variablen (auch Seiten) enthalten. An dieser Stelle ist zunĂ€chst wichtig, die Kommunikationsparameter fĂŒr die MQTT-Kommunikation zu parametrieren (ab ca. Zeile 400) beginnend mit
âexport const config: Config = {Hier musst du die beiden nachfolgenden Kommunikations-Datenpunkte aus dem MQTT-Adapter eintragen:
panelRecvTopic: "mqtt.0.SmartHome.NSPanel_1.tele.RESULT", //bitte anpassen panelSendTopic: "mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend", //bitte anpassenFalls abweichend, dann am besten direkt unter Objekte herauskopieren
Bitte starte das Skript. Alle weiteren Parameter stellen wir spĂ€ter ein. Ab jetzt sollte der Startup-Screen âWaiting for Connectionâ in den Sreensaver wechseln und minĂŒtlich die Uhrzeit an den Screensaver ĂŒbertragen und das Datum aktualisiert werden.
10. TypeScript konfigurieren
Im Punkt 9 haben wir zunĂ€chst die nur Kommunikation zwischen Panel und Skript ĂŒber MQTT hergestellt. Jetzt kommen wir zum Inhalt des Panels:Der untere Bereich vom Screensaver:
a) Die 4 kleineren Icons
Hier kannst du dich entscheiden, ob du die Wettervorhersage oder eigene Werte visualisieren möchtest. Wenn du dich fĂŒr den Forecast entscheidest, dann muss die Variablevar weatherForecastauf âtrueâ stehen. Ebenfalls sollte die Adapter-Instanz von Accu-Weather funktionsfĂ€hig eingerichtet sein. FĂŒr diese Werte ist kein Alias notwendig, da diese zur Laufzeit direkt aus dem Adapter ausgelesen werden.
Möchtest du an dieser Stelle eigene Werte visualisieren, dann muss die Variablevar weatherForecastauf âfalseâ stehen. Jetzt kannst du im Block beginnend mit
export const config: Config = {die Datenpunkte firstScreensaverEntity bis fourthScreensaverEntity mit eigenen Datenpunkten fĂŒllen.
Eine Ausnahme stellt das groĂe Wetter-Icon und der Wert fĂŒr die aktuelle Temperatur im Screensaver dar. HierfĂŒr benötigen wir einen Alias (im nĂ€chsten Punkt)b) Diverse Datenpunkte
Beim ersten Start des Scripts erzeugt das Skript unter 0_userdata diverse Datenpunkte fĂŒr Screensaver Dimmode, interne Sensoren, Tasmota-Statuswerte, etc.
Der Pfad kann im Skript unter âNSPanel_Pathâ angepasst werden.c) Alexa
Wenn du Alexa-Devices mit dem Media-Player nutzen möchtest, dann stelle noch das Standard-Alexa-Device (Seriennummer unter âvar alexaDeviceâ) ein.
Ebenso kannst du unter alexaSpeakerList eine Liste mit vorhandenen Alexa-Devices (und/oder Gruppen) anlegen, die von diesem NSPanel-MediaPlayer aus bedient werden sollen. Bleibt diese Liste leer, werden automatisch alle Devices aus dem Alexa2-Adapter importiert.11. Aliase Anlegen
Jetzt kommt der eigentliche Teil der Seitengestaltung. Es werden keine Datenpunkte benötigt, sondern Aliase.
Ein Alias ist âkeinâ Datenpunkt, sondern ein Objekt mit mehreren Datenpunkten.
Das Skript setzt entsprechende Trigger auf die Alias-Datenpunkte .SET, .GET, .ACTUAL usw. Deshalb werden deine Steuerelemente im Panel nicht greifen, wenn du mit einzelnen Datenpunkten aus den verschiedenen Adaptern arbeitest.
Ich habe im Verlauf diverse Aliase erzeugt und auch in den ChangeLogs der jeweiligen Skript-Version sind die möglichen Aliase aufgefĂŒhrt, daher gehe ich hier nicht (wĂŒrde die Anleitung auch sprengen) im Detail auf die Aliase ein.
Was brauche ich fĂŒr einen Alias:
a) ZunĂ€chst installierst du dir eine Instanz des Adapters âGerĂ€te verwaltenâ
b) Dann erstellst du dir einen Alias (Beispiel Wetter-Icon und aktueller Wert der AuĂentemperatur) Dieser Alias muss nur einmalig angelegt werden und funktioniert somit auch in jedem weiteren Panel.

und etwas tiefer:

c) Wenn du einen Alias fĂŒr den Media-Player benötigst, dann erstelle die diesen Alias besser ĂŒber den Adapter âAlias-Managerâ,

da der Adapter âGerĂ€te verwaltenâ bei diesem Alias nicht ordentlich arbeitet. Jedoch ist der auch so Komplex, das es fĂŒr Alias-AnfĂ€nger schwer ist, einen Alias mit den korrekten Datenpunkten zu fĂŒllen.12. Seitengestaltung
Am Besten benutzt ihr die Beispiele im Skript und legt entsprechende Aliase hierzu an, die auch in diesem ioBroker-Community-Topic innerhalb der letzten Wochen beschrieben wurden.
Und noch ein paar Bilderchen:
cardEntities mit Alias Lampe/Dimmer/Switch

cardEntities mit RGB und HUE Aliasen (Color)

popupLight mit Farbtemperatur und Brightness

popupLight mit ColorWheel

cardGrid mit Radiosendern/Playlists (Alias Taste)

cardEntities mit Aliasen LautstÀrke und Info

cardEntities mit Fenster, TĂŒr, Jalousie und Verschluss

cardEntities mit Abfallkalender

cardMedia

cardAlarm

cardGrid

cardEntities

cardEntities als Subpage unter cardEntities (verschachtelt)

cardNotify

- MQTT-Adapter
-
Neues Video Tutorial von haus-automatisierung.com
https://www.youtube.com/watch?v=ZPLJk2ZLo_8 - NSPanel mit Lovelace UI - so habe ich mir das vorgestellt!Ansonsten weiterhin gĂŒltig:
Ich habe hier mal eine aktuelle Anleitung fĂŒr euch erstellt. Leider kann ich nicht auf jedes Detail beim Alias eingehen, da das bereits den Rahmen sprengen wĂŒrde, jedoch soll es ein Leitfaden sein, wie man etwas schneller zum Ziel kommt.Step fĂŒr Step - Anleitung zur Einrichtung eines Sonoff NSPanel mit Lovelace UI unter ioBroker

1. Voraussetzungen fĂŒr den ioBrokerFĂŒr den Betrieb benötigst du âkeinenâ ioBroker-lovelace-Adapter. Die komplette lovelace-Integration erfolgt ĂŒber die TFT-Firmware und die nachfolgenden ioBroker-Adapter.
- MQTT-Adapter

Die Kommunikation zwischen dem NSPanel und ioBroker erfolgt mittels MQTT ĂŒber Tasmota. Da der Datenpunkt âCustomSendâ erforderlich ist und dieser nicht im Sonoff-Adapter vorhanden ist und auch nicht durch das Skript angelegt werden kann, erfolgt die Kommunikation ânichtâ ĂŒber den Sonoff-Adapter --> spĂ€ter mehr ⊠- Javascript-Adapter
Es werden zwei Type-Skripte (TS = das etwas mĂ€chtigere Javascript) benötigt. Zum Einen ein Icon-Skript, da alle verwendeten Icons nicht als âechte Grafikenâ im Panel hinterlegt sind, sondern als Schriftzeichen-Symbole. Des Weiteren ein TS-Skript mit dem eigentlichen Laufzeit-Code, welches fĂŒr jedes eingesetzte NSPanel vorhanden und konfiguriert sein sollte --> spĂ€ter mehr ⊠- GerĂ€te verwaltenâ-Adapter

Ăber diesen Adapter sollten die Aliase spĂ€ter (mit Ausnahme des Media-Alias fĂŒr Alexa & Co.) erstellt werden --> spĂ€ter mehr ⊠- Accu-Weather-Adapter

Spielt in erster Linie eine Rolle beim Screensaver-Wetter, da zum Ersten die Icons und die Temperatur-Informationen fĂŒr den Forecast ausgelesen werden (falls genutzt) und zum Zweiten das aktuelle Wettericon fĂŒr den Screensaver benötigt wird. Wer keine Wetterstation oder AuĂentemperatursensor hat, kann auch die Temperatur aus Accu-Weather importieren --> spĂ€ter mehr ⊠- Alexa2-Adapter
Zur Visualisierung des Media-Playerâs sollte der Alexa2-Adapter installiert sein. Wenn du statt Alexa-Devices andere Hersteller wie z.B. Google-Home-GerĂ€te oder in erster Linie der Spotify-Premium-Adapter im Einsatz hast, so ist es auch möglich mit einem entsprechend, alternativen Media-Adapter den Media-Player zu betreiben --> spĂ€ter mehr âŠ
2. Panel mit Tasmota flashen.
Hierzu eignet sich fĂŒr den "Hardwareteil" die Anleitung von haus-automatisierung.com(https://www.youtube.com/watch?v=uqPz08ZpFW8). Video bis 11 Minuten und 30 Sekunden befolgen!
Die Beschreibung, wie man das Panel mit Tasmota flashen kann, ohne einen Kurzschluss zu erzeugen, ist schon sehr gut erklÀrt.
Du installierst gleich einen âabweichendenâ Berry-Treiber (autoexec.be) als in der Video-Beschreibung genannt. Wenn du Tasmota und ânoch nicht der Berry-Treiberâ installiert hast, bitte mit der Youtube-Video-Anleitung von Matthias ab Zeit=11:30 aufhören. Ich verwende in meinen Panels die Version âtasmota32-DE.binâ. Du kannst aber auch die âtasmota32-nspanel.binâ verwenden.
Zur MQTT-Konfiguration kommen wir im Punkt 4
An dieser Stelle solltest du aber bereits die grundsĂ€tzliche Tasmota Konfiguration vornehmen:a) Unter âSonstige Einstellungenâ trĂ€gst du im Feld Vorlage
{"NAME":"NSPanel","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}ein, hakst Aktivieren "an" und klickst auf Speichern. Du kannst natĂŒrlich auch noch Device und Friendly Name vergeben

b) Unter Logging fĂŒgst du die IP von deinem ioBroker unter Sys-Log Host () ein und klickst auf Speichern.
c) Unter Konsolen/Konsole kannst du natĂŒrlich auch noch weitere Einstellungen vornehmen (ipaddress1 192.168.X.X fĂŒr statische IPâs, setOptionâs, etc.)3. Berry-Treiber installieren
Im Tasmota findest du unter âKonsolenâ den Button âVerwalte Dateisystemâ. Wenn du diesen anklickst, siehst du einen weiteren Button âDatei erstellen und bearbeitenâ. Du Ă€nderst den Dateinamen âneue-datei.txtâ in âautoexec.beâ und fĂŒgst den Inhalt aus dem folgenden Link ein:https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be

Danach klickst du auf âSpeichernâ und dann solltest du Tasmota rebooten.Wenn das Panel bereits unter einer anderen Variante (z.B. haus-automatisierung.com) installiert war, dann bitte alle Dateien (insbesondere autoexec.be und autoexec.bec) vorher ĂŒber das Flammensymbol hinter dem Dateinamen löschen. Und von vorne mit dem Punkt 3 beginnen

4. MQTT im Tasmota konfigurieren
Im Tasmota unter âEinstellungen/MQTT konfigurierenâ:
a) Host deines ioBrokers vergeben
b) Den Port deiner ioBroker-MQTT-Adapter-Instanz eingeben (fĂŒr mqtt.0.). Wenn du noch keinen MQTT-Adapter installiert hast, dann verwende bitte nicht unbedingt den Standard-Port 1883. Dieser Port wird auch von anderen Pseudo-MQTT-Adaptern (Sonoff/Shelly/etc.) ebenfalls verwendet und fĂŒhrt im parallelen Betrieb mit anderen MQTT-Devices spĂ€ter unweigerlich zu Komplikationen. Ich verwende fĂŒr die MQTT-Instanzen gerne einen Port ab 1886 oder 1887 oder 1888 oder höher. Das Problem zeigt sich in der Regel ab dem Zeitpunkt, an dem der âCustomSendâ nicht von deiner mqtt.0.-Instanz abonniert wird.
c) Benutzer und Passwort aus der ioBroker-MQTT-Instanz eintragen
d) Bei Client und topic trage ich in der Regel âNSPanel_Xâ ein. (X = 1, 2, 3 oder WZ fĂŒr Wohnzimmer, etc.)
e) FĂŒr den full topic verwende ich in der Regel âSmartHome/%topic%/%prefix%/â.
f) Speichern klicken und Einstellungen verlassen
5. TFT-Firmware auf das Panel flashen
Tasmota âKonsolen/Konsoleâ öffnen und in die KommandozeileFlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.1.0.tftAchtung !!! Die aktuellsten Versionen (3.1.0 könnte nicht mehr aktuell sein) befinden sich "immer" im ioBroker TypeScript Header (TS-Skript) unter:
https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.tseingeben, mit Enter bestĂ€tigen. Das Panel installiert jetzt die TFT-Firmware (Kann beim ersten Mal ein paar Minuten dauern â Fortschritt beobachten â am Ende erfolgt ein Reboot und das Panel wechselt in einen Screen â âWaiting for Contentâ

Das Panel wartet jetzt auf den Input von deinem ioBroker-Skript (Installierst du in einem der nĂ€chsten Punkte âŠ)
6. MQTT im ioBroker installieren und konfigurieren
Wenn du bereits eine Instanz des MQTT-Adapters (z.B. mqtt.0.) nutzt, dann bitte den Port der MQTT-Adapter-Instanz auch im Tasmota-MQTT verwenden. Bitte auch hier den Hinweis aus Punkt 4b beachten und ggf. einen anderen Port fĂŒr die Kommunikation eintragen.
Ansonsten wĂ€hlst du im ioBroker-MenĂŒ unter âAdapterâ den mqtt-Adapter aus und erstellst wie gewohnt eine Instanz des Adapters. Du kannst dir natĂŒrlich auch eine zusĂ€tzliche Instanz (z.B. mqtt.1. oder mqtt.2. etc.) erstellen.Meine Einstellungen im Reiter Verbindung sind z.B.:
a) IP = Server/Broker
b) WebSockets benutzen (angehakt)
c) IP Adresse des ioBrokers (wahrscheinlich eth0 oder eth1) auswÀhlen
d) Port 1886 (analog Port aus Tasmota/MQTT)
e) Benutzer (analog Benutzer aus Tasmota/MQTT)
f) Kennwort + Kennwort wiederholen (analog Passwort aus Tasmota/MQTT)
Meine Einstellungen im Reiter MQTT-Einstellungen sind:
a) Maske zum Bekanntgeben eigener States: mqtt.0.* (Bei zusÀtzlicher Instanz entsprechend höher (mqtt.1.* etc.)
b) Eigene States beim Verbinden publizieren (angehakt)
c) States bei subscribe publizieren (angehakt)
d) Leere Session erzwingen: Client-Einstellungen verwenden
7. CustomSend anlegen
Der MQTT Datenpunkt wird benötigt und muss vom MQTT-Adapter angelegt werden. Ein manuelles Anlegen unter âObjekteâ oder âcreateStateâ ist im ioBroker ânicht mehrâ möglich. Um den Datenpunkt zu erzeugen, öffnest du im Tasmota die Konsole und gibst ohne die AnfĂŒhrungszeichenâCustomSend time~12:00âein.
Alternativ kann auch der MQTT-Explorer (http://mqtt-explorer.com/) genutzt werden und ein payload unter .../cmnd abgesendet werden.

Danach sollte im MQTT-Adapter unter Objekte ein Datenpunkt: âSmartHome/NSPanel_X/cmnd/CustomSendâ erscheinen. Falls nicht, solange wiederholen bis dieser Datenpunkt abonniert wurde, oder ggfs. Nochmals die MQTT-Einstellungen ĂŒberprĂŒfen. In den Vergangenen Fragen dieses Topics ging es hĂ€ufiger um diesen Punkt.8. Icon âTypeScriptâ unter âSkripteâ im Verzeichnis âglobalâ anlegen
Wie bereits in der Einleitung erwĂ€hnt, werden zwei TypeScripts (TS) benötigt. Das erste ist das Icon-Skript. Das Icon-Skript dient zur Ăbersetzung von Schriftzeichensymbolen zwischen dem Skript und der TFT-Firmware.
Unter 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:https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/icon_mapping.ts
ein und startest das Skript.
Nur zur Info: Du kannst die einzelnen Icon-Symbolnamen (aktuell 6896 unterschiedliche Icon-Symbole) auf
einsehen und spĂ€ter (kommen wir bei der Alias-Erstellung noch zu) auch jedes Icon in deinem Panel an entsprechender Stelle verwenden. FĂŒr die Einbindung sind die âNamenâ der Icons wichtig.
9. TypeScript âNSPanelTs.tsâ anlegen
Unter dem regulĂ€ren Vezeichnisbaum âcommonâ im ioBroker-MenĂŒpunkt Skripte erzeugst du (gerne auch in weiteren Unterverzeichnissen) ein weiteres Skript (Aktuell in fĂŒr die TFT-Version 3.1.0) mit dem Inhalt:https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts
FĂŒr jedes einzelne NSPanel das du konfigurieren möchtest, musst du dieses Skript anlegen und speziell fĂŒr dieses jeweilige NSPanel entsprechende Einstellungen vornehmen. FĂŒr den Skriptnamen verwende ich in der Regel eine Kombination aus Panel und Skriptversion, wie z.B.: NSPANEL_1_3.1.0
(Es kommen in regelmĂ€Ăigen AbstĂ€nden weitere NSPanel-Features und Bug-Fixes in das GitHub-Skript in denen dann nur noch der untere Teil (--- ab hier keine Konfiguration mehr ---) ausgetauscht werden muss und die NSPanel-Parameter erhalten bleiben)
Die aktuelle Ănderung von
2.8.0 auf 2.9.0ist z.B.:-
Steuerung von KlimagerÀten/Klimaanlagen

-
QR-Code fĂŒr z.B. GĂ€ste WLAN

-
Neues Design fĂŒr Thermostate

-
etc.
Im oberen Teil des Skripts sind die grundsĂ€tzlichen Teile der zu erstellenden Aliase, Konstanten und Variablen (auch Seiten) enthalten. An dieser Stelle ist zunĂ€chst wichtig, die Kommunikationsparameter fĂŒr die MQTT-Kommunikation zu parametrieren (ab ca. Zeile 400) beginnend mit
âexport const config: Config = {Hier musst du die beiden nachfolgenden Kommunikations-Datenpunkte aus dem MQTT-Adapter eintragen:
panelRecvTopic: "mqtt.0.SmartHome.NSPanel_1.tele.RESULT", //bitte anpassen panelSendTopic: "mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend", //bitte anpassenFalls abweichend, dann am besten direkt unter Objekte herauskopieren
Bitte starte das Skript. Alle weiteren Parameter stellen wir spĂ€ter ein. Ab jetzt sollte der Startup-Screen âWaiting for Connectionâ in den Sreensaver wechseln und minĂŒtlich die Uhrzeit an den Screensaver ĂŒbertragen und das Datum aktualisiert werden.
10. TypeScript konfigurieren
Im Punkt 9 haben wir zunĂ€chst die nur Kommunikation zwischen Panel und Skript ĂŒber MQTT hergestellt. Jetzt kommen wir zum Inhalt des Panels:Der untere Bereich vom Screensaver:
a) Die 4 kleineren Icons
Hier kannst du dich entscheiden, ob du die Wettervorhersage oder eigene Werte visualisieren möchtest. Wenn du dich fĂŒr den Forecast entscheidest, dann muss die Variablevar weatherForecastauf âtrueâ stehen. Ebenfalls sollte die Adapter-Instanz von Accu-Weather funktionsfĂ€hig eingerichtet sein. FĂŒr diese Werte ist kein Alias notwendig, da diese zur Laufzeit direkt aus dem Adapter ausgelesen werden.
Möchtest du an dieser Stelle eigene Werte visualisieren, dann muss die Variablevar weatherForecastauf âfalseâ stehen. Jetzt kannst du im Block beginnend mit
export const config: Config = {die Datenpunkte firstScreensaverEntity bis fourthScreensaverEntity mit eigenen Datenpunkten fĂŒllen.
Eine Ausnahme stellt das groĂe Wetter-Icon und der Wert fĂŒr die aktuelle Temperatur im Screensaver dar. HierfĂŒr benötigen wir einen Alias (im nĂ€chsten Punkt)b) Diverse Datenpunkte
Beim ersten Start des Scripts erzeugt das Skript unter 0_userdata diverse Datenpunkte fĂŒr Screensaver Dimmode, interne Sensoren, Tasmota-Statuswerte, etc.
Der Pfad kann im Skript unter âNSPanel_Pathâ angepasst werden.c) Alexa
Wenn du Alexa-Devices mit dem Media-Player nutzen möchtest, dann stelle noch das Standard-Alexa-Device (Seriennummer unter âvar alexaDeviceâ) ein.
Ebenso kannst du unter alexaSpeakerList eine Liste mit vorhandenen Alexa-Devices (und/oder Gruppen) anlegen, die von diesem NSPanel-MediaPlayer aus bedient werden sollen. Bleibt diese Liste leer, werden automatisch alle Devices aus dem Alexa2-Adapter importiert.11. Aliase Anlegen
Jetzt kommt der eigentliche Teil der Seitengestaltung. Es werden keine Datenpunkte benötigt, sondern Aliase.
Ein Alias ist âkeinâ Datenpunkt, sondern ein Objekt mit mehreren Datenpunkten.
Das Skript setzt entsprechende Trigger auf die Alias-Datenpunkte .SET, .GET, .ACTUAL usw. Deshalb werden deine Steuerelemente im Panel nicht greifen, wenn du mit einzelnen Datenpunkten aus den verschiedenen Adaptern arbeitest.
Ich habe im Verlauf diverse Aliase erzeugt und auch in den ChangeLogs der jeweiligen Skript-Version sind die möglichen Aliase aufgefĂŒhrt, daher gehe ich hier nicht (wĂŒrde die Anleitung auch sprengen) im Detail auf die Aliase ein.
Was brauche ich fĂŒr einen Alias:
a) ZunĂ€chst installierst du dir eine Instanz des Adapters âGerĂ€te verwaltenâ
b) Dann erstellst du dir einen Alias (Beispiel Wetter-Icon und aktueller Wert der AuĂentemperatur) Dieser Alias muss nur einmalig angelegt werden und funktioniert somit auch in jedem weiteren Panel.

und etwas tiefer:

c) Wenn du einen Alias fĂŒr den Media-Player benötigst, dann erstelle die diesen Alias besser ĂŒber den Adapter âAlias-Managerâ,

da der Adapter âGerĂ€te verwaltenâ bei diesem Alias nicht ordentlich arbeitet. Jedoch ist der auch so Komplex, das es fĂŒr Alias-AnfĂ€nger schwer ist, einen Alias mit den korrekten Datenpunkten zu fĂŒllen.12. Seitengestaltung
Am Besten benutzt ihr die Beispiele im Skript und legt entsprechende Aliase hierzu an, die auch in diesem ioBroker-Community-Topic innerhalb der letzten Wochen beschrieben wurden.
Und noch ein paar Bilderchen:
cardEntities mit Alias Lampe/Dimmer/Switch

cardEntities mit RGB und HUE Aliasen (Color)

popupLight mit Farbtemperatur und Brightness

popupLight mit ColorWheel

cardGrid mit Radiosendern/Playlists (Alias Taste)

cardEntities mit Aliasen LautstÀrke und Info

cardEntities mit Fenster, TĂŒr, Jalousie und Verschluss

cardEntities mit Abfallkalender

cardMedia

cardAlarm

cardGrid

cardEntities

cardEntities als Subpage unter cardEntities (verschachtelt)

cardNotify

- MQTT-Adapter
-
fantastisch!! vielen Dank fĂŒr die MĂŒhe
, das werd ich dann mal als Hook nutzen um wieder ins Thema rein zu kommen.
ich hatte leider irgendwann den Ăberblick verloren und konnte nicht mehr folgen.@leone-mortuo sagte in Sonoff NSPanel:
fantastisch!! vielen Dank fĂŒr die MĂŒhe
, das werd ich dann mal als Hook nutzen um wieder ins Thema rein zu kommen.
ich hatte leider irgendwann den Ăberblick verloren und konnte nicht mehr folgen.Danke
- war auch ne Menge Arbeit...
Aber ich denke es ging vielen "Zuschauern" so und mit der soeben aktualisierten Version 2.9.0 auf GitHub doch ein guter Anlass alle Anderen, die BerĂŒhrungsĂ€ngste hatten, wieder ins Rennen zu bringen ;-) -
@leone-mortuo sagte in Sonoff NSPanel:
fantastisch!! vielen Dank fĂŒr die MĂŒhe
, das werd ich dann mal als Hook nutzen um wieder ins Thema rein zu kommen.
ich hatte leider irgendwann den Ăberblick verloren und konnte nicht mehr folgen.Danke
- war auch ne Menge Arbeit...
Aber ich denke es ging vielen "Zuschauern" so und mit der soeben aktualisierten Version 2.9.0 auf GitHub doch ein guter Anlass alle Anderen, die BerĂŒhrungsĂ€ngste hatten, wieder ins Rennen zu bringen ;-)@a200 oder @armilar das MĂ€del :-) ist bereit.
Ich habe mich anfixen lassen und habe zwei NSPanele mit Tasmota geflasht und die Einleitung von @Armilar befolgt.
Das fing schon mal sehr gut an, mit dem MQTT Server der nach einem der Updates nicht mehr funktionieren wollte. Nachdem ich ein 20 tage altes Backup zurĂŒckgespielt funktioniert es jetzt wieder.
So, wo bin ich jetzt:
Hardware geflasht
MQTT eingerichtet
Wetter eingerichtet
villeicht aber auch nicht, hatte anfangs was gesehen, jetzt aber nicht mehr.
CustomSend
Scripte kopiert / umbenannt (2 Panele)
Irgendwo zwischen den Punkten 10 und 11 den AnschluĂ verloren und ausgestiegen

Zumindest zeigen die Dinger schonmal was an.Ich mache jetzt pause, das MĂ€del ist ĂŒbermorgen wieder da, oder morgen Abend, je nach dem...
-
@a200 oder @armilar das MĂ€del :-) ist bereit.
Ich habe mich anfixen lassen und habe zwei NSPanele mit Tasmota geflasht und die Einleitung von @Armilar befolgt.
Das fing schon mal sehr gut an, mit dem MQTT Server der nach einem der Updates nicht mehr funktionieren wollte. Nachdem ich ein 20 tage altes Backup zurĂŒckgespielt funktioniert es jetzt wieder.
So, wo bin ich jetzt:
Hardware geflasht
MQTT eingerichtet
Wetter eingerichtet
villeicht aber auch nicht, hatte anfangs was gesehen, jetzt aber nicht mehr.
CustomSend
Scripte kopiert / umbenannt (2 Panele)
Irgendwo zwischen den Punkten 10 und 11 den AnschluĂ verloren und ausgestiegen

Zumindest zeigen die Dinger schonmal was an.Ich mache jetzt pause, das MĂ€del ist ĂŒbermorgen wieder da, oder morgen Abend, je nach dem...
@muchul @Armilar Geht mir Àhnlich....
Hatte meine vor 5 Monaten geflasht, bin nicht weitergekommen und sie in die Schublade gepackt.
Mit der Anleitung habe ich wieder Hoffnung gefasst. Bei mir ist auch bei Punkt 10 Ende...
Sobald ich das NSPanelTS starte kommen jede Menge Warnungen und auf dem Display bleibt das "Waiting for content ..."
Ich denke, ohne weiteren Input(vielleicht ist es nur eine Kleinigkeit) wird hier vermutlich schon wieder "Feierabend" sein.
Ich sehe im Code zwar wo ich spÀter meine Menuepunkte anpassen kann (wenn die ZusÀtzlichen Aliase angelegt sind). aber zuerst sollte es ja mal in irgendeiner Form Reaktionen und keine Warnmeldungen bringen.
Habe ich was falsch gemacht?31.5.2022, 09:35:09.422 [info ]: javascript.0 (5584) Stop script script.js.Scripts.NSPANEL_1_290 31.5.2022, 09:35:09.509 [info ]: javascript.0 (5584) script.js.Scripts.NSPANEL_1_290: compiling TypeScript source... 31.5.2022, 09:35:09.698 [info ]: javascript.0 (5584) script.js.Scripts.NSPANEL_1_290: source code did not change, using cached compilation result... 31.5.2022, 09:35:09.714 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:535:1 31.5.2022, 09:35:09.831 [info ]: javascript.0 (5584) script.js.Scripts.NSPANEL_1_290: registered 13 subscriptions and 6 schedules 31.5.2022, 09:35:13.470 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:13.470 [warn ]: javascript.0 (5584) at SendDate (script.js.Scripts.NSPANEL_1_290:958:5) 31.5.2022, 09:35:13.470 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:946:5) 31.5.2022, 09:35:13.470 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:13.470 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:13.471 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:13.471 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:35:13.471 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:947:5) 31.5.2022, 09:35:13.471 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:13.471 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:13.471 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:13.471 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:948:5) 31.5.2022, 09:35:13.471 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:13.471 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:13.472 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:13.472 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:949:5) 31.5.2022, 09:35:13.472 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:13.472 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:13.473 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:22.922 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:22.922 [warn ]: javascript.0 (5584) at SendDate (script.js.Scripts.NSPANEL_1_290:958:5) 31.5.2022, 09:35:22.922 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:946:5) 31.5.2022, 09:35:22.922 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:22.922 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:22.923 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:22.923 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:35:22.923 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:947:5) 31.5.2022, 09:35:22.923 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:22.923 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:22.923 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:22.923 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:948:5) 31.5.2022, 09:35:22.923 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:22.923 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:949:5) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:22.924 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:22.925 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:28.054 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:28.054 [warn ]: javascript.0 (5584) at SendDate (script.js.Scripts.NSPANEL_1_290:958:5) 31.5.2022, 09:35:28.054 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:946:5) 31.5.2022, 09:35:28.054 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:28.054 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:947:5) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:948:5) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:28.055 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:949:5) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:28.056 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at SendDate (script.js.Scripts.NSPANEL_1_290:958:5) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:946:5) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:947:5) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:31.352 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:948:5) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:949:5) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:31.353 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:31.354 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:31.354 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:31.354 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:31.354 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:31.354 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at SendDate (script.js.Scripts.NSPANEL_1_290:958:5) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:946:5) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:947:5) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:948:5) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:37.249 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:37.250 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:37.250 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:949:5) 31.5.2022, 09:35:37.250 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:37.250 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:37.250 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:37.250 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:37.250 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:37.250 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:37.250 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:37.251 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:37.251 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:37.251 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:37.251 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:37.251 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:43.140 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:43.140 [warn ]: javascript.0 (5584) at SendDate (script.js.Scripts.NSPANEL_1_290:958:5) 31.5.2022, 09:35:43.141 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:946:5) 31.5.2022, 09:35:43.141 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:43.141 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:43.141 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:43.141 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:35:43.141 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:947:5) 31.5.2022, 09:35:43.141 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:43.141 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:43.142 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:43.142 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:948:5) 31.5.2022, 09:35:43.142 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:43.142 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:43.142 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:43.143 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:949:5) 31.5.2022, 09:35:43.143 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:43.143 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:43.143 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:43.143 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:43.143 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:43.143 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:43.143 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:43.144 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:43.144 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:43.144 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:43.144 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:43.144 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at SendDate (script.js.Scripts.NSPANEL_1_290:958:5) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:946:5) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:947:5) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:948:5) 31.5.2022, 09:35:49.189 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:949:5) 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:49.190 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:49.191 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:49.191 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:49.191 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:49.191 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:49.191 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:55.127 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:55.127 [warn ]: javascript.0 (5584) at SendDate (script.js.Scripts.NSPANEL_1_290:958:5) 31.5.2022, 09:35:55.127 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:946:5) 31.5.2022, 09:35:55.127 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:55.127 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:55.128 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:55.128 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:35:55.128 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:947:5) 31.5.2022, 09:35:55.128 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:55.128 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:55.129 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:55.129 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:948:5) 31.5.2022, 09:35:55.129 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:55.129 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:55.130 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:35:55.130 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:949:5) 31.5.2022, 09:35:55.130 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:35:55.130 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:55.131 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:55.131 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:55.131 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:55.131 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:55.131 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:35:55.131 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:35:55.131 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:35:55.131 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:35:55.132 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:35:55.132 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:36:00.005 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:36:00.005 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:36:00.006 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:511:5) 31.5.2022, 09:36:01.134 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:36:01.134 [warn ]: javascript.0 (5584) at SendDate (script.js.Scripts.NSPANEL_1_290:958:5) 31.5.2022, 09:36:01.134 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:946:5) 31.5.2022, 09:36:01.134 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:36:01.134 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:36:01.135 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:36:01.135 [warn ]: javascript.0 (5584) at SendTime (script.js.Scripts.NSPANEL_1_290:970:5) 31.5.2022, 09:36:01.135 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:947:5) 31.5.2022, 09:36:01.135 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:36:01.135 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:36:01.135 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:36:01.135 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:948:5) 31.5.2022, 09:36:01.135 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:36:01.135 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:859:9) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at HandleStartupProcess (script.js.Scripts.NSPANEL_1_290:949:5) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:877:17) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at script.js.Scripts.NSPANEL_1_290:853:13 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at SendToPanel (script.js.Scripts.NSPANEL_1_290:852:13) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at GeneratePage (script.js.Scripts.NSPANEL_1_290:911:13) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at HandleMessage (script.js.Scripts.NSPANEL_1_290:879:17) 31.5.2022, 09:36:01.136 [warn ]: javascript.0 (5584) at Object.<anonymous> (script.js.Scripts.NSPANEL_1_290:847:9)Nachtrag:
Habe gerade gesehen, dass der Datenpunkt "SmartHome/NSPanel_1/cmnd/CustomSend" nicht mehr da ist. Vorhin war er noch da.
Jetzt kann ich diesen mit âCustomSend time~12:00â in der Konsole leider nicht mehr anlegen (Heute Morgen gings noch). In der Tasmotaconsole kommen die normalen Meldungen.
Nachtrag 2: Hab den Datenpunkt manuell angelegt. Jetzt zeigt mir das Panel die Uhrzeit und das Datum....Werde wohl doch weiter "wursteln". -
@leone-mortuo sagte in Sonoff NSPanel:
fantastisch!! vielen Dank fĂŒr die MĂŒhe
, das werd ich dann mal als Hook nutzen um wieder ins Thema rein zu kommen.
ich hatte leider irgendwann den Ăberblick verloren und konnte nicht mehr folgen.Danke
- war auch ne Menge Arbeit...
Aber ich denke es ging vielen "Zuschauern" so und mit der soeben aktualisierten Version 2.9.0 auf GitHub doch ein guter Anlass alle Anderen, die BerĂŒhrungsĂ€ngste hatten, wieder ins Rennen zu bringen ;-)Ja das Glaub ich sofort, kenne das selbst - um so mehr is ein DANK! mehr als angebracht.
Das geht ja leider mittlerweile oftmals in den ganzen Foren all zu gerne unter,
dass sich Leute viel Aufwand machen und ihre Zeit investieren und man dafĂŒr auch die nötige Anerkennung aufbringen sollte.ich hatte leider noch keine Zeit die Sache von vorne anzugehen - aber ich bin guter Dinge das das jetzt klappt :)
In den kommenden Tagen werd ich mal loslegen. vll. kann ich dann auch ein wenig unterstĂŒtzen an der ein oder anderen Stelle.GrĂŒĂe gehen raus. John.
-
Danke fĂŒr das tolle Skript. Mega Arbeit đ
Kannst du mehr Infos zur cardQR geben?
Wie muss der Alias dafĂŒr aussehen?@mayan sagte in Sonoff NSPanel:
Danke fĂŒr das tolle Skript. Mega Arbeit đ
Kannst du mehr Infos zur cardQR geben?
Wie muss der Alias dafĂŒr aussehen?Gerne ;-)
Ach ja, da fehlt ja noch, wie die cardQR arbeitet

Einfacher Alias "Info" auf Datenpunkt in 0_userdata.0.

und in dem Datenpunkt steht:

Wobei (ihr ahnt es bestimmt schon) die nachfolgenden Parameter fĂŒr:
T = VerschlĂŒsselung
S = SSID
P = Password
H = Hidden (In meinem Fall also sichtbar fĂŒr GĂ€ste)
stehen. Und das wars auch schon ;-) - den QR-Code baut dann das Panel aus den Informationen.Viel SpaĂ mit der cardQR
-
@armilar Nochmals Danke fĂŒr die MĂŒhe die du dir mit der Anleitung gemacht hast.
Was ich aber in den ganzen Posts nicht finden konnte ist die Navigation.
Nach der Screenschonerseite kommt meine "BĂŒro"Seite. Die Lampen kann ich schalten und auch der Fensterzustand wird angezeigt.
Rechts oben ist so ein Navigationspfeil. Wenn ich auf den klicke kommt irgendeine Temperaturseite die 0,0 Grad mit Pfeil oben/unten scheinbar zu verstellen ist. Wie bekomme ich diese weg? Von dieser Seite geht es weder vor noch zurĂŒck. Nach dem nĂ€chsten Svreensaver-intervall lande ich wieder darauf. Erst wenn ich den Strom wegnehme komme ich wieder auf meine "BĂŒro" Seite.
Gibt es irgendeine Anleitung wie das mit den Verschiedenen Ansichten und die Navigation zu diesen Beschreibt.
An der Stelle hÀnge ich schon den ganzen Mittag... -
@armilar Nochmals Danke fĂŒr die MĂŒhe die du dir mit der Anleitung gemacht hast.
Was ich aber in den ganzen Posts nicht finden konnte ist die Navigation.
Nach der Screenschonerseite kommt meine "BĂŒro"Seite. Die Lampen kann ich schalten und auch der Fensterzustand wird angezeigt.
Rechts oben ist so ein Navigationspfeil. Wenn ich auf den klicke kommt irgendeine Temperaturseite die 0,0 Grad mit Pfeil oben/unten scheinbar zu verstellen ist. Wie bekomme ich diese weg? Von dieser Seite geht es weder vor noch zurĂŒck. Nach dem nĂ€chsten Svreensaver-intervall lande ich wieder darauf. Erst wenn ich den Strom wegnehme komme ich wieder auf meine "BĂŒro" Seite.
Gibt es irgendeine Anleitung wie das mit den Verschiedenen Ansichten und die Navigation zu diesen Beschreibt.
An der Stelle hÀnge ich schon den ganzen Mittag...@docgame sagte in Sonoff NSPanel:
@armilar Nochmals Danke fĂŒr die MĂŒhe die du dir mit der Anleitung gemacht hast.
Was ich aber in den ganzen Posts nicht finden konnte ist die Navigation.
Nach der Screenschonerseite kommt meine "BĂŒro"Seite. Die Lampen kann ich schalten und auch der Fensterzustand wird angezeigt.
Rechts oben ist so ein Navigationspfeil. Wenn ich auf den klicke kommt irgendeine Temperaturseite die 0,0 Grad mit Pfeil oben/unten scheinbar zu verstellen ist. Wie bekomme ich diese weg? Von dieser Seite geht es weder vor noch zurĂŒck. Nach dem nĂ€chsten Svreensaver-intervall lande ich wieder darauf. Erst wenn ich den Strom wegnehme komme ich wieder auf meine "BĂŒro" Seite.
Gibt es irgendeine Anleitung wie das mit den Verschiedenen Ansichten und die Navigation zu diesen Beschreibt.
An der Stelle hĂ€nge ich schon den ganzen Mittag...Im Config-Teil (siehe folgenden Codebereich) werden die Seiten der Reihe nach definiert. Das ist auch die MenĂŒ-Reihenfolge. Ich habe jetzt mal im folgenden Block die Seite "Buero_Klimaanlage" mit "//"auskommentiert. Kannst sie natĂŒrlich auch löschen. Somit kannst du dir dein eigenes MenĂŒ zusammenstellen.
export const config: Config = { panelRecvTopic: "mqtt.0.SmartHome.NSPanel_EMU.tele.RESULT", //anpassen panelSendTopic: "mqtt.0.SmartHome.NSPanel_EMU.cmnd.CustomSend", //anpassen firstScreensaverEntity: { ScreensaverEntity: "hmip.0.devices.3014F711A000185BE9922BCF.channels.1.humidity", ScreensaverEntityIcon: "water-percent", ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" }, secondScreensaverEntity: { ScreensaverEntity: "accuweather.0.Daily.Day1.Day.PrecipitationProbability", ScreensaverEntityIcon: "weather-pouring", ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" }, thirdScreensaverEntity: { ScreensaverEntity: "0_userdata.0.Wetter.Windstaerke_homaticIP", ScreensaverEntityIcon: "weather-windy", ScreensaverEntityText: "Wind", ScreensaverEntityUnitText: "bft" }, fourthScreensaverEntity: { ScreensaverEntity: "accuweather.0.Current.UVIndex", ScreensaverEntityIcon: "solar-power", ScreensaverEntityText: "UV", ScreensaverEntityUnitText: "" }, timeoutScreensaver: 15, dimmode: 90, screenSaverDoubleClick: false, locale: "de_DE", timeFormat: "%H:%M", dateFormat: "%A, %d. %B %Y", weatherEntity: "alias.0.Wetter", defaultOffColor: Off, defaultOnColor: On, defaultColor: Off, temperatureUnit: "°C", pages: [ Buero_Seite_1, Radio, //Buero_Klimaanlage, WLAN, Button_1, Test_Licht, Test_Funktionen, Fenster_1, Subpages_1, Alexa, Buero_Themostat, Buero_Alarm, Service ], button1Page: button1Page, button2Page: button2Page };Im Prinzip kannst du dir also eine eigene Seite machen (musst nicht das ĂŒbernehmen, was im Beispiel ist). Alles was man hierfĂŒr benötigt ist die Zugehörige-Variablen-Deklaration. Nehmen wir an du möchtest eine cardEntities (also 4 Steuerelemente vertikal) mit speziellen Sensoren. Das könnte dann in der Deklaration so aussehen:
var DocGame_Seite_1: PageEntities = { "type": "cardEntities", "heading": "DocGames Headline 1", "useColor": true, "subPage": false, "items": [ <PageItem>{ id: "alias.0.NSPanel_1.DocGames-Alias-von-Sensor-1", name: "Sensordaten 1"} ] };Dann wĂŒrde die Config bei dir so aussehen:
export const config: Config = { panelRecvTopic: "mqtt.0.SmartHome.NSPanel_EMU.tele.RESULT", //anpassen panelSendTopic: "mqtt.0.SmartHome.NSPanel_EMU.cmnd.CustomSend", //anpassen firstScreensaverEntity: { ScreensaverEntity: "hmip.0.devices.3014F711A000185BE9922BCF.channels.1.humidity", ScreensaverEntityIcon: "water-percent", ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" }, secondScreensaverEntity: { ScreensaverEntity: "accuweather.0.Daily.Day1.Day.PrecipitationProbability", ScreensaverEntityIcon: "weather-pouring", ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" }, thirdScreensaverEntity: { ScreensaverEntity: "0_userdata.0.Wetter.Windstaerke_homaticIP", ScreensaverEntityIcon: "weather-windy", ScreensaverEntityText: "Wind", ScreensaverEntityUnitText: "bft" }, fourthScreensaverEntity: { ScreensaverEntity: "accuweather.0.Current.UVIndex", ScreensaverEntityIcon: "solar-power", ScreensaverEntityText: "UV", ScreensaverEntityUnitText: "" }, timeoutScreensaver: 15, dimmode: 90, screenSaverDoubleClick: false, locale: "de_DE", timeFormat: "%H:%M", dateFormat: "%A, %d. %B %Y", weatherEntity: "alias.0.Wetter", defaultOffColor: Off, defaultOnColor: On, defaultColor: Off, temperatureUnit: "°C", pages: [ DocGame_Seite_1 ], button1Page: button1Page, button2Page: button2Page };Und weil nur ein <PageItem> definiert ist, wird auch nur ein Sensor (Steueelement) visualisiert.
Wenn du aber jetzt die "Klimaanlage" nutzen möchtest, dann wĂŒrde die Variablendeklaration z.B. folgendermaĂen aussehen:
var DocGame_Seite_6 : PageThermo = { "type": "cardThermo", "heading": "Klimaanlage im SZ", "useColor": true, "subPage": false, "items": [<PageItem>{ id: "alias.0.NSPanel_1.Alias-vom-Typ-Klimaanlage", minValue: 170, maxValue: 250}] };Und im Alias-vom-Typ-Klimaanlage steht dann:


natĂŒrlich nicht die Beispieldaten aus 0_userdata.0. sondern aus den echten Datenpunkten der Klimaanlage.
Gleiches gilt fĂŒr den Thermostaten (jetzt wĂŒrdest du aber nicht den Alias "Klimaanlage" verwenden, sondern den Alias "Thermostat"). Wenn dann entsprechend mit dem Alias angelegt, dann wĂŒrde aus der 0 die Setpoint-Temoeratur werden, welche sich dann ĂŒber die Pfeiltasten steuern lĂ€sst. Im Beispiel ist ebenfalls noch ein minValue und ein maxValue genannt. Wenn diese Parameter vorhanden sind, kann der Thermostat/oder alternativ die Klimaanlage ĂŒber eine Mindestraumtemperatur bis Maximalraumtemperatur gesteuert werden.
°
Nehmen wir an, du hÀttest einen Thermostaten von Max!: Dieser Thermostat arbeitet von 4,5°C - 30,5°C. Also gebe ich ihm die Parameter minValue: 45, maxValue 305 im PageItem mit. Dann lÀsst sich der Thermostat auch nur noch von 4,5°C - 30,5°C steuern. Hast du eienen von homaticIP, dann wÀre die Mindestraumtemperatur (Setpoint) bei 5°C, also minValue : 50 -
Die cardQR funktioniert super.
Habe aber noch 5 Probleme- Wenn ich die Card QR als âsubPageâ:true einstelle, bekomme ich weiterhin Navigation vor und zurĂŒck (kein direktes zurĂŒck zur Startseite)
- Wenn ich auf einer subPage bin und dort z.B. eine Lampe schalte, springt das Display sofort nach dem Schalten auf die Hauptseite zurĂŒck. Es wĂ€re schön wenn es auf der subPage bleibt, damit ich dort noch andere Schalter betĂ€tigen kann
- Meldungen (popupNotify) im Screensaver werden nach Aktualisierungen der Wetterdaten ĂŒberschrieben (bleiben im Hintergrund und die Wettersymbole legen sich drĂŒber. Sieht seltsam aus)

WÀre ein Datenpunkt true/false möglich, der bei true den popupNotify anzeigt und bei false wieder das Wetter? - Auf der button1Page fehlen die Navigationspfeile
(auf der button2Page sind sie vorhanden)
Kann ich das irgendwo einstellen? - Seiten vom Typ cardGrid funktionieren nur noch als Taster (nur Alias Typ Taster, Alias vom Typ Licht verursachen Fehlermeldungen)
Ich hatte schon die VorgÀngerversionen am Laufen. Dort ging es mal. (Version ohne PopupNotify-Pages)
Sonst lÀuft alles Perfekt!
-
Die cardQR funktioniert super.
Habe aber noch 5 Probleme- Wenn ich die Card QR als âsubPageâ:true einstelle, bekomme ich weiterhin Navigation vor und zurĂŒck (kein direktes zurĂŒck zur Startseite)
- Wenn ich auf einer subPage bin und dort z.B. eine Lampe schalte, springt das Display sofort nach dem Schalten auf die Hauptseite zurĂŒck. Es wĂ€re schön wenn es auf der subPage bleibt, damit ich dort noch andere Schalter betĂ€tigen kann
- Meldungen (popupNotify) im Screensaver werden nach Aktualisierungen der Wetterdaten ĂŒberschrieben (bleiben im Hintergrund und die Wettersymbole legen sich drĂŒber. Sieht seltsam aus)

WÀre ein Datenpunkt true/false möglich, der bei true den popupNotify anzeigt und bei false wieder das Wetter? - Auf der button1Page fehlen die Navigationspfeile
(auf der button2Page sind sie vorhanden)
Kann ich das irgendwo einstellen? - Seiten vom Typ cardGrid funktionieren nur noch als Taster (nur Alias Typ Taster, Alias vom Typ Licht verursachen Fehlermeldungen)
Ich hatte schon die VorgÀngerversionen am Laufen. Dort ging es mal. (Version ohne PopupNotify-Pages)
Sonst lÀuft alles Perfekt!
@mayan sagte in Sonoff NSPanel:
Wenn ich auf einer subPage bin und dort z.B. eine Lampe schalte, springt das Display sofort nach dem Schalten auf die Hauptseite zurĂŒck. Es wĂ€re schön wenn es auf der subPage bleibt, damit ich dort noch andere Schalter betĂ€tigen kann
Zu 1) Habe die cardQR noch nie als subPage genutzt --> sehe ich mir an --> vermute, das die nur die Standard 1/1 Navigation benutzt --> Bugfix folgt...
Zu 2) Habe aktuell das gleiche Verhalten in der subPage und bin am suchen ;-) --> Bugfix folgt...
Zu 3) Habe ich auch schon gehabt (eher selten), jedoch wĂ€re das ein Thema fĂŒr @joBr99 --> Beim ersten Mal sieht es gut aus. Wenn eine weitere Nachricht (Notify) an den geöffneten Screensaver ĂŒbertragen wird, dann passiert genau das.
Zu 4) Die button1Page und button2Page sind keine Pages, die im regulĂ€ren MenĂŒ sind, sondern wie im Skript Header beschrieben ĂŒber die zwei Hardware-Buttons unten am Panel als zum Beispiel "Favoriten"-Seiten arbeiten. Wenn die button2Page MenĂŒpfeile hat, dann wĂ€re das ein Bug ;-) . Die beiden Tasten liefern nĂ€mlich keine Page-Id und somit können die als MenĂŒseite nicht gesteuert werden. Wir emulieren die Page-ID in dem ein negativer Wert angenommen wird, der mit verlassen ĂŒber den Screensaver wieder 0 wird.Die Hardware-Buttons steuern regulĂ€r die Relais (als Lichtschalter), können aber alternativ auch als "Sonderseiten ohne MenĂŒ" fungieren. Dazu mĂŒsste die o.a. Rule2 aus dem Skript im Tasmota definiert und aktiviert werden. Oder etwas abgewandelt wĂŒrde auch eine Favoritenpage und ein Schalter funktionieren.
Die button1Page oder button2Page wĂŒrde ich aber auch nicht in das MenĂŒ unter pages aufnehmen, sondern dann eine neue cardGrid oder cardEntities bauen, die einen abweichenden Variablennamen hat (z.B. Seite_9 ;-) , aber sonst die gleichen <pageItem> wie z. B. in der button1Page aufruft)
Zu 5) Sehe ich mir ebenfalls an. Kann nichts weltbewegendes sein --> Bugfix folgt
-
Nochmal zu 4.
Wenn du im Skript unter
funktion HandleaHardwareButton
config.button1Page pageId von -1 auf -2 stellst, sind die Navigationspfeile vorhanden.
Wenn ich die button1Page als subPage: true stelle, habe ich einen zurĂŒck Pfeil.Ich benötige eine Navigation um aus den beiden Button Seiten wieder raus zu kommen. Sonst muss ich immer warten bis der Screensaver kommt. Ich nutze die beiden Buttons als Favoriten Seiten, da ich die Relais nicht benötige.
-
Nochmal zu 4.
Wenn du im Skript unter
funktion HandleaHardwareButton
config.button1Page pageId von -1 auf -2 stellst, sind die Navigationspfeile vorhanden.
Wenn ich die button1Page als subPage: true stelle, habe ich einen zurĂŒck Pfeil.Ich benötige eine Navigation um aus den beiden Button Seiten wieder raus zu kommen. Sonst muss ich immer warten bis der Screensaver kommt. Ich nutze die beiden Buttons als Favoriten Seiten, da ich die Relais nicht benötige.
@mayan sagte in Sonoff NSPanel:
Nochmal zu 4.
Wenn du im Skript unter
funktion HandleaHardwareButton
config.button1Page pageId von -1 auf -2 stellst, sind die Navigationspfeile vorhanden.
Wenn ich die button1Page als subPage: true stelle, habe ich einen zurĂŒck Pfeil.Ich benötige eine Navigation um aus den beiden Button Seiten wieder raus zu kommen. Sonst muss ich immer warten bis der Screensaver kommt. Ich nutze die beiden Buttons als Favoriten Seiten, da ich die Relais nicht benötige.
Ich sehe mal was sich da machen lĂ€sst. Da die cardEntities und die cardGrid nicht ĂŒber ein "x" zum verlassen der Dialoge (analog popUp) verfĂŒgen, könnte der Pfeil den Screensaver frĂŒher holen oder einen Seitenaufbau Seite "0" initiieren. Mal sehen was da geht.
Werde aber in dieser Woche wenig bis keine Zeit dazu haben. Wird also eher Wochenende oder Anfang nÀchster Woche...
-
@mayan sagte in Sonoff NSPanel:
Wenn ich auf einer subPage bin und dort z.B. eine Lampe schalte, springt das Display sofort nach dem Schalten auf die Hauptseite zurĂŒck. Es wĂ€re schön wenn es auf der subPage bleibt, damit ich dort noch andere Schalter betĂ€tigen kann
Zu 1) Habe die cardQR noch nie als subPage genutzt --> sehe ich mir an --> vermute, das die nur die Standard 1/1 Navigation benutzt --> Bugfix folgt...
Zu 2) Habe aktuell das gleiche Verhalten in der subPage und bin am suchen ;-) --> Bugfix folgt...
Zu 3) Habe ich auch schon gehabt (eher selten), jedoch wĂ€re das ein Thema fĂŒr @joBr99 --> Beim ersten Mal sieht es gut aus. Wenn eine weitere Nachricht (Notify) an den geöffneten Screensaver ĂŒbertragen wird, dann passiert genau das.
Zu 4) Die button1Page und button2Page sind keine Pages, die im regulĂ€ren MenĂŒ sind, sondern wie im Skript Header beschrieben ĂŒber die zwei Hardware-Buttons unten am Panel als zum Beispiel "Favoriten"-Seiten arbeiten. Wenn die button2Page MenĂŒpfeile hat, dann wĂ€re das ein Bug ;-) . Die beiden Tasten liefern nĂ€mlich keine Page-Id und somit können die als MenĂŒseite nicht gesteuert werden. Wir emulieren die Page-ID in dem ein negativer Wert angenommen wird, der mit verlassen ĂŒber den Screensaver wieder 0 wird.Die Hardware-Buttons steuern regulĂ€r die Relais (als Lichtschalter), können aber alternativ auch als "Sonderseiten ohne MenĂŒ" fungieren. Dazu mĂŒsste die o.a. Rule2 aus dem Skript im Tasmota definiert und aktiviert werden. Oder etwas abgewandelt wĂŒrde auch eine Favoritenpage und ein Schalter funktionieren.
Die button1Page oder button2Page wĂŒrde ich aber auch nicht in das MenĂŒ unter pages aufnehmen, sondern dann eine neue cardGrid oder cardEntities bauen, die einen abweichenden Variablennamen hat (z.B. Seite_9 ;-) , aber sonst die gleichen <pageItem> wie z. B. in der button1Page aufruft)
Zu 5) Sehe ich mir ebenfalls an. Kann nichts weltbewegendes sein --> Bugfix folgt
@armilar said in Sonoff NSPanel:
Zu 3) Habe ich auch schon gehabt (eher selten), jedoch wĂ€re das ein Thema fĂŒr @joBr99 --> Beim ersten Mal sieht es gut aus. Wenn eine weitere Nachricht (Notify) an den geöffneten Screensaver ĂŒbertragen wird, dann passiert genau das.
Die screensaver notifications verwende ich nirgends in meinem backend, aber ich gehe davon aus, das ich bei mir das selbe verhalten hÀtte. Ich schaue mal ob ich die notification nach dem wetter update neu rendern kann.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden