NEWS
SONOFF NSPanel mit Lovelace UI
-
@armilar also ich hab es gerade mit der 3.6.0.4 probiert, da ist es dasselbe, frühere habe ich leider nicht mehr zum testen. Aber mit ist gerade das noch aufgefallen nach dem ich das Display angetippt habe.
21:06:25.944 MQT: tele/NS-Panel-Garage_0E3BFC/RESULT = {"CustomRecv":"event,buttonPress2,screensaver,bExit,1"} 21:06:26.344 MQT: tele/NS-Panel-Garage_0E3BFC/RESULT = {"CustomRecv":"event,buttonPress2,screensaver,swipeUp"} 21:06:26.647 MQT: tele/NS-Panel-Garage_0E3BFC/RESULT = {"CustomRecv":"event,buttonPress2,screensaver,bExit,3"} 21:06:26.945 MQT: tele/NS-Panel-Garage_0E3BFC/RESULT = {"CustomRecv":"event,buttonPress2,screensaver,bExit,4"}Ich überlege gerade was denn so anders an einem Neustart des ioBrokers sein könnte...
Teste mal bitte folgendes:
Bei ca. Zeile 1300 ist der Start zur Initialisierung des Panels...
sieht so aus:
// Mit Start auf Updates checken get_locales(); setState(config.panelSendTopic, 'pageType~pageStartup'); get_tasmota_status0(); get_panel_update_data(); check_updates(); //------------------Begin Update FunctionsDen mal suchen und
HandleStartupProcess();anhängen
Also so:
// Mit Start auf Updates checken get_locales(); setState(config.panelSendTopic, 'pageType~pageStartup'); get_tasmota_status0(); get_panel_update_data(); check_updates(); HandleStartupProcess();Also mehr wie ein Starthilfekabel...
Danach mal den ioBroker durchstarten
-
Ich überlege gerade was denn so anders an einem Neustart des ioBrokers sein könnte...
Teste mal bitte folgendes:
Bei ca. Zeile 1300 ist der Start zur Initialisierung des Panels...
sieht so aus:
// Mit Start auf Updates checken get_locales(); setState(config.panelSendTopic, 'pageType~pageStartup'); get_tasmota_status0(); get_panel_update_data(); check_updates(); //------------------Begin Update FunctionsDen mal suchen und
HandleStartupProcess();anhängen
Also so:
// Mit Start auf Updates checken get_locales(); setState(config.panelSendTopic, 'pageType~pageStartup'); get_tasmota_status0(); get_panel_update_data(); check_updates(); HandleStartupProcess();Also mehr wie ein Starthilfekabel...
Danach mal den ioBroker durchstarten
@armilar said in SONOFF NSPanel mit Lovelace UI:
HandleStartupProcess();
Bringt leider keine Änderung
diese Zeile ist jetzt mit aufgetaucht21:24:18.112 RSL: RESULT = {"nlui_driver_version":"8"}
diese Meldungen sind im Iobroker zu sehen wenn ich nach dem Neustart auf das Display tippe
-
@armilar said in SONOFF NSPanel mit Lovelace UI:
HandleStartupProcess();
Bringt leider keine Änderung
diese Zeile ist jetzt mit aufgetaucht21:24:18.112 RSL: RESULT = {"nlui_driver_version":"8"}
diese Meldungen sind im Iobroker zu sehen wenn ich nach dem Neustart auf das Display tippe
Das ist eigentlich die wichtige Zeile:
setState(config.panelSendTopic, 'pageType~pageStartup');Wenn
pageType~pageStartupim CustomSend landet muss das Panel mit{"CustomRecv":"event,startup,46,eu"}antworten.
Dann wird der Startup eingeleitet
-
Das ist eigentlich die wichtige Zeile:
setState(config.panelSendTopic, 'pageType~pageStartup');Wenn
pageType~pageStartupim CustomSend landet muss das Panel mit{"CustomRecv":"event,startup,46,eu"}antworten.
Dann wird der Startup eingeleitet
-
-
Aber warum wird es dann bei dir nicht mit dem Skriptstart übermittelt?
Es sei denn der MQTT ist noch nicht bereit...
-
Das Skript kümmert sich nicht darum, ob der MQTT da ist oder nicht. Es geht davon aus, dass der MQTT in der Reihenfolge vor dem JS da ist...
-
Das Skript kümmert sich nicht darum, ob der MQTT da ist oder nicht. Es geht davon aus, dass der MQTT in der Reihenfolge vor dem JS da ist...
-
@armilar der ioBroker startet aber die Instanzen der Reihe nach oder? Dann kommt JS vor MQTT

// Mit Start auf Updates checken get_locales(); setState(config.panelSendTopic, 'pageType~pageStartup'); get_tasmota_status0(); get_panel_update_data(); check_updates(); setTimeout(async function () { setState(config.panelSendTopic, 'pageType~pageStartup'); }, 60000);Gleiche Stelle wie eben nur jetzt noch ein zeitversetztes Startup (eine Minute später)
Mal sehen, ob der das packt
-
// Mit Start auf Updates checken get_locales(); setState(config.panelSendTopic, 'pageType~pageStartup'); get_tasmota_status0(); get_panel_update_data(); check_updates(); setTimeout(async function () { setState(config.panelSendTopic, 'pageType~pageStartup'); }, 60000);Gleiche Stelle wie eben nur jetzt noch ein zeitversetztes Startup (eine Minute später)
Mal sehen, ob der das packt
@armilar said in SONOFF NSPanel mit Lovelace UI:
setTimeout(async function () {
Jep
funktioniertich habe mal beobachtet wie der Start verläuft, wenn du die Uhrzeit anschaust, es ist über 1 Minute zwischen den Starts
mqtt.0 2022-12-29 22:09:24.112 info Client [DVES_0E3BFC] subscribes on "cmnd/NS-Panel-Garage_0E3BFC/#" with regex /^cmnd\.NS-Panel-Garage_0E3BFC(\..*)?/ javascript.0 2022-12-29 22:08:03.555 info script.js.Ns-Panels.Garage-3_7_3: compiling TypeScript source... -
@armilar said in SONOFF NSPanel mit Lovelace UI:
setTimeout(async function () {
Jep
funktioniertich habe mal beobachtet wie der Start verläuft, wenn du die Uhrzeit anschaust, es ist über 1 Minute zwischen den Starts
mqtt.0 2022-12-29 22:09:24.112 info Client [DVES_0E3BFC] subscribes on "cmnd/NS-Panel-Garage_0E3BFC/#" with regex /^cmnd\.NS-Panel-Garage_0E3BFC(\..*)?/ javascript.0 2022-12-29 22:08:03.555 info script.js.Ns-Panels.Garage-3_7_3: compiling TypeScript source...Versuch den mal von einer Minute (60000ms) runter zu schrauben. Z.B. auf 15000ms
EDIT: bei einer Minute lagen wir dann schon richtig...
Und vegleiche kurz die MQTT Einstellungen. Das sind meine:

-
Versuch den mal von einer Minute (60000ms) runter zu schrauben. Z.B. auf 15000ms
EDIT: bei einer Minute lagen wir dann schon richtig...
Und vegleiche kurz die MQTT Einstellungen. Das sind meine:

-
@tomduke sagte in SONOFF NSPanel mit Lovelace UI:
alles gut, sitze auch nicht ständig am Mac, bin ja froh das du mir hilfst
Hm... ist auch alles Top
Wir sollten kurz die erweiterte Protokollierung anschalten, damit man lokalisieren kann wo die Warnungen auftauchen...
oben in der Ecke ist ein Schraubenschlüssel


Haken rein und einmal Script durchstarten

Dann das Log senden in dem die Warnungen sind und ein wenig normale Meldungen drumherum...
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"}) -
@armilar bei den MQTT Einstellungen ist bei mir ein Haken bei "Sende auch Zustände" noch gesetzt. Sonst ist alles gleich.
dann belasse ich es bei 60000, wenns funktioniert.
Ich versuche mal herauszubekommen, wann der Start vom MQTT ist und zögere das Startup hinaus. Kann ja eigentlich nicht schaden...
EDIT: aber heute nicht mehr

-
Ich versuche mal herauszubekommen, wann der Start vom MQTT ist und zögere das Startup hinaus. Kann ja eigentlich nicht schaden...
EDIT: aber heute nicht mehr

-
Wie immer gerne

-

Unteren Teil ersetzen:
https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs.tsDas TS-Script legt 2 neue Datenpunkte an:

In Weekday oder Month
shorteintragen. Dann sollte es ein kurzes Datumsformat geben.EDIT: Funktioniert natürlich auch mit der eu Version. Nur da ist es nicht wirklich erforderlich...
-
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
war jedenfalls von Erfolg gekrönt