NEWS
[Vorlage] Flexibles Timerskript + Vis
-
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.
-
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
Der 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.
Also ich habe ein komplett neues System aufgesetzt, nur mit JS und Hue-Adapter und VIS, Hier nochmal die Ausgangssituation, diesmal mit Zeiten
Gelöscht wird nun Timer3(Play2), in der VIS verschwindet jedoch Timer2
Nun lösche ich wieder die Play2(nun Timer2), in der VIS verschwindet jedoch Timer1
Was jetzt aber absolut unverständlich ist, die originalen Zeiten der ersten beiden Timer wurden mit den verbleibenden Zielen gemischt, d.h. die Play2 geht um 19:22:00 an und um 19:22:30 aus, wie es eigentlich für den Strip gescheduled war. (siehe auch LOG Zeilen 219 + 224). Der gestern beschriebene Fehler erscheint zur Zeit des originalen Timers 4(in Bild3 Timer2)
Lass mich doch wissen, was ich evtl. zusätzlich mitloggen soll um den Fehler einzugrenzen
-
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
Der Fehler is atypisch und bisher noch bei niemand aufgetreten. Ich kanns leider auch nicht reproduzieren
Das verstehe ich nicht, das konnte so nicht funktionieren. Ich habe den Fehler jetzt gefunden, er steckt in der Funktion DeleteTimer() und fällt auf, wenn aus der Mitte des Arrays ein Timer gelöscht wird. Dabei ist mir auch aufgefallen, dass es der unterschiedlichen Behandlung der Arraypositionen nicht bedarf. Folgende Zeile(hier 10) deckt alle Fälle ab
/*if (whichone == 0) { //Erster Eintrag des Arrays soll gelöscht werden NewArray = MyTimer.slice(whichone + 1, TimerCount); } else if (whichone == TimerCount - 1) {//Letzter Eintrag des Arrays soll gelöscht werden NewArray = MyTimer.slice(0, whichone); } else { //Eintrag aus der Mitte des Array soll gelöscht werden NewArray = TempArray.concat(MyTimer.slice(0, whichone - 1), MyTimer.slice(whichone, TimerCount)); };*/ NewArray = TempArray.concat(MyTimer.slice(0, whichone), MyTimer.slice(whichone + 1));
Damit baut sich die Tabelle nach dem Löschen jetzt richtig auf und auch die Timer stimmen danach.
-
@Pittini Hallo Pittini, ich würde gerne als Schaltziel einen "Alias" nehmen. wie ich gesehen und getestet habe ist dies auch möglich. Jedoch wird mit immer nur als Name "Stammordner für Alias, sh. Screenshot" angezeigt und das auch nur für Datenpunkte die in der ersten Ebene liegen. Was mache ich falsch ?
Gruß Baerny -
@Baerny sagte in [Vorlage] Flexibles Timerskript + Vis:
Hallo Pittini, ich würde gerne als Schaltziel einen "Alias" nehmen. wie ich gesehen und getestet habe ist dies auch möglich. Jedoch wird mit immer nur als Name "Stammordner für Alias, sh. Screenshot" angezeigt und das auch nur für Datenpunkte die in der ersten Ebene liegen. Was mache ich falsch ?
Du machst nix falsch, Alias Ordner isn Sonderfall. Normalerweise ist der übergeordnete Channel eines Dps, der mit dem Namen, deswegen nimmt das Skript defaultmäßig dann diesen. Du hast jetzt 2 Lösungswege. Entweder Du benutzt benutzerdefinierte Namen oder Du nutzt im Skript unter Optionen die Variante in Zeile 10 und stellst die auf false. Letzteres gilt dann aber global.
-
@fastfoot sagte in [Vorlage] Flexibles Timerskript + Vis:
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
Der 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.
Also ich habe ein komplett neues System aufgesetzt, nur mit JS und Hue-Adapter und VIS, Hier nochmal die Ausgangssituation, diesmal mit Zeiten
Gelöscht wird nun Timer3(Play2), in der VIS verschwindet jedoch Timer2
Nun lösche ich wieder die Play2(nun Timer2), in der VIS verschwindet jedoch Timer1
Was jetzt aber absolut unverständlich ist, die originalen Zeiten der ersten beiden Timer wurden mit den verbleibenden Zielen gemischt, d.h. die Play2 geht um 19:22:00 an und um 19:22:30 aus, wie es eigentlich für den Strip gescheduled war. (siehe auch LOG Zeilen 219 + 224). Der gestern beschriebene Fehler erscheint zur Zeit des originalen Timers 4(in Bild3 Timer2)
Kann wer anders diesen Fehler, bzw. Probleme beim löschen bestätigen?
-
@Pittini Danke, werde ich mal testen
-
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
Kann wer anders diesen Fehler, bzw. Probleme beim löschen bestätigen?
Evtl. hast Du es ja überlesen, aber ich habe mittlerweile schon gezeigt, dass es sich um einen Fehler im Skript handelt, und der muss jeden Nutzer betreffen. Mich verwundert, wieso das nicht nachvollziehbar sein soll, es fällt doch schon rein optisch auf.
-
@fastfoot sagte in [Vorlage] Flexibles Timerskript + Vis:
Damit baut sich die Tabelle nach dem Löschen jetzt richtig auf und auch die Timer stimmen danach.
Muß ich mir bei Gelegenheit noch mal in Ruhe anschauen. Aber Du darfst mir glauben, ich hab hier drölfzich Timer erstellt und gelöscht, sowohl beim testen als auch im Produktivbetrieb und es hat mit dem alten Code immer gepasst. Aber ich werd gern Deine Variante mal durchtesten, wie die sich dann verhält wenns der erste oder letzte Timer ist.
-
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
@fastfoot sagte in [Vorlage] Flexibles Timerskript + Vis:
Damit baut sich die Tabelle nach dem Löschen jetzt richtig auf und auch die Timer stimmen danach.
Muß ich mir bei Gelegenheit noch mal in Ruhe anschauen. Aber Du darfst mir glauben, ich hab hier drölfzich Timer erstellt und gelöscht, sowohl beim testen als auch im Produktivbetrieb und es hat mit dem alten Code immer gepasst. Aber ich werd gern Deine Variante mal durchtesten, wie die sich dann verhält wenns der erste oder letzte Timer ist.
Hiermit kannst du sehr leicht prüfen, was mit der Originalversion falsch läuft und dass meine Variante funktioniert, es ist die abgespeckte DeleteTimer() Funktion und es wird aus einem Array mit 4 Feldern immer ein Feld gelöscht, von 0-3
let MyTimer = ['T0','T1','T2','T3']; let TimerCount = MyTimer.length; function DeleteTimer(whichone, x){ let TempArray = []; let NewArray = []; if (whichone == 0) { //Erster Eintrag des Arrays soll gelöscht werden NewArray = MyTimer.slice(whichone + 1, TimerCount); if(x)log('Richtig => ' + whichone + ' ' + NewArray); } else if (whichone == TimerCount - 1) {//Letzter Eintrag des Arrays soll gelöscht werden NewArray = MyTimer.slice(0, whichone); if(x)log('Richtig => ' + whichone + ' ' + NewArray); } else { //Eintrag aus der Mitte des Array soll gelöscht werden NewArray = TempArray.concat(MyTimer.slice(0, whichone - 1), MyTimer.slice(whichone, TimerCount)); if(x)log('Falsch => ' + whichone + ' ' + NewArray); }; NewArray = TempArray.concat(MyTimer.slice(0, whichone), MyTimer.slice(whichone + 1)); if(!x)log('Richtig => ' + whichone + ' ' + NewArray); //MyTimer = NewArray; //MakeTable(); } log('Original'); for(let i = 0; i < TimerCount; i++){ DeleteTimer(i,1); } log('nach Änderung'); for(let i = 0; i < TimerCount; i++){ DeleteTimer(i,0); }
-
@Pittini einen grossen Dank an Deine persönliche Hilfe über Fernverwaltung. Fehler ist gefunden. Das Problem lag an meiner Tabs Vorlage. Wie auf meinen Screenshots zu sehen ist, habe ich oberhalb der VIS Tabs der einzelnen Seiten. Dort muss es einen Bug geben. Wenn wir dies ohne diese Tabs Voreinstellung ausführen besteht der Fehler nicht.
HERZLICHEN DANK -
Ich habe häufiger das Problem dass der Javascriptadapter abstürzt beim hinzufügen eines neuen Timers
javascript.0 2020-08-15 22:20:03.237 info (10516) received all objects javascript.0 2020-08-15 22:20:01.859 info (10516) received all states javascript.0 2020-08-15 22:19:59.847 info (10516) requesting all objects javascript.0 2020-08-15 22:19:59.845 info (10516) requesting all states javascript.0 2020-08-15 22:19:59.751 info (10516) starting. Version 4.6.17 in /opt/iobroker/node_modules/iobroker.javascript, node: v12.18.3, js-controller: 3.1.6 javascript.0 2020-08-15 22:19:26.560 error (8468) at processTicksAndRejections (internal/process/task_queues.js:97:5) javascript.0 2020-08-15 22:19:26.560 error (8468) at runMicrotasks (<anonymous>) javascript.0 2020-08-15 22:19:26.560 error (8468) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49 javascript.0 2020-08-15 22:19:26.559 error (8468) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23) javascript.0 2020-08-15 22:19:26.559 error (8468) at /opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:547:55 javascript.0 2020-08-15 22:19:26.559 error (8468) at script.js.Timer.TimerV217:260:17 javascript.0 2020-08-15 22:19:26.559 error (8468) at FillTimerArray (script.js.Timer.TimerV217:281:9) javascript.0 2020-08-15 22:19:26.559 error (8468) at CreateDeviceTrigger (script.js.Timer.TimerV217:1056:5) javascript.0 2020-08-15 22:19:26.558 error (8468) at on (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1151:28) javascript.0 2020-08-15 22:19:26.558 error (8468) at Object.subscribe (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:973:112) javascript.0 2020-08-15 22:19:26.557 error (8468) script.js.Timer.TimerV217: TypeError: Cannot read property 'period' of null
Eine Idee und Danke im Voraus
-
@Saschag sagte in [Vorlage] Flexibles Timerskript + Vis:
Eine Idee und Danke im Voraus
N komplettes Log wär schon hilfreich.
-
Hallo, guten Abend zusammen! Ich brauche bitte (mal wieder) Eure Hilfe. Ich habe den Aktor der Poolpumpe getauscht und einen neuen Namen vergeben. Die Timer haben sich nicht löschen lassen, daher habe ich in der Java-Instanz alles gelöscht ....
Auch das Script habe ich neu installiert, auch wenn ich nicht wüsste, in welchem Zusammenhang es stehen sollte, dass ich immernoch folgende Meldung erhalte
Sonoff.0.Poolpumpe war der alte Aktor, der existiert nicht mehr, und ich bin der Meinung, ich habe auch alles entsprechend gelöscht.
Wer hat eine Idee, wo der Fehler versteckt sein könnte?
Danke für Eure Hilfe!
Schönen Abend, Gruß Stefan.