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

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

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

      Thread zum Timerskript unter: https://github.com/Pittini/iobroker-Timer

      2020-05-26 15_48_32-Window.png

      Dominik F. sigi234 W qqolli B 8 Replies Last reply Reply Quote 7
      • Dominik F.
        Dominik F. @Pittini last edited by Dominik F.

        @Pittini

        Unbenannt.PNG Unbenannt1.PNG Unbenannt2.PNG Unbenannt3.PNG

        Hier das Log ab Sciptstop und anschließendem Neustart

        19:50:53.307	info	javascript.0 (4663) Stop script script.js.common.Timer
        19:50:53.309	info	javascript.0 (4663) script.js.common.Timer: Timer 1 killed
        19:50:53.310	info	javascript.0 (4663) script.js.common.Timer: Timer 2 killed
        19:50:53.310	info	javascript.0 (4663) script.js.common.Timer: Timer 3 killed
        19:50:53.310	info	javascript.0 (4663) script.js.common.Timer: Timer 4 killed
        19:50:54.453	info	javascript.0 (4663) Start javascript script.js.common.Timer
        19:50:54.463	warn	javascript.0 (4663) at script.js.common.Timer:6:16
        19:50:54.466	info	javascript.0 (4663) script.js.common.Timer: Setting all Timers
        19:50:54.466	info	javascript.0 (4663) script.js.common.Timer: Timer 1 wird gesetzt
        19:50:54.466	info	javascript.0 (4663) script.js.common.Timer: CronString für Timer 1 erstellt 00 10 * * *
        19:50:54.466	info	javascript.0 (4663) script.js.common.Timer: Timer 2 wird gesetzt
        19:50:54.467	info	javascript.0 (4663) script.js.common.Timer: CronString für Timer 2 erstellt 00 15 * * *
        19:50:54.467	info	javascript.0 (4663) script.js.common.Timer: Timer 3 wird gesetzt
        19:50:54.467	info	javascript.0 (4663) script.js.common.Timer: CronString für Timer 3 erstellt 00 13 * * *
        19:50:54.468	info	javascript.0 (4663) script.js.common.Timer: Timer 4 wird gesetzt
        19:50:54.469	info	javascript.0 (4663) script.js.common.Timer: CronString für Timer 4 erstellt 00 18 * * *
        19:50:54.470	info	javascript.0 (4663) script.js.common.Timer: registered 53 subscriptions and 4 schedules
        

        Edit: Die Switchtarget Datenpunkte der einzelnen Timer werden nicht gesetzt. Bei meinem ersten Test hatte ich die manuell eingetragen und da es nicht funktioniert hat, dachte ich das wäre das Problem. Daher wollte ich die dann in den Datenpunkt Timertarget eintragen was nicht funktioniert

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

          @Dominik-F Wieso hast Du 4mal den gleichen Datenpunkt da drin? Die sind komplett identisch, das brauchts nicht, keine Ahnung wie das Skript da drauf reagiert.
          Zum anderen hast Du im Vis die Anwesenheitspunkte rausgenommen, da mußte mal manuell guggen ob die defaults passen.
          Das Log is eigentlich soweit ok (wenn Du 4 Timer gesetzt hast). Wenn die zu den angegebenen Zeiten nicht schalten, liegts vermutlich daran dass die Anwesenheitsgeschichte nicht passt, das wird nämlich erst abgefragt kurz bevor er schaltet.

          Edit:
          So sollte ein funktioniereder Timer in de2020-05-10 20_01_50-Window.png r Objektliste aussehen:

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

            @Pittini

            Also mein Ziel war es, insgesamt 2 Timer mit ein/aus zu haben, so das meine Poolpumpe 2 mal am Tag an geht und 2 mal aus. Daher 4 Timer. Da es immer der gleiche Datenpunkt ist der geschaltet werden soll, hab ich 4 mal den gleichen Datenpunkt eingetragen.

            Die Datenpunkte onlyifpresence und onlyifnopresence sind bei allen Timern false.

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

              @Pittini

              Okay, hab die Presencedatenpunkte jetzt mal auf true gestellt. Jedoch ist der Datenpunkt Switschtarget nur beim ersten Timer gefüllt, die anderen sind leer

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

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

                Also mein Ziel war es, insgesamt 2 Timer mit ein/aus zu haben, so das meine Poolpumpe 2 mal am Tag an geht und 2 mal aus. Daher 4 Timer. Da es immer der gleiche Datenpunkt ist der geschaltet werden soll, hab ich 4 mal den gleichen Datenpunkt eingetragen.

                Den Datenpunkt brauchste aber nur einmal eintragen, das is ja nur für die Dropdownliste und um zu wissen was er schalten soll.

                Die Datenpunkte onlyifpresence und onlyifnopresence sind bei allen Timern false.

                Na da haben wirs doch schon. Wenn beide false sind heisst das nicht bei Anwesenheit und nicht bei Abwesenheit schalten, also nie. setzt die mal auf true beide

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

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

                  Jedoch ist der Datenpunkt Switschtarget nur beim ersten Timer gefüllt, die anderen sind leer

                  Dann haste das Vis nicht richtig angepasst. Jedes davon muß auf einen anderen Timer in der Objektliste zeigen.

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

                    @Pittini

                    Okay, habe das nun mit deiner View mal getestet, einschalten ging, beim Ausschalten gab es folgende Meldung im Log:

                    javascript.0	2020-05-10 20:16:00.009	warn	(4663) at processTimers (internal/timers.js:492:7)
                    javascript.0	2020-05-10 20:16:00.008	warn	(4663) at listOnTimeout (internal/timers.js:549:17)
                    javascript.0	2020-05-10 20:16:00.008	warn	(4663) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
                    javascript.0	2020-05-10 20:16:00.008	warn	(4663) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
                    javascript.0	2020-05-10 20:16:00.008	warn	(4663) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
                    javascript.0	2020-05-10 20:16:00.008	warn	(4663) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1269:34)
                    javascript.0	2020-05-10 20:16:00.008	warn	(4663) at Object.<anonymous> (script.js.common.Timer:103:13)
                    javascript.0	2020-05-10 20:16:00.008	warn	(4663) at DoAction (script.js.common.Timer:186:17)
                    javascript.0	2020-05-10 20:16:00.008	warn	(4663) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1354:20)
                    javascript.0	2020-05-10 20:16:00.005	warn	(4663) State "" not found
                    

                    Edit: Der Switchdatenpunkt wurde nun gefüllt.

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

                      @Dominik-F State "" not found heißt dass da der Datenpunkt (noch) nicht gepaßt hat.
                      Wie ist jetzt der aktuelle Status, was geht, was geht nicht? Zeig mal die Objektliste vom Auschaltdatenpunkt.

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

                        @Pittini

                        einschalten ging, ausschalten ging nicht

                        Unbenannt.PNG

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

                          @Dominik-F Objektliste schaut ok aus. Starte mal die js Instanz neu, evtl hängt da noch was von den Fehlversuchen drin. Wenn einschalten geht, muß ausschalten auch gehen, das ist die gleiche Funktion (DoAction), nur dass halt einmal true und andersrum false gesetzt wird.

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

                            @Pittini

                            Perfekt, jetzt geht es. Ich werde meine Vis dann jetzt so umbauen, dass sie auch funktioniert.

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

                              @Pittini

                              Hättest du dann eventuell interesse an der View als alternative zu deiner auf Github? Würde dann ein kleines Projekt dafür machen und dir das zum Hochladen zur Verfügung stellen

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

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

                                Hättest du dann eventuell interesse an der View als alternative zu deiner auf Github? Würde dann ein kleines Projekt dafür machen und dir das zum Hochladen zur Verfügung stellen

                                Grundsätzlich ja gern, aber erst wenn das update raus geht weil sich da so einiges ändert. Ich werde das auf meine anderen Skripte abstimmen, also Auswahl TimerTargets via Funktion und nur ein Timer im Vis wo mit Dropdown ausgewählt wird welchen Timer man bearbeiten möchte und dazu ne Tabelle wo alle Timer als Übersicht dargestellt werden. D.h. Du mußt das dann eh anpassen.

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

                                  @Dominik-F Soo, update is raus, wär nett wenn Du testen würdest.

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

                                    @Pittini

                                    Mache ich gerne. Werde das im Laufe des Abends installieren und testen. Auf den ersten Blick siehts super aus. Ich frage mich gerade nur, wie die Darstellung auf meinem Handy aussehen wird da doch sehr viele Spalten vorhanden sind. Hab aber gesehen, dass man Spalten ausblenden kann. Bin sehr gespannt und werde dir eine Rückmeldung geben

                                    1 Reply Last reply Reply Quote 0
                                    • sigi234
                                      sigi234 Forum Testing Most Active @Pittini last edited by sigi234

                                      @Pittini

                                      Hallo, Super.... teste gerade.

                                      Zitat:

                                      Ab hier habt Ihr mit dem Skript und der Objektliste nichts mehr zu tun, alles weitere wird via Vis erledigt, ihr solltet nun die beigefügte Vorlage (TimerView.txt) via "Widgets importieren" in Euer Vis Projekt integrieren und aufrufen.
                                      

                                      Wie jetzt? Als View oder Widget?

                                      Screenshot (2528).png

                                      javascript.0	2020-05-22 14:59:10.998	warn	(15356) at processTicksAndRejections (internal/process/task_queues.js:97:5)
                                      javascript.0	2020-05-22 14:59:10.998	warn	(15356) at runMicrotasks (<anonymous>)
                                      javascript.0	2020-05-22 14:59:10.998	warn	(15356) at C:\Program Files\iobroker\Test\node_modules\standard-as-callback\built\index.js:19:49
                                      javascript.0	2020-05-22 14:59:10.997	warn	(15356) at tryCatcher (C:\Program Files\iobroker\Test\node_modules\standard-as-callback\built\utils.js:11:23)
                                      javascript.0	2020-05-22 14:59:10.997	warn	(15356) at C:\Program Files\iobroker\Test\node_modules\iobroker.js-controller\node_modules\iobroker.objects-redis\index.js:1:93234
                                      javascript.0	2020-05-22 14:59:10.997	warn	(15356) at C:\Program Files\iobroker\Test\node_modules\iobroker.javascript\lib\sandbox.js:1910:38
                                      javascript.0	2020-05-22 14:59:10.997	warn	(15356) at Object.<anonymous> (script.js.Sigi.Timer:210:17)
                                      javascript.0	2020-05-22 14:59:10.997	warn	(15356) at FillTimerArray (script.js.Sigi.Timer:237:25)
                                      javascript.0	2020-05-22 14:59:10.996	warn	(15356) getState "undefined" not found (3)
                                      javascript.0	2020-05-22 14:59:10.996	info	(15356) script.js.Sigi.Timer: CreateStates fertig!
                                      javascript.0	2020-05-22 14:59:10.995	info	(15356) script.js.Sigi.Timer: CreateStates fertig!
                                      javascript.0	2020-05-22 14:59:10.974	info	(15356) script.js.Sigi.Timer: Reaching CreateTrigger()
                                      javascript.0	2020-05-22 14:59:10.974	info	(15356) script.js.Sigi.Timer: Reaching ConvertPresence. TempPresence=true
                                      javascript.0	2020-05-22 14:59:10.974	info	(15356) script.js.Sigi.Timer: Reaching SetValueListPairs()
                                      javascript.0	2020-05-22 14:59:10.974	info	(15356) script.js.Sigi.Timer: Reaching CreateTimerCountList()
                                      javascript.0	2020-05-22 14:59:10.971	info	(15356) script.js.Sigi.Timer: Reaching Init()
                                      javascript.0	2020-05-22 14:59:10.971	info	(15356) script.js.Sigi.Timer: Reaching Main
                                      javascript.0	2020-05-22 14:59:10.971	info	(15356) script.js.Sigi.Timer: CreateStates fertig!
                                      javascript.0	2020-05-22 14:59:10.964	info	(15356) script.js.Sigi.Timer: registered 0 subscriptions and 0 schedules
                                      javascript.0	2020-05-22 14:59:10.959	info	(15356) Start javascript script.js.Sigi.Timer
                                      javascript.0	2020-05-22 14:59:10.789	info	(15356) script.js.Sigi.Timer: Timer Schedule 1 killed
                                      javascript.0	2020-05-22 14:59:10.789	info	(15356) script.js.Sigi.Timer: Timer Schedule 0 killed
                                      javascript.0	2020-05-22 14:59:10.788	info	(15356) Stop script script.js.Sigi.Timer
                                      javascript.0	2020-05-22 14:58:51.840	info	(15356) script.js.Sigi.Timer: Reaching MakeTable
                                      

                                      Screenshot (2530).png

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

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

                                        Wie jetzt? Als View oder Widget?

                                        Es ist ein View, die darin enthaltenen Widgets werden via Widgets importieren in den (leeren) View eingefügt.
                                        Aber upsi, ich seh grad ich hab das noch gar nicht aktualisierert, das is das alte noch. Is jetzt aktualisiert.

                                        Den Fehler muß ich mal guggen.

                                        Edit: Hab da nen Verdacht, hol Dir bitte mal die 2.0.1, hab da noch paar Logpunkte eingebaut.

                                        sigi234 Dominik F. 2 Replies Last reply Reply Quote 0
                                        • sigi234
                                          sigi234 Forum Testing Most Active @Pittini last edited by sigi234

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

                                          Edit: Hab da nen Verdacht, hol Dir bitte mal die 2.0.1, hab da noch paar Logpunkte eingebaut.

                                          Mit der neuen View hat sich das Problem gelöst. V 2.0.1 noch nicht installiert.

                                          Dito mit Version V 2.0.1

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

                                            @Pittini

                                            Bin gerade am Testen. Bei mir wird der State richtig angezeigt (Grün/Rot) aber der Datenpunkt schaltet nicht

                                            Unbenannt.PNG

                                            P sigi234 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            671
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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