Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] Flexibles Timerskript + Vis

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Flexibles Timerskript + Vis

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Pittini Developer @Dominik F. last edited by Pittini

      @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.

      Dominik F. 1 Reply Last reply Reply Quote 0
      • Dominik F.
        Dominik F. @Pittini last edited by

        @Pittini

        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
        
        P 1 Reply Last reply Reply Quote 0
        • P
          Pittini Developer @Dominik F. last edited by

          @Dominik-F sagte in [Vorlage] Flexibles Timerskript + Vis:

          Wenn ich das Target selber schalte dann bekomme ich errors:

          1. Wieviele Timer hast Du gesetzt wenn dieser Fehler kommt? 2 oder 3?
          2. Kommt der Fehler nach nem Skriptneustart immer noch?
          3. Hattest Du vorher einen Timer gelöscht?
          Dominik F. 1 Reply Last reply Reply Quote 0
          • Dominik F.
            Dominik F. @Pittini last edited by

            @Pittini

            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 reproduzieren 😕 Liegt wohl am Skriptneustart das der Error weg ist.

            P 1 Reply Last reply Reply Quote 0
            • E
              Einstein67 last edited by

              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 🙂

              1 Reply Last reply Reply Quote 0
              • P
                Pittini Developer @Dominik F. last edited by

                @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.

                1 Reply Last reply Reply Quote 0
                • P
                  Pittini Developer @Saschag last edited by

                  @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?

                  Dominik F. 1 Reply Last reply Reply Quote 0
                  • P
                    Pittini Developer last edited by

                    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.
                    Feuersturm 1 Reply Last reply Reply Quote 2
                    • E
                      Einstein67 last edited by Einstein67

                      @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!

                      1 Reply Last reply Reply Quote 0
                      • Dominik F.
                        Dominik F. @Pittini last edited by

                        @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.

                        P 1 Reply Last reply Reply Quote 0
                        • P
                          Pittini Developer @Dominik F. last edited by

                          @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?

                          Dominik F. 1 Reply Last reply Reply Quote 0
                          • Dominik F.
                            Dominik F. @Pittini last edited by Dominik F.

                            @Pittini

                            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:
                            Unbenannt.PNG

                            Edit: Auch hier hat wieder ein Neustart des Skriptes geholfen.

                            E P 2 Replies Last reply Reply Quote 0
                            • Feuersturm
                              Feuersturm @Pittini last edited by

                              @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.

                              1 Reply Last reply Reply Quote 0
                              • E
                                Einstein67 @Dominik F. last edited by Einstein67

                                @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.

                                ok.png

                                1 Reply Last reply Reply Quote 0
                                • P
                                  Pittini Developer @Dominik F. last edited by

                                  @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.

                                  S Dominik F. 2 Replies Last reply Reply Quote 0
                                  • S
                                    Saschag @Pittini last edited by

                                    @Pittini

                                    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

                                    1 Reply Last reply Reply Quote 0
                                    • Dominik F.
                                      Dominik F. @Pittini last edited by

                                      @Pittini

                                      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.

                                      P 1 Reply Last reply Reply Quote 0
                                      • P
                                        Pittini Developer @Dominik F. last edited by

                                        @Dominik-F sagte in [Vorlage] Flexibles Timerskript + Vis:

                                        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?

                                        Joa, des is easy, wird gemacht.

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          Pittini Developer last edited by

                                          Changelog

                                          V2.0.4 (25.5.2020)

                                          • Add: Schriftgrößen der Tabelle nun im Einstellungsbereich konfigurierbar.
                                          • Add: Benachrichtigung nun zusätzlich pro Timer aktivier/deaktivier-bar, hierzu zusätzliche Spalte + Button ins Vis eingefügt.
                                          • Change: Triggerhandling geändert. Farbwechsel in der Tabelle erfolgt nun bei schalten des Timers (rot/grün) und zurückschalten (grau) wodurch auch immer. Alle weiteren Schaltvorgänge von außerhalb werden ignoriert.
                                          Dominik F. Homer.J. 2 Replies Last reply Reply Quote 4
                                          • Dominik F.
                                            Dominik F. @Pittini last edited by

                                            @Pittini

                                            Perfekt, funktioniert alles super und ich kann die Tabelle nun auch auf dem Handy im Hochformat darstellen 🙂

                                            Mir ist was aufgefallen, glaube der Kommentar passt nicht :

                                            const TblShowTimerMessageCol = false; //Tabellenspalte Schaltung nur bei Abwesenheit ausgeben?
                                            
                                            P 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            869
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            40
                                            500
                                            85931
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo