NEWS
[Vorlage] Flexibles Timerskript + Vis
-
@Pittini
Hab nun die neueste Version von dir in Gebrauch und 2 Timer getestet. Es funktioniert. Deine Änderung mit dem Rahmen des ausgewählten Timers finde ich gut.
Beim Erstellen eines neuen Timers habe ich die gleichen Warnungen wie @Homer-J und @Feuersturm .
Ich habe dann versucht diesen Timer wieder zu löschen und dann ist der Papierkorp kurz ein Fragezeichen und es passiert nichts. Es gibt auch keinen Log dazu -
@Dominik-F sagte in [Vorlage] Flexibles Timerskript + Vis:
Beim Erstellen eines neuen Timers habe ich die gleichen Warnungen wie @Homer-J und @Feuersturm .
Da bin ich dran und denke weis auch worans liegt, update kommt iwann heute.
Ich habe dann versucht diesen Timer wieder zu löschen und dann ist der Papierkorp kurz ein Fragezeichen und es passiert nichts. Es gibt auch keinen Log dazu
Its not a bug, its a feature. Siehe Anleitung:
Der Button "Papierkorb" - Um versehentliches Löschen zu erschweren hat dieser Button eine Sicherheitsabfrage. Der erste Klick auf den Button "Papierkorb" läßt dessen Farbe zu rot wechseln, das Symbol wandelt sich zu einem Fragezeichen. Erst ein weiterer Klick, nunmehr auf das Fragezeichen, innerhalb 3 Sekunden, löscht den Eintrag tatsächlich und unwiederbringlich. Läßt Du die 3 Sekunden ohne Klick verstreichen, wandelt sich der Button zurück zum Papierkorb, der Löschmodus wird abgebrochen.
-
Ach mist, der Teil der Anleitung ist mir dann anscheinend durchgegangen^^ Es funktioniert dann alles
Anwesenheit hab ich bisher noch nicht getestet.
Ich bin jetzt gerade am Überlegen, wie ich deine Widgets neu anordnen könnte um das ganze auch am Handy nutzen zu können. Hast du dir da vielleicht auch schon Gedanken zu gemacht oder steht das irgendwie schon auf deiner Agenda?
-
@Dominik-F sagte in [Vorlage] Flexibles Timerskript + Vis:
Ich bin jetzt gerade am Überlegen, wie ich deine Widgets neu anordnen könnte um das ganze auch am Handy nutzen zu können. Hast du dir da vielleicht auch schon Gedanken zu gemacht oder steht das irgendwie schon auf deiner Agenda?
Ich nutz das alles eigentlich nur am Pc, maximal mal aufm Tablet, von daher, nein weder Gedanken noch Agenda.
Sollte aber kein Problem sein, Du kannst den oberen Bereich ja 2reihig machen und alles was Du nicht brauchst (z.B. die Tage) auch weglassen. Bei der Tabelle kannst die Spalten die Du nicht brauchst ausblenden. Sollte sich schon iwie auf Handy (quer) Format quetschen lassen.PS rein theoretisch kannste auch die Tabelle komplett weglassen.
-
alles klar, ich werd mir das dann mal umbauen
Wenn ich das Target selber schalte dann bekomme ich errors:
javascript.0 2020-05-24 13:16:03.557 error (4630) at process.topLevelDomainCallback (domain.js:137:15) javascript.0 2020-05-24 13:16:03.557 error (4630) at processImmediate (internal/timers.js:456:21) javascript.0 2020-05-24 13:16:03.557 error (4630) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-05-24 13:16:03.557 error (4630) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.0 2020-05-24 13:16:03.557 error (4630) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.0 2020-05-24 13:16:03.557 error (4630) at Object.<anonymous> (script.js.common.TimerNeu:762:28) javascript.0 2020-05-24 13:16:03.556 error (4630) Error in callback: TypeError: Cannot set property '18' of undefined javascript.0 2020-05-24 13:16:03.556 info (4630) script.js.common.TimerNeu: TargetDevice 2 state changed, refreshing table javascript.0 2020-05-24 13:16:03.556 info (4630) script.js.common.TimerNeu: Reaching MakeTable javascript.0 2020-05-24 13:16:03.555 info (4630) script.js.common.TimerNeu: TargetDevice 1 state changed, refreshing table javascript.0 2020-05-24 13:16:03.555 info (4630) script.js.common.TimerNeu: Reaching MakeTable javascript.0 2020-05-24 13:16:03.555 info (4630) script.js.common.TimerNeu: TargetDevice 0 state changed, refreshing table javascript.0 2020-05-24 13:16:03.391 error (4630) at process.topLevelDomainCallback (domain.js:137:15) javascript.0 2020-05-24 13:16:03.391 error (4630) at processImmediate (internal/timers.js:456:21) javascript.0 2020-05-24 13:16:03.390 error (4630) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-05-24 13:16:03.390 error (4630) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.0 2020-05-24 13:16:03.390 error (4630) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.0 2020-05-24 13:16:03.390 error (4630) at Object.<anonymous> (script.js.common.TimerNeu:762:28) javascript.0 2020-05-24 13:16:03.390 error (4630) Error in callback: TypeError: Cannot set property '18' of undefined javascript.0 2020-05-24 13:16:03.390 info (4630) script.js.common.TimerNeu: TargetDevice 2 state changed, refreshing table javascript.0 2020-05-24 13:16:03.389 info (4630) script.js.common.TimerNeu: Reaching MakeTable javascript.0 2020-05-24 13:16:03.389 info (4630) script.js.common.TimerNeu: TargetDevice 1 state changed, refreshing table javascript.0 2020-05-24 13:16:03.389 info (4630) script.js.common.TimerNeu: Reaching MakeTable javascript.0 2020-05-24 13:16:03.389 info (4630) script.js.common.TimerNeu: TargetDevice 0 state changed, refreshing table javascript.0 2020-05-24 13:16:02.155 error (4630) at process.topLevelDomainCallback (domain.js:137:15) javascript.0 2020-05-24 13:16:02.155 error (4630) at processImmediate (internal/timers.js:456:21) javascript.0 2020-05-24 13:16:02.155 error (4630) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-05-24 13:16:02.155 error (4630) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.0 2020-05-24 13:16:02.154 error (4630) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.0 2020-05-24 13:16:02.154 error (4630) at Object.<anonymous> (script.js.common.TimerNeu:762:28) javascript.0 2020-05-24 13:16:02.154 error (4630) Error in callback: TypeError: Cannot set property '18' of undefined javascript.0 2020-05-24 13:16:02.154 info (4630) script.js.common.TimerNeu: TargetDevice 2 state changed, refreshing table javascript.0 2020-05-24 13:16:02.153 info (4630) script.js.common.TimerNeu: Reaching MakeTable javascript.0 2020-05-24 13:16:02.153 info (4630) script.js.common.TimerNeu: TargetDevice 1 state changed, refreshing table javascript.0 2020-05-24 13:16:02.153 info (4630) script.js.common.TimerNeu: Reaching MakeTable javascript.0 2020-05-24 13:16:02.153 info (4630) script.js.common.TimerNeu: TargetDevice 0 state changed, refreshing table javascript.0 2020-05-24 13:16:01.989 error (4630) at process.topLevelDomainCallback (domain.js:137:15) javascript.0 2020-05-24 13:16:01.989 error (4630) at processImmediate (internal/timers.js:456:21) javascript.0 2020-05-24 13:16:01.989 error (4630) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-05-24 13:16:01.989 error (4630) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.0 2020-05-24 13:16:01.989 error (4630) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.0 2020-05-24 13:16:01.988 error (4630) at Object.<anonymous> (script.js.common.TimerNeu:762:28) javascript.0 2020-05-24 13:16:01.988 error (4630) Error in callback: TypeError: Cannot set property '18' of undefined javascript.0 2020-05-24 13:16:01.987 info (4630) script.js.common.TimerNeu: TargetDevice 2 state changed, refreshing table javascript.0 2020-05-24 13:16:01.986 info (4630) script.js.common.TimerNeu: Reaching MakeTable javascript.0 2020-05-24 13:16:01.986 info (4630) script.js.common.TimerNeu: TargetDevice 1 state changed, refreshing table javascript.0 2020-05-24 13:16:01.985 info (4630) script.js.common.TimerNeu: Reaching MakeTable javascript.0 2020-05-24 13:16:01.985 info (4630) script.js.common.TimerNeu: TargetDevice 0 state changed, refreshing table
-
@Dominik-F sagte in [Vorlage] Flexibles Timerskript + Vis:
Wenn ich das Target selber schalte dann bekomme ich errors:
- Wieviele Timer hast Du gesetzt wenn dieser Fehler kommt? 2 oder 3?
- Kommt der Fehler nach nem Skriptneustart immer noch?
- Hattest Du vorher einen Timer gelöscht?
-
Ich hatte 2 Timer und hatte vorher einen dritten Timer den ich gelöscht habe.
Aus irgendeinem Grund bekomme ich jetzt keine Errors mehr und kann den Fehler gerade auch nicht reproduzierenLiegt wohl am Skriptneustart das der Error weg ist.
-
Bei mir kommt es nach dem löschen eines Timers, beim nächsten Schaltvorgang auch zu Fehlern, die nach einem Script-Neustart wieder weg sind.
javascript.0 2020-05-24 15:56:00.002 info (5967) script.js._Timer: sonoff.0.Witty1.POWER Timer 11 hat angeschaltet javascript.0 2020-05-24 15:53:58.800 info (5967) script.js._Timer: 3 Targets found - Targets are: sonoff.0.Witty1.POWER,0_userdata.0.WarmWasser.WWasserZeit-EIN,0_userdata.0.Heizung.HeizZeit-EIN javascript.0 2020-05-24 15:53:58.798 info (5967) script.js._Timer: registered 0 subscriptions and 0 schedules javascript.0 2020-05-24 15:53:58.790 info (5967) Start javascript script.js._Timer javascript.0 2020-05-24 15:53:55.909 info (5967) Stop script script.js._Timer javascript.0 2020-05-24 15:53:00.005 error (5967) at process.topLevelDomainCallback (domain.js:137:15) javascript.0 2020-05-24 15:53:00.005 error (5967) at processImmediate (internal/timers.js:456:21) javascript.0 2020-05-24 15:53:00.005 error (5967) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-05-24 15:53:00.005 error (5967) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.0 2020-05-24 15:53:00.005 error (5967) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.0 2020-05-24 15:53:00.005 error (5967) at Object.<anonymous> (script.js._Timer:762:28) javascript.0 2020-05-24 15:53:00.005 error (5967) Error in callback: TypeError: Cannot set property '18' of undefined javascript.0 2020-05-24 15:53:00.002 info (5967) script.js._Timer: Timer 11 hat ausgeschaltet javascript.0 2020-05-24 15:50:00.007 error (5967) at process.topLevelDomainCallback (domain.js:137:15) javascript.0 2020-05-24 15:50:00.007 error (5967) at processImmediate (internal/timers.js:456:21) javascript.0 2020-05-24 15:50:00.007 error (5967) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37) javascript.0 2020-05-24 15:50:00.007 error (5967) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25) javascript.0 2020-05-24 15:50:00.007 error (5967) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38) javascript.0 2020-05-24 15:50:00.007 error (5967) at Object.<anonymous> (script.js._Timer:762:28) javascript.0 2020-05-24 15:50:00.006 error (5967) Error in callback: TypeError: Cannot set property '18' of undefined javascript.0 2020-05-24 15:50:00.002 info (5967) script.js._Timer: sonoff.0.Witty1.POWER Timer 11 hat angeschaltet javascript.0 2020-05-24 15:41:25.624 info (5967) script.js._Timer: Now Delete last channel=javascript.0.Timer.13 javascript.0 2020-05-24 15:40:42.944 warn (5967) This object will not be created in future versions. Please report this to the developer. javascript.0 2020-05-24 15:40:42.944 warn (5967) Object javascript.0.Timer.13 is invalid: obj.common.type has an invalid value (channel) but has to be one of number, string, boolean,
Die Timer werden aber trotzdem zuverlässig geschalten
-
@Dominik-F sagte in [Vorlage] Flexibles Timerskript + Vis:
Aus irgendeinem Grund bekomme ich jetzt keine Errors mehr und kann den Fehler gerade auch nicht reproduzieren Liegt wohl am Skriptneustart das der Error weg ist.
Deswegen meine Fragen. Was Du jetzt sagst bestätigt meinen Verdacht dass da ne Subscription überbleibt obwohl der Timer schon gelöscht wurde.
-
@Saschag sagte in [Vorlage] Flexibles Timerskript + Vis:
Timer funktioniert jetzt super. Nur werden die Farben immer gemäß dem Zustand des "Aktors" also true "grün" oder false "rot". Egal ob der Zustand manuell oder per TimerSkript erfolgt.
Ja, das ist sone Definitionssache. Entweder so wie es ist und Du es beschreibst, oder Variante 2 Nur der erste Wechsel von "außen" ändert die Farbe zu grau und jede weitere Änderung wird ignoriert. Da bin ich mir selber noch etwas unschlüssig was mehr Sinn macht. Was denken denn die anderen hier?
-
So, update für die gemeldeten Fehler ist da @Dominik-F , @Feuersturm , @Einstein67 . Hoffe ich hab alles erwischt, bitte Feedback.
Changelog
V2.0.3 Beta (24.5.2020)
- Fix: Problem welches zur Warnmeldung:
"Object javascript.0.Timer.x is invalid: obj.common.type has an invalid value (channel) but has to be one of number, string, boolean, array, object, mixed, file, json" behoben - Fix: Async Problem beim hinzufügen neuer Timer behoben welche zur Fehlermeldung:
"Error in callback: TypeError: Cannot read property '0' of undefined" führten. - Fix: Problem mit verbleibenden subscriptions behoben welche zur Fehlermeldung:
"Error in callback: TypeError: Cannot set property '18' of undefined" führten.
- Fix: Problem welches zur Warnmeldung:
-
@Pittini said in [Vorlage] Flexibles Timerskript + Vis:
Was denken denn die anderen hier?
Ich bin mir darüber noch nicht so richtig im klaren ...
Eigentlich ist es eine Timerliste in der mir persönlich der "aktuelle Status" gar nicht so wichtig ist ...
EDIT: Mit Version 2.0.3 keine Warnungen beim anlegen eines Timers und auch keine Fehler nach dem löschen eines Timers!!
Super ... Vielen Dank!
-
@Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:
Ja, das ist sone Definitionssache. Entweder so wie es ist und Du es beschreibst, oder Variante 2 Nur der erste Wechsel von "außen" ändert die Farbe zu grau und jede weitere Änderung wird ignoriert. Da bin ich mir selber noch etwas unschlüssig was mehr Sinn macht. Was denken denn die anderen hier?
Ich könnte mir das so Vorstellen, dass nur die Änderungen des Timers angezeigt werden und keine von außen so wie jetzt.
Hab nun aktualisiert und die Warnungen sind weg, hatte bisher auch keinen Error mehr. Mir ist jetzt nur aufgefallen, dass der Timer fürs Einschalten dauerhaft grün ist.
-
@Dominik-F sagte in [Vorlage] Flexibles Timerskript + Vis:
Ich könnte mir das so Vorstellen, dass nur die Änderungen des Timers angezeigt werden und keine von außen so wie jetzt.
Naja, ganz ohne außen ist witzlos, dann schaltet der einmal auf grün (oder rot, je nachdem) und bleibt so bis zum Sankt Nimmerleinstag.
Hab nun aktualisiert und die Warnungen sind weg, hatte bisher auch keinen Error mehr. Mir ist jetzt nur aufgefallen, dass der Timer fürs Einschalten dauerhaft grün ist.
Solange an ist, ist das ja auch ok. Oder is aus und trotzdem grün?
-
Ich hatte das so gedacht, dass während der Timer läuft er auf grün ist, ansonsten auf rot. Von außen ist für den Timer ja eigentlich uninteressant. Wenn ich auf die Tabelle schaue möchte ich ja wissen ob der Timer läuft oder nicht und nicht ob irgendjemand das manuell eingeschaltet hat.
Der Timer ist grün, obwohl der Aktor auf false ist. Sieht jetzt gerade so aus:
Edit: Auch hier hat wieder ein Neustart des Skriptes geholfen.
-
@Pittini Beim ersten spielen mit der 2.0.3 sind bisher keine Warnungen oder Errors im Log aufgetreten
Danke für die schnelle Einarbeitung der findings. -
@Dominik-F said in [Vorlage] Flexibles Timerskript + Vis:
Der Timer ist grün, obwohl der Aktor auf false ist. Sieht jetzt gerade so aus:
Kann das möglicherweise sein weil du nur eine Minute als Zeit-Differenz eingegeben hast? Ich hab das Problem nicht.
-
@Dominik-F sagte in [Vorlage] Flexibles Timerskript + Vis:
Ich hatte das so gedacht, dass während der Timer läuft er auf grün ist, ansonsten auf rot.
Siehe: https://forum.iobroker.net/topic/33228/vorlage-flexibles-timerskript-vis/26
und Anleitung
grün dargestellt werden alle Einträge welche einstellungsgemäß eingeschaltet wurden. Wird manuell oder durch einen anderen Timer der Status verändert, wechselt die Zeile wieder zu grau.
rot dargestellt werden alle Einträge welche einstellungsgemäß ausgeschaltet wurden. Wird manuell oder durch einen anderen Timer der Status verändert, wechselt die Zeile wieder zu grau.
Wenn ich auf die Tabelle schaue möchte ich ja wissen ob der Timer läuft oder nicht und nicht ob irgendjemand das manuell eingeschaltet hat.
Was heißt für Dich "ob der Timer läuft"? Laufen tut er immer solang er aktiv geschaltet ist. Letztendlich ist das wieder die Definitionsfrage von heut nachmittag.
-
ich würde es wie in der Anleitung bevorzugen, nur funktioniert es bei mir nicht so
Bei mir sind die Zeilen immer in der Farbe des Zustandes des Aktors manuell oder per Timer egal -
Ja der ganze Teil sollte meine Meinung zur Definitionsfrage von heute Nachmittag sein, also n Vorschlag. Hattest da ja nach Meinungen gefragt.
Hab mich da doof ausgedrückt und das ganze hat sich dann mit meinen kurzzeitigen Problemen vermischt.Noch was anderes:
Wäre es vielleicht möglich, die Schriftgröße am Anfang des Scriptes wie bei den Farben eingeben zu können? Einmal für den Kopf und für die Zeilen seperat?
Ich möchte das auch nicht einfach im Script ändern da es dann bei Updates immer weg wäre^^ Die Tabelle ist einfach so breit, dass ich, selbst wenn ich für mich unwichtige Spalten deaktiviere, die nicht auf dem Handy anzeigen kann weil die Schriftgröße das zu Breit macht.