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 goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • 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 @mpl1338 last edited by

      @mpl1338 sagte in [Vorlage] Flexibles Timerskript + Vis:

      2022-10-08 09:00:00.015 error at GetDeviceName (script.js.jarvis.TimerScript:500:41) javascript.0
      2022-10-08 09:00:00.015 error Error in callback: TypeError: Cannot read properties of null (reading 'common')

      Naja, steht ja fast im Klartext da was das Problem ist, Irgendein Devicename hat nen Null Wert. Mehr kann ich auch nicht sagen bei so wenig Infos.

      M 1 Reply Last reply Reply Quote 0
      • M
        mpl1338 @Pittini last edited by

        @pittini

        das sind die verwendeten objekte. Über IOB und Visu funktioniert es.

        Screenshot 2022-10-09 095413.png

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

          @mpl1338 Ich brauch den ganzen Zweig vom Objektbaum, nicht nur den letzten channel. Denk da gibts ne ungewöhliche Struktur evtl, kann ich bei dem Ausschnitt aber nicht feststellen

          M 1 Reply Last reply Reply Quote 0
          • U
            UncleB last edited by

            Super Script @Pittini
            Hat auf Anhieb geklappt, bei mir steht im Zielname der Ordner in dem der DP liegt,
            Übersichtlicher wärs für mich wenn hier wirklich der Name des DPs stehen würde.
            Hast ne Idee was ich falsch gemacht habe?
            Screenshot (99).png

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

              @uncleb

              Benenne dir das doch einfach um wie du es haben möchtest. Das Timerscript bietet dafür in der Vis die Möglichkeit.

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

                @dominik-f Ahhh das habv ich überlesen in der Doku, klappt danke

                1 Reply Last reply Reply Quote 0
                • M
                  mpl1338 @Pittini last edited by

                  @pittini said in [Vorlage] Flexibles Timerskript + Vis:

                  @mpl1338 Ich brauch den ganzen Zweig vom Objektbaum, nicht nur den letzten channel. Denk da gibts ne ungewöhliche Struktur evtl, kann ich bei dem Ausschnitt aber nicht feststellen

                  Screenshot 2022-10-16 123522.png

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

                    @mpl1338 Ja, seh schon das Problem, liegt aber nicht direkt am Skript, sondern an Deiner unüblichen Struktur. Das Skript erwartet übergeordnet nen channel. Du hast aber keinen (was an sich nicht korrekt ist) und das löst den Fehler bzgl. dem null Wert aus. Lösen kannst das Problem auf 2 Arten. Du kannst aus dem "nichts" nen channel machen, oder Du legst Dir für den Datenpunkt nen Alias an und verweist darauf.

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      mpl1338 @Pittini last edited by

                      @pittini die Struktur kommt durch die ETS bzw durch den KNX Adapter und spiegelt die KNX ETS Struktur wieder. Wenn ich das was an der Struktur ändere bekomme ich mit dem KNX Adapter wahrscheinlich Problem. Aber dieses Problem muss eigentlich jeder haben, der mit dem KNX Adapter arbeitet

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

                        @mpl1338 sagte in [Vorlage] Flexibles Timerskript + Vis:

                        @pittini die Struktur kommt durch die ETS bzw durch den KNX Adapter und spiegelt die KNX ETS Struktur wieder. Wenn ich das was an der Struktur ändere bekomme ich mit dem KNX Adapter wahrscheinlich Problem.

                        Glaub ich nicht mal, Du änderst ja nicht die Struktur an sich, sondern wandelst mur ein "nichts" in ein Objekt (was wiederum dann nen Namen hat, welchen das Skript abrufen möchte) um. Aber ich hab Dir ja auch nen Alternativvorschlag oben schon gemacht - Alias.

                        1 Reply Last reply Reply Quote 0
                        • D
                          diwoma last edited by

                          Hi,
                          ich eine vielleicht unnötige Frage und es wird vielleicht nicht gehen, aber trotzdem:
                          Zur Zeit steure ich Zeitpläne mit Adapter Time-Switch zur vollsten Zufriedenheit mit der Funktion an sich.
                          Mich stört eigentlich nur das große Layout in der Vis.
                          9b2f9471-96c3-4f22-bead-c12309094546-grafik.png
                          Die Ausgaben in Tabellenform sind mir für die Übersicht eigentlich lieber.
                          Aber hier habe ich einen für mich eigentlich sehr wichtigen Vorteil:

                          1. Alle Zeiten sind zu einem Datenpunkt zugeordnet sichtbar, also zusammenhängend
                          2. Ich kann den Zustand des Datenpunktes in dieser Kachel einfach ändern und damit den Timer "übersteuern"

                          Diese Möglichkeiten sind in diesem Skript aber anscheinend nicht gegeben, oder?

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            FuXXz2 @diwoma last edited by

                            @diwoma Vor allem sind die Zeilen nicht sortierbar. Nach spätestens 20 Timern drehste durch 🙂
                            Übersichtlich ist diese Tabelle also gar nicht.

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

                              @Pittini

                              Ich habe heute folgende Fehlermeldung bekommen:

                              
                              javascript.0
                              2022-11-23 16:29:34.016	warn	at processTimers (node:internal/timers:502:7)
                              
                              javascript.0
                              2022-11-23 16:29:34.016	warn	at listOnTimeout (node:internal/timers:559:17)
                              
                              javascript.0
                              2022-11-23 16:29:34.016	warn	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                              
                              javascript.0
                              2022-11-23 16:29:34.016	warn	at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                              
                              javascript.0
                              2022-11-23 16:29:34.015	warn	at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:171:15)
                              
                              javascript.0
                              2022-11-23 16:29:34.015	warn	at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1595:34)
                              
                              javascript.0
                              2022-11-23 16:29:34.015	warn	at Object.<anonymous> (script.js.common.Timer:621:13)
                              
                              javascript.0
                              2022-11-23 16:29:34.015	warn	at DoAction (script.js.common.Timer:776:25)
                              
                              javascript.0
                              2022-11-23 16:29:34.015	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1719:20)
                              
                              javascript.0
                              2022-11-23 16:29:34.009	warn	You are assigning a string to the state "scene.0.Beleuchtung.Weihnachtsbeleuchtung_Innen" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become an error in future versions.
                              

                              Ich verstehe hierbei nicht, warum ein String gesendet wurde. In Vis habe ich Einschalten angegeben und dann sollte doch True übergeben werden oder?

                              Unbenannt.JPG

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

                                @dominik-f Sehr seltsam. Ja, bei Einschalten wird true gesendet, das kannste auch sehen wenns nicht ausgeblendet wär (Spalte "sende" in meinem pic). Hab grad keine Idee zu dem Prob, musst mal beobachten. Kannst auch versuchen statt "EInschalten" das "Wert senden" zu nehmen und dort true einzutragen.

                                2022-11-24 18_48_47-vis.png

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

                                  @pittini

                                  Habs mal eingeblendet und dort steht auch das true gesendet wird. Ich werde es mal beobachten. Es war auch das erste Mal, dass dieser Fehler aufgetaucht ist. Vielleicht war es einfach ein Zusammenspiel unglücklicher Umstände^^

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    diwoma @Pittini last edited by

                                    @pittini said in [Vorlage] Flexibles Timerskript + Vis:

                                    Btw. Eine alphabetische Sortierung ist nicht möglich oder?

                                    Nein, ist nicht drin oder geplant.

                                    Hi pittini,
                                    arbeitest Du noch aktiv am Script?

                                    Die Sortierung scheint doch gefragt zu sein.
                                    Und es betrifft eigentlich nur die Liste, die ja als HTML-Table codiert aufgebaut wird.
                                    Die Nummer des Timers ist für die Anzeige eigentlich nicht relevant, ausser das er unique ist und den Index darstellt und damit den DP definiert, der editiert wird.

                                    Ich denke an ein Stringfeld, in das man irgendwelche Werte schreibt (z.b. 01.01.02, Pool-01, usw), den Wert zusätzlich als Datenpunkt (z.b. "Sort") des Timers schreibt und vor der Erstellung der VIS-Tabelle das Array danach sortiert. Eventuell die Timer-Nummer noch als zusätzlichen Vergleich in die Sortierung einbinden, bei leeren oder gleichen Stringwerten.

                                    Damit wäre der indexer "x", zwar nicht mehr die Timernummer, aber den könnte man aus den Datenpunkt ja extrahieren.

                                    Siehst Du darin unüberwindliche oder auch nur große Probleme?
                                    Ansonsten würde ich es mit meinen bescheidenen Fähigkeiten in JS mal versuchen.

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

                                      @diwoma sagte in [Vorlage] Flexibles Timerskript + Vis:

                                      Hi pittini,
                                      arbeitest Du noch aktiv am Script?

                                      Nicht wirklich. Es tut was ich brauch.

                                      Siehst Du darin unüberwindliche oder auch nur große Probleme?

                                      Machbar ist (fast) alles.

                                      Ansonsten würde ich es mit meinen bescheidenen Fähigkeiten in JS mal versuchen.

                                      Ja klar, hau rein.

                                      D 3 Replies Last reply Reply Quote 0
                                      • F
                                        FuXXz2 last edited by

                                        Hi zusammen,
                                        kann mir jemand Helfen, folgende Meldungen zu behandeln? 🙂
                                        In der Aufzählung für den Timer sind Aliase und wenn diese geschaltet werden, gibt es nen Eintrag ins Log.
                                        Er fängt an mit alias.0.Licht.Ankleide existiert nicht, das stimmt auch, denn es heißt alias.0.Licht.Ankleide.Fenster, so wie es im Datenpunkt unter dem
                                        entsprechenden Timer auch zu sehen ist.
                                        Screenshot 2022-11-28 153904.png
                                        Trotzdem macht er aber folgende Fehler.

                                        javascript.0
                                        	2022-11-28 15:29:00.031	error	at processTimers (node:internal/timers:502:7)
                                        javascript.0
                                        	2022-11-28 15:29:00.031	error	at listOnTimeout (node:internal/timers:559:17)
                                        javascript.0
                                        	2022-11-28 15:29:00.031	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                                        javascript.0
                                        	2022-11-28 15:29:00.031	error	at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                                        javascript.0
                                        	2022-11-28 15:29:00.030	error	at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:171:15)
                                        javascript.0
                                        	2022-11-28 15:29:00.030	error	at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1595:34)
                                        javascript.0
                                        	2022-11-28 15:29:00.030	error	at Object.<anonymous> (script.js.Aktiv.automatik.PittiniTimer_2_2_0:621:13)
                                        javascript.0
                                        	2022-11-28 15:29:00.030	error	at DoAction (script.js.Aktiv.automatik.PittiniTimer_2_2_0:810:64)
                                        javascript.0
                                        	2022-11-28 15:29:00.030	error	at GetDeviceName (script.js.Aktiv.automatik.PittiniTimer_2_2_0:500:41)
                                        javascript.0
                                        	2022-11-28 15:29:00.029	error	Error in callback: TypeError: Cannot read properties of null (reading 'common')
                                        javascript.0
                                        	2022-11-28 15:29:00.027	warn	script.js.Aktiv.automatik.PittiniTimer_2_2_0: Object "alias.0.Licht.Ankleide" does not exist
                                        
                                        Dominik F. P 2 Replies Last reply Reply Quote 0
                                        • D
                                          diwoma @Pittini last edited by

                                          @pittini Na gut. Ich schreib Dir, wenn ich es aufgebe 😊

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

                                            @fuxxz2

                                            Zeig mal bitte den Alias Datenpunkt den du schalten möchtest

                                            F 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            792
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            40
                                            500
                                            75831
                                            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