NEWS
SONOFF NSPanel mit Lovelace UI
-
@ticaki Was meinst du mit Topic
-
@max_yeah
2 mal der gleiche mqtt topic / Datenpunkt in 2 skripten -
@ticaki ok ich hab gestern nur ein paar neue Chart Seiten hinzugefügt, glaube also nicht das ich da, was kaputt gemacht hab. Aber Genaueres kann ich erst heute Abend sagen.
-
Die Firmware macht nix von sich aus. Da muss für alles ein Befehl an das Panel gesendet werden.
Ich weiß gerade nicht ob die Tasmotaregel im Skript ist, aber sogar der laufende Kreis ist ein Befehl von extern. Wenn die Regel im Skript ist wird der laufende Kreis nach 90 sek ohne Aktivität befohlen ( Zeit kommt alle 60 sek rein). Oder wenn das Skript im Startup ist
-
@ticaki Der "wait vor content" Kreis existiert doch auch ohne Script?
-
@max_yeah
Starte mal die JavaScript Instanzen neu. In seltenen Fällen kann dasselbe Skript mehrfach laufen. -
@max_yeah
Ja stimmt ist die Startseite, übersehenEdit: also nach einem tasmota reboot wird die angezeigt, aber anschließend nur noch auf befehl
-
@ticaki
ah guter Punkt, hatte gestern schon den Javascript Adapter neu gestartet, weil ich npm module hinzugefügt hab für WOL (node-wol, wake_on_lan).Ein Neustart des js Adpaters hat es gefixt, danke. Dann hat es wohl echt nichts mit der Firmware zu tun, weil oft starte ich den ja nicht neu.
Kann es damit zu tun haben, in welcher Reihenfolge die Scripte gestartet werden? Könnte es sein das ein Hilfscript, das vielleicht vor dem eigentlichen Panel Script startet, da was blockiert?
Wie definiert sich die Reihenfolge, in der die Scripte gestartet werden?
-
Ne doppelt laufende Skripte kommen, ohne ins Detail zu gehen, dann vor wenn man aufwändige Skripte im startup neustartet. Kann das gerne heute Abend weniger nebulöse beschreiben, hat was mit callbacks zu tun. Das mache ich aber net am Handy
-
Die etwas längere Version:
Im groben dürfte es stimmen, im Detail mag ich falsche Annahmen habe - am ende machts aber keinen großen unterschied.
Der Javascript Adapter verwirft beim beenden eines Skriptes alle registierten Trigger (intervalle, timeouts, abonnierte States, schedules usw.). Wenn das Skript eine Anfrage, die asychron externen code ausführt, aufruft, bekommt dieser code einen callback mit - der iobroker beendet das skript, der callback kommt zurück und das skript macht lustig weiter. Registriert vielleicht neue Datenpunkt und du hast 2 Versionen laufen - daher abschalten 10 Sekunden warten und wieder einschalten.
Ich hab mal nicht aufgepasst und 5 websockets zur gleichen Quelle aufgebaut und mich über die unzähligen Logmeldungen gewundert
Ja was man erstellt muß man auch beenden
-
@max_yeah sagte in SONOFF NSPanel mit Lovelace UI:
Meine Frage dazu ist, wie stelle ich die Updatebenachrichtigung ab?
in der Serviceseite unter Infos kannst du die Meldungen abschalten.
-
@max_yeah
ich habe nochmal nachgesehen, Anzahl der Striche an der X-Achse. -
@ticaki OK ja das macht Sin, danke für den tipp mit dem warten.
Callbacks ist eine gute überleitung zu meiner nächsten Frage.
Wann werden die cron jobs für das dimmen der pannels definiert?
Hintergrund ist folgender:
Ich habe ein Panel in unser Schlafzimmer installiert.
Jetzt gibt es ja den Dimmode für Helligkeit des Displays am Tag und Nacht, super Sache.
Damit es nachts dunkel ist im Schlafzimmer wird die brightness auf 0 runter geregelt. Und früh Früh dann zu den einstellten Zeiten wieder hoch.
Jedoch ist die HourDay meiner Frau am Wochenende zu früh.
Heist ich brauche fürs Wochenende andere Dimm Zeiten.
Dafür habe ich ein script geschrieben, das früh prüft welcher Tag gerade ist und demnach die Zeiten für wochentags oder fürs Wochenende in die entsprechenden Datenpunkte schreibt.Jetzt kommen wir zum eigentlichen problem. An den Übergangstagen Samstag und Montag, sind zwar die richtigen Zeiten in die Datenpunkte geladen, jedoch schaltet das Display noch zu den Alten Zeiten um. Als würde noch der Timer/Trigger laufen.
Drum stellt sich die frage,
-
wird der Trigger bei jedem schreiben der Dimmode datenpunkte neu erstellt,
-
oder wird das nur einmal pro Tag gemacht, wenn ja, wann?
Hier mein script (entschuldigt die Formatierung, ist eigentlich ein Blockly):
schedule('{"time":{"exactTime":true,"start":"00:05"},"period":{"days":1},"valid":{"from":"16.02.2025","to":""}}', async () => { if (String(formatDate(new Date(), 'WW', 'de')).includes('Samstag') || String(formatDate(new Date(), 'WW', 'de')).includes('Sonntag')) { setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Morgens.ACTUAL').val); setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Abends.ACTUAL').val); } else { setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Morgens.ACTUAL').val); setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Abends.ACTUAL').val); } }); on({ id: [].concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Abends.ACTUAL']).concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Morgens.ACTUAL']).concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Abends.ACTUAL']).concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Morgens.ACTUAL']), change: 'ne' }, async (obj) => { if (String(formatDate(new Date(), 'WW', 'de')).includes('Samstag') || String(formatDate(new Date(), 'WW', 'de')).includes('Sonntag')) { setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Morgens.ACTUAL').val); setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Abends.ACTUAL').val); } else { setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Morgens.ACTUAL').val); setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Abends.ACTUAL').val); } });
-