NEWS
SONOFF NSPanel mit Lovelace UI
-
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
-
@armilar said in SONOFF NSPanel mit Lovelace UI:
setTimeout(async function () {
Jep funktioniert
ich 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:
-
@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. -
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"})
-
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
-
@armilar war jedenfalls von Erfolg gekrönt Danke Dir
-
Wie immer gerne
-
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
-
@armilar said in SONOFF NSPanel mit Lovelace UI:
Alternativ einen der unteren Icons opfern und die Sensor-Temperatur vom NSPanel einsetzen.
Entweder das oder eines der Icons links oder rechts von dem Strich in der Mitte mit der Temperatur ersetzen (wenn das unter ioBroker geht)
-
Wenn man die Warnungen sieht, dann fällt mir auf, dass die schon bei einer einfachen Funktion, wie z.B. dem Senden der Zeit ausgelöst werden.
Welche nodeJS Version ist installiert?
kurz in der Linux-Console
node -v
ausführen. Dein JS-Adapter muss ja neu sein, da die Aliase angelegt werden...
-
Ich würde dennoch mal die Farbdefinitionen für den Screensaver checken. Ich glaube die Vermutung dass da eine Farbdefinition fehlt, ist gar nicht so abwägig.
-
22:19:00.013 warn javascript.0 (16857) at SendTime (script.js.common.NSPanelTS_ts:2600:9)
Aber warum sollte beim Senden der Zeit eine Warnung ausgelöst werden?
function SendTime(): void { try { const d = new Date(); const hr = (d.getHours() < 10 ? '0' : '') + d.getHours(); const min = (d.getMinutes() < 10 ? '0' : '') + d.getMinutes(); SendToPanel(<Payload>{ payload: 'time~' + hr + ':' + min }); } catch (err) { console.warn('function SendTime: ' + err.message); } }
Ich denke das hat einen anderen Hintergrund
-
@armilar Hi Leutz
Ich schon wieder. Bin gerade an der Subpage Guest_Wifi. Ich habe einen Alias angelegt. Diesen muss ich ja im Script anpassen.
Was soll den in den Alias rein? Ich denke hier ist das Passwort hinterlegt. Ist das dann eine Info mit dem Aktuellwert? Ich habe keine Ahnung. Gibt es hierzu schon etwas zum nachlesen? Auf github ist zwar die cardqr beschrieben, verstehe ich aber nicht wirklich.Ist der QR-Code dann nur ein icon oder kann man den real abscannen?
Ist dann ja eigendlich überflüssig, da er ja rechts daneben angezeigt wird. Nehme ich jedenfalls an.LG aus dem Sauerland
Jörg -
Ich habe ein Problem mit den MQTT Einstellungen. Ich möchte die Hardwarebuttons per Rule nutzen. Die Objektstruktur sieht für mich aber nicht korrekt aus. Wo liegt mein Fehler?
Folgende Settings habe ich:Rule2 on Button1#state do Publish NSPanel/%topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish NSPanel/%topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
Rule2 1
21:51:59.833 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:51:59.938 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:00.045 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:06.513 RUL: BUTTON1#STATE performs "Publish NSPanel/nspanel_1/%prefix%/RESULT {"CustomRecv":"event,button1"}" 21:52:06.521 MQT: NSPanel/nspanel_1/%prefix%/RESULT = {"CustomRecv":"event,button1"} 21:52:20.767 RUL: BUTTON2#STATE performs "Publish NSPanel/nspanel_1/%prefix%/RESULT {"CustomRecv":"event,button2"}" 21:52:20.774 MQT: NSPanel/nspanel_1/%prefix%/RESULT = {"CustomRecv":"event,button2"} 21:52:29.946 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"} 21:52:30.055 MQT: NSPanel/nspanel_1/stat/RESULT = {"CustomSend":"Done"}
-
-
Hier im Wiki kannst du das nochmal nachlesen. Du hast ein Fehler in den Rules