NEWS
[Vorlage] Flexibles Timerskript + Vis
-
Nur zur Info, ich hab gestern aktuelle vom Git installiert und bei mir ist alles sofort nach neustart des Skrippt sichtbar gewesen. Keine Probleme.
-
@gelberlemmy Nur mal als Test ins blaue. Mach mal aus der 500 in Zeile 1155 ne 1000, dann speichern und testen bitte.
-
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
@gelberlemmy Nur mal als Test ins blaue. Mach mal aus der 500 in Zeile 1155 ne 1000, dann speichern und testen bitte.
Leider keine Änderung
-
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
Nochmal zur Sicherheit. Du installierst das Skript, Du stellst via Vis nen Timer (oder auch mehrere) ein. Setzen und ändern/löschen/hinzufügen funktioniert einwandfrei, die Timer schalten auch.
Dann machst Du ne manuelle Aktualisierung des Browsers und zack isses kacke? Is das korrekt nachvollzogen so?@Pittini ja so ist es. Dann Neustart Skript und alles wieder schön
Ok, dann fällt mir grad offiziell nix mehr ein, vermutlich is der Effekt nach irgendeinem update weg, aber das kanns natürlich ned sein. Evtl. fällt ja @Dutchman oder @apollon77 oder @AlCalzone was dazu ein.
-
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
Evtl. fällt ja @AlCalzone was dazu ein.
dazu bräuchte ich mal ein tl;dr, damit ich nicht den ganzen Thread nach Infos durchstöbern muss.
-
@AlCalzone sagte in [Vorlage] Flexibles Timerskript + Vis:
dazu bräuchte ich mal ein tl;dr, damit ich nicht den ganzen Thread nach Infos durchstöbern muss.
Ok, gern, hier Zusammenfassung:
@gelberlemmy hat mein Timerskript installiert. Es funktioniert alles wie es soll (haben auch inzwischen etliche Leuts ohne Probleme laufen), allerdings funktionierts nur solange bis er nen manuellen Browserrefresh macht. Danach steigt das Skript aus. Die Logs sagen mir, es steigt aus weil "undefined" Werte in Dps geschrieben werden die da nix zu suchen haben. Das Problem ist, ich hab null Ahnung warum. Die Logs dazu siehste hier: https://forum.iobroker.net/topic/33228/vorlage-flexibles-timerskript-vis/229 und hier is der Ursprungspost zum Thema https://forum.iobroker.net/topic/33228/vorlage-flexibles-timerskript-vis/219
Das Startlog ist völlig normal, alles bestens, Timer wird gesetzt, Timer wird ausgeführt. Im Log drunter siehste dann schon dass da undefined Werte reinkommen, dass das Skript da dann aussteigt is soweit klar und logisch. Nur woher kommen die Werte beim Browseraktualisieren?
Als Massnahme wurde bereits durchgeführt: Browsercache leeren, anderen Browser verwenden, Skriptverzeichnis löschen und Dps neu erstellen lassen, JS Instanz neustarten. -
@Pittini Browser-Refresh dürfte keinen Einfluss auf Variablen in Skripten haben, da diese im Backend (ioBroker) laufen.
Die fragliche Zeile (631) verwendet eine Astro-Zeit, ohne zu prüfen, ob diese existiert. Es gibt ein paar Astro-Events, die an bestimmten Breitengraden zu bestimmten Jahreszeiten nicht existieren.
Ich vermute, das ist die Ursache. -
@AlCalzone sagte in [Vorlage] Flexibles Timerskript + Vis:
@Pittini Browser-Refresh dürfte keinen Einfluss auf Variablen in Skripten haben, da diese im Backend (ioBroker) laufen.
Die fragliche Zeile (631) verwendet eine Astro-Zeit, ohne zu prüfen, ob diese existiert. Es gibt ein paar Astro-Events, die an bestimmten Breitengraden zu bestimmten Jahreszeiten nicht existieren.
Ich vermute, das ist die Ursache.Hm, glaub ich eigentlich nicht, läßt sich aber ja leicht verifizieren indem wir @gelberlemmy mal fragen ob er überhaupt nen Astrotimer verwendet hatte. Ich seh das Problem hier:
javascript.0 2020-07-27 20:53:02.954 info (4109) script.js.common.Timer_Target: Reaching WriteToTemplate(whichone), whichone=undefined
Die Variable whichone legt fest welcher Timer in die TemplateDps geschrieben wird, wenn da ein undefined kommt kann nur murks rauskommen, nur woher kommt das undefined?
Das Skript is so aufgebaut das je nachdem, welcher Timer in ner Valuelist gewählt wird, die Werte dieses Timers in ein Template geschrieben wird, worauf sich das Vis bezieht. Beim klick auf des speichernbutton werden die Werte ausm (jetzt ja geänderten) Template in die eigentlichen TimerDps zurückgeschrieben. Iwo da vermute ich passiert was, aber wie gesagt ich komm da ned weiter.
Das ganze funktioniert bisher einwandfrei und ich glaub auch ned mal dasses am Skript liegt, kanns aber halt auch ned ausschliessen bevor die wahre Ursache gefunden wurde. -
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
Hm, glaub ich eigentlich nicht
Wieso nicht? Steht doch in mehreren Logs oben:
javascript.0 2020-07-26 18:12:22.858 error (2508) at CheckTodayAstroIsOver (script.js.Meine_Scripte.Timersteuerung:631:15) javascript.0 2020-07-26 18:12:22.857 error (2508) Error in callback: TypeError: Cannot read property 'setMinutes' of undefined javascript.0 2020-07-26 18:12:22.848 error (2508) Cannot get astro date for "time"
Ich würde jetzt nicht pauschal ausschließen wollen, dass das nicht doch dafür sorgt, dass ungewollte Werte in DPs landen.
-
Moin, also ich habe noch nie einen Astro Tier verwendet. Immer nur eine Schaltung zur bestimmten Uhrzeit.
-
@AlCalzone sagte in [Vorlage] Flexibles Timerskript + Vis:
Ich würde jetzt nicht pauschal ausschließen wollen, dass das nicht doch dafür sorgt, dass ungewollte Werte in DPs landen.
Jaein, das isn Folgefehler. Ich hab da ne Abfrage drin die auf !time prüft und da fällt natürlich das undefined drunter, gedacht war wenns nicht time ist, musses Astro sein, deswegen springt er in den falshen Zweig dann. Es bleibt aber immer noch die Frage, woher kommt das undefined das das auslöst. Ich fang das jetzt mal ab, dann soll @gelberlemmy mal posten wie oder was sich am Fehler geändert hat.
@gelberlemmy bitte mal Zeile 1110 ändern von:
if (x == 5 && dp.state.val != "time") { //TimerChoice geändert und Astro gewählt
auf:
if (x == 5 && dp.state.val != "time" && typeof dp.state.val != "undefined") { //TimerChoice geändert und Astro gewählt
Dann bitte mal testen und ggfs. das entstandene Log wieder hier posten.
-
@Pittini danke für die Arbeit. Werde es nachher einmal probieren
-
so keine Änderung. Die Fehlermeldungen gehen auch erst los, sobald ich in den Spalten "undefined" auswähle.
javascript.0 2020-07-31 21:13:37.206 error (21270) at processImmediate (internal/timers.js:456:21) javascript.0 2020-07-31 21:13:37.206 error (21270) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-07-31 21:13:37.205 error (21270) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.0 2020-07-31 21:13:37.205 error (21270) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.0 2020-07-31 21:13:37.204 error (21270) at Object.<anonymous> (script.js.common.TimerTarget:1112:98) javascript.0 2020-07-31 21:13:37.204 error (21270) at DetermineNextActiveAstroDay (script.js.common.TimerTarget:520:32) javascript.0 2020-07-31 21:13:37.203 error (21270) at CheckTodayAstroIsOver (script.js.common.TimerTarget:631:15) javascript.0 2020-07-31 21:13:37.203 error (21270) Error in callback: TypeError: Cannot read property 'setMinutes' of undefined javascript.0 2020-07-31 21:13:37.199 error (21270) Cannot get astro date for "undefined" javascript.0 2020-07-31 21:13:37.198 info (21270) script.js.common.TimerTarget: Reaching CheckTodayAstroIsOver(AstroChoice=undefined Shift=0) javascript.0 2020-07-31 21:13:37.198 info (21270) script.js.common.TimerTarget: Reaching DetermineNextActiveAstroDay(whichone=-1 GoToTommorrow=false) javascript.0 2020-07-31 21:13:37.197 info (21270) script.js.common.TimerTarget: Astro choosen javascript.0 2020-07-31 21:13:37.196 info (21270) script.js.common.TimerTarget: Reaching MakeTable javascript.0 2020-07-31 21:13:37.195 info (21270) script.js.common.TimerTarget: Reaching SwitchEditMode(whichone, onoff), whichonex=undefined TimerCount=1 onoff=true javascript.0 2020-07-31 21:13:33.022 info (21270) script.js.common.TimerTarget: Reaching MakeTable javascript.0 2020-07-31 21:13:33.021 info (21270) script.js.common.TimerTarget: Reaching SwitchEditMode(whichone, onoff), whichonex=undefined TimerCount=1 onoff=true javascript.0 2020-07-31 21:13:22.307 info (21270) script.js.common.TimerTarget: Template TimerTarget changed, typeof=string Wert= javascript.0 2020-07-31 21:13:22.267 info (21270) script.js.common.TimerTarget: Timertemplate changed to undefined javascript.0 2020-07-31 21:13:22.266 info (21270) script.js.common.TimerTarget: Reaching MakeTable javascript.0 2020-07-31 21:13:22.266 info (21270) script.js.common.TimerTarget: Reaching SwitchEditMode(whichone, onoff), whichonex=0 TimerCount=1 onoff=false javascript.0 2020-07-31 21:13:22.263 info (21270) script.js.common.TimerTarget: Typeof MyTimer[undefined]=undefined javascript.0 2020-07-31 21:13:22.262 info (21270) script.js.common.TimerTarget: Reaching WriteToTemplate(whichone), whichone=undefined
-
Habe mir jetzt einen Button für den Regelneustart gebaut
-
@gelberlemmy sagte in [Vorlage] Flexibles Timerskript + Vis:
Habe mir jetzt einen Button für den Regelneustart gebaut
Als workaround sinnvoll, aber ich bin hartnäckig und will trotzdem wissen was da los ist. Vorallem weil nur Du das Problem hast. An obigem Screen sieht man ja schön das da alles leer ist im Änderungsbereich, schon das darf nicht sein.
Kannst Du mal bitte zur Sicherheit in Vis ein komplett leeres neues Projekt anlegen und da eine einzige Seite machen mit den Widgets aus dem zur Verfügung gestellten View.
Solltest Du Anydesk haben, würd ich mir das gerne mal live anschauen, wär vermutlich am sinnvollsten. ID kannste mir ja ggfs. im Chat durchgeben. -
@Pittini wenn Anydesk kostenfrei ist, sehr sehr gerne.
-
Ja, is kostenlos für Privatnutzung. https://anydesk.com/de/downloads
-
@Pittini Hallo, ich habe ein Problem beim Löschen der Timer festgestellt(V2.1.7)
Erstellt wurden 4 Timer, der Einfachheit halber wurden hier nur die Ziele zugewiesen
Löschen möchte ich nun Timer 3(Schlafzimmer), gelöscht wird jedoch Timer 2(Play2)
Ein weiterer Versuch, den Timer(nun Timer 2) zu löschen, löscht wiederum den darüberliegenden Timer 1(Play1)
Hier das
Zusätzlich, wenn Timer 3 eingestellt und eingeschaltet ist, dann wird zwar zum Zeitpunkt getriggert, jedoch meldet das LOG dann einen Fehler, Callback nicht erreichbar oder so ähnlich. (ist im LOG der Einfachheit halber nicht enthalten, da es nach einem Fix der gezeigten Fehler evtl automatisch verschwindet)
Ich habe versucht, mehr Vorarbeit zu leisten, um den Fehler evtl. selbst zu finden, bin jedoch kläglich gescheitert
-
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
Ja, is kostenlos für Privatnutzung. https://anydesk.com/de/downloads
Danke. Schreibe Dir eine PN
-
@fastfoot sagte in [Vorlage] Flexibles Timerskript + Vis:
Zusätzlich, wenn Timer 3 eingestellt und eingeschaltet ist, dann wird zwar zum Zeitpunkt getriggert, jedoch meldet das LOG dann einen Fehler, Callback nicht erreichbar oder so ähnlich. (ist im LOG der Einfachheit halber nicht enthalten, da es nach einem Fix der gezeigten Fehler evtl automatisch verschwindet)
Ich habe versucht, mehr Vorarbeit zu leisten, um den Fehler evtl. selbst zu finden, bin jedoch kläglich gescheitertDer Fehler is atypisch und bisher noch bei niemand aufgetreten. Ich kanns leider auch nicht reproduzieren. Da Du aber ne Fehlermeldung hast, würd ich mich gern erst mal da drum kümmern (also genau andersrum als Du dachtest). Poste bitte mal das Log wenn der Fehler auftritt.