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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [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

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

      Ich weiß nicht ob es hier schon angemerkt wurde oder schon gelöst wurde weil ich jetzt länger nicht mehr so intensiv dem Thread folgen konnte.
      Mir ist aufgefallen, dass wenn ich z.B. Beginn Sonnenuntergang als Zeit auswähle, der richtige Zeitpunkt ausgewählt wird, sich aber über ein paar Tage hinweg nicht selbstständig aktualisiert. Erst beim erneuten speichern eines Timers wird der Zeitpunkt aktualisiert. Ich könnte mir vorstellen, dass dies nicht von dir gewollt ist.

      Muß ich mir anguggen, sollte nicht so sein, ist bei mir auch nicht so. Betrifft das nur nen bestimmten Astroevent oder alle? Und betrifft das evtl. nur inaktive Timer?

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

        @Pittini

        sorry für die späte Antwort.
        Das ist mir bisher nur bei "beginn Sonnenuntergang" aufgefallen, da es die einzigen sind die ich bisher genutzt habe. Teste das mal mit nem anderen. Die beiden Timer sind aktiv.

        1 Reply Last reply Reply Quote 0
        • A
          AndreasW63 last edited by Negalein

          Hallo,
          ich habe das Timerskript seit einigen Tagen im Einsatz.
          Bei einem der Tasks funktioniert das Ausschalten nach "Sonnenaufgang" nicht.
          Zu diesem Zeitpunkt habe ich folgende Meldungen im Logfile des IOBroker:

          javascript.0	2020-12-01 08:18:13.064	info	(19670) script.js.Timerskript: GoToTommorrow requested, TodayAstroIsOver automatically set to true, skipping check
          javascript.0	2020-12-01 08:18:13.062	info	(19670) script.js.Timerskript: Timer 2, DVES_212_Terrasse, switched off
          javascript.0	2020-12-01 08:18:13.058	warn	(19670) at processTimers (internal/timers.js:497:7)
          javascript.0	2020-12-01 08:18:13.058	warn	(19670) at listOnTimeout (internal/timers.js:554:17)
          javascript.0	2020-12-01 08:18:13.058	warn	(19670) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/schedule.js:510:7)
          javascript.0	2020-12-01 08:18:13.057	warn	(19670) at /opt/iobroker/node_modules/node-schedule/lib/schedule.js:552:11
          javascript.0	2020-12-01 08:18:13.057	warn	(19670) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/schedule.js:173:10)
          javascript.0	2020-12-01 08:18:13.056	warn	(19670) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1273:34)
          javascript.0	2020-12-01 08:18:13.056	warn	(19670) at Object.<anonymous> (script.js.Timerskript:608:13)
          javascript.0	2020-12-01 08:18:13.055	warn	(19670) at DoAction (script.js.Timerskript:673:21)
          javascript.0	2020-12-01 08:18:13.055	warn	(19670) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1358:20)
          javascript.0	2020-12-01 08:18:13.051	warn	(19670) You are assigning a boolean to the state "sonoff.0.DVES_212_Terrasse.Time" which expects a string. Please fix your code to use a string or change the state type to boolean. This warning might
          javascript.0	2020-12-01 08:18:13.017	info	(19670) script.js.Timerskript: GoToTommorrow requested, TodayAstroIsOver automatically set to true, skipping check
          

          Kann mir jemand eine Tip geben wo ich ansetzen kann?

          Gruß Andreas

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

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

            Hallo,
            ich habe das Timerskript seit einigen Tagen im Einsatz.
            Bei einem der Tasks funktioniert das Ausschalten nach "Sonnenaufgang" nicht.
            Zu diesem Zeitpunkt habe ich folgende Meldungen im Logfile des IOBroker:

            Kann mir jemand eine Tip geben wo ich ansetzen kann?

            Gruß Andreas

            Doch, es funktioniert, nur versucht Du offenbar das "aus", also false in nen Datenpunkt zu schreiben der ne Zeit als String erwartet. Siehe Log:

            > javascript.0	2020-12-01 08:18:13.051	warn	(19670) You are assigning a boolean to the state "sonoff.0.DVES_212_Terrasse.Time" which expects a string. Please fix your code to use a string or change the state type to boolean. 
            
            A 1 Reply Last reply Reply Quote 0
            • A
              AndreasW63 @Pittini last edited by

              @Pittini
              Danke für deine prompte Antwort.
              Ja, da habe ich im Eifer des Gefechtes den falschen Datenpunkt ausgewählt ........
              "Entschuldigen Sie die Störung......" 😉
              Gruß Andreas

              Rene55 1 Reply Last reply Reply Quote 0
              • Rene55
                Rene55 @AndreasW63 last edited by

                @Pittini
                Darf ich hier auch nochmals eine Frage stellen? Ich möchte gerne meine Gosund (mit Tasmota) über das Timerscript steuern. Beim einlesen der TimerTargets laufe ich auf einen Fehler:

                javascript.0	2020-12-01 16:36:33.659	error	(8821) Error in callback: TypeError: Cannot read property 'common' of null
                javascript.0	2020-12-01 16:36:33.637	warn	(8821) Object "mqtt.0.SmartHome.Gosund4.cmnd" does not exist
                

                DerDatenpunkt den ich ausgewählt habe war eigentlich "mqtt.0.SmartHome.Gosund4.cmnd.POWER", womit es eigentlich funktionieren müsste. Muss ich noch etwas anderes einstellen?
                LG Rainer

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

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

                  DerDatenpunkt den ich ausgewählt habe war eigentlich "mqtt.0.SmartHome.Gosund4.cmnd.POWER", womit es eigentlich funktionieren müsste. Muss ich noch etwas anderes einstellen?
                  LG Rainer

                  Zeig mal nen Screenshot von dem konfigurierten Datenpunkt, "eigentlich" is immer sone Sache. Der Fehler im Log sagt lediglich aus dasses den state angeblich nicht gibt, jetzt heists rausfinden warum.

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

                    @Pittini
                    Hier der Screenshot rund um den Gosund:!
                    Gosund4.png

                    P gelberlemmy 2 Replies Last reply Reply Quote 0
                    • P
                      Pittini Developer @Rene55 last edited by

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

                      @Pittini
                      Hier der Screenshot rund um den Gosund:!
                      Gosund4.png

                      Ich seh da nirgends ne TimerTarget Zuweisung. Wo is die? Und was steht im Raw von dem Button Datenpunkt?

                      1 Reply Last reply Reply Quote 0
                      • A
                        AndreasW63 last edited by

                        Hallo,
                        wie kann ich die Timereinträge sortieren ?
                        Zu einzelnen Objekten habe ich weitere Schaltzeiten hinterlegt. Es wäre schön wenn die Objekte untereinander stehen würden.
                        Gruß Andreas

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

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

                          Hallo,
                          wie kann ich die Timereinträge sortieren ?
                          Zu einzelnen Objekten habe ich weitere Schaltzeiten hinterlegt. Es wäre schön wenn die Objekte untereinander stehen würden.
                          Gruß Andreas

                          Sortierung ist nicht implementiert und auch nicht geplant. Die Reihenfolge in der Du anlegst is auch die Anzeigereihenfolge.

                          1 Reply Last reply Reply Quote 0
                          • Rene55
                            Rene55 last edited by

                            @Pittini
                            Ich hatte nach dem Fehler natürlich den TimerTarget wieder entfernt.
                            Hier nochmals der Screenshot: Gosund4.png
                            und der daraus resultierende Logeintrag:
                            error_218.png
                            Ich hoffe, dass ich hiermit weiterhelfen kann.
                            LG Rainer

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

                              Vorerst danke für das tolle Timerscript👍

                              Ich habe dazu zwei fragen.

                              1. Mein test Timer funktioniert zwar, aber ich bekomme folgende Einträge ins log, bei jedem Schaltvorgang:
                              javascript.0	2020-12-04 14:41:00.014	error	(24887) at processTimers (internal/timers.js:497:7)
                              javascript.0	2020-12-04 14:41:00.014	error	(24887) at listOnTimeout (internal/timers.js:554:17)
                              javascript.0	2020-12-04 14:41:00.013	error	(24887) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/schedule.js:510:7)
                              javascript.0	2020-12-04 14:41:00.013	error	(24887) at /opt/iobroker/node_modules/node-schedule/lib/schedule.js:552:11
                              javascript.0	2020-12-04 14:41:00.013	error	(24887) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/schedule.js:173:10)
                              javascript.0	2020-12-04 14:41:00.013	error	(24887) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1291:34)
                              javascript.0	2020-12-04 14:41:00.013	error	(24887) at Object.<anonymous> (script.js.tests.Pittini_iobroker-Timer:608:13)
                              javascript.0	2020-12-04 14:41:00.012	error	(24887) at DoAction (script.js.tests.Pittini_iobroker-Timer:676:48)
                              javascript.0	2020-12-04 14:41:00.012	error	(24887) at Meldung (script.js.tests.Pittini_iobroker-Timer:111:13)
                              javascript.0	2020-12-04 14:41:00.012	error	(24887) Error in callback: ReferenceError: WriteEventLog is not defined
                              
                              1. Sieht bei mir die Zeiteingabe komisch aus. Da hat er irgendwelche Stylings nicht genutzt.
                                Screenshot 2020-12-04 144616.jpg
                              qqolli P 2 Replies Last reply Reply Quote 0
                              • qqolli
                                qqolli @FuXXz2 last edited by

                                @FuXXz2

                                Hallo,

                                bei mir sieht/sah es auch immer so aus. Habe es aber nie richtig "ordentlich" hinbekommen. Falls Du eine Lösung findest, wäre ich auch dankbar dafür wenn Du sie teilen würdest 🙂

                                f1f6c52a-c725-4a02-b3b4-8ca6278569b4-image.png

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

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

                                  Mein test Timer funktioniert zwar, aber ich bekomme folgende Einträge ins log, bei jedem Schaltvorgang:

                                  Na, steht doch da was der Fehler ist. Stell mal UseEventLog in den Einstellungen auf false wie auch sowohl in der Anleitung als auch im Skript selber ausdrücklich gefordert.

                                  Sieht bei mir die Zeiteingabe komisch aus. Da hat er irgendwelche Stylings nicht genutzt.

                                  Ja, ich kenn das Problem, wüsste aber nicht was ich dagegen machen sollte, is auch nicht bei jedem und bisher hab ich noch nicht rausgefunden was bei jenen wo es funktioniert anders wär. Evtl. kann euch der Entwickler vom MaterialDesign CSS/Skript da helfen, hab Ihr da schon mal nachgefragt?: https://forum.iobroker.net/topic/30363/projekt-mdcss-v2-material-design-css-version-2/634

                                  1 Reply Last reply Reply Quote 1
                                  • Rene55
                                    Rene55 last edited by

                                    @Pittini Ich hatte den raw vom Datenpunkt noch vergessen. Hier ist er:

                                    {
                                      "common": {
                                        "name": "SmartHome/Gosund4/cmnd/POWER",
                                        "write": true,
                                        "read": true,
                                        "role": "state",
                                        "desc": "mqtt client variable",
                                        "type": "string",
                                        "custom": {
                                          "influxdb.0": {
                                            "enabled": true,
                                            "changesOnly": false,
                                            "debounce": "",
                                            "maxLength": 10,
                                            "retention": "31536000",
                                            "changesRelogInterval": 0,
                                            "changesMinDelta": "",
                                            "storageType": "String",
                                            "aliasId": ""
                                          }
                                        }
                                      },
                                      "native": {
                                        "topic": "SmartHome/Gosund4/cmnd/POWER"
                                      },
                                      "type": "state",
                                      "from": "system.adapter.influxdb.0",
                                      "user": "system.user.admin",
                                      "ts": 1606836913713,
                                      "_id": "mqtt.0.SmartHome.Gosund4.cmnd.POWER",
                                      "acl": {
                                        "object": 1636,
                                        "state": 1636,
                                        "owner": "system.user.admin",
                                        "ownerGroup": "system.group.administrator"
                                      }
                                    }
                                    

                                    LG Rainer

                                    P 1 Reply Last reply Reply Quote 0
                                    • Q
                                      quorle last edited by

                                      Servus @Pittini ich hab nun dein Timerscript einmal eingebunden. Hätte aber dazu noch eine Frage, kann man mit diesem Script einen Intervall machen. Sprich jeweils für eine bestimmte Zeit einschalten und dann wieder für eine bestimmte Zeit ausschalten. Und dies sollte sich dann immer widerholen.

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

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

                                        Servus @Pittini ich hab nun dein Timerscript einmal eingebunden. Hätte aber dazu noch eine Frage, kann man mit diesem Script einen Intervall machen. Sprich jeweils für eine bestimmte Zeit einschalten und dann wieder für eine bestimmte Zeit ausschalten. Und dies sollte sich dann immer widerholen.

                                        Naja, für nen reinen Intervall brauchst kein Timerskript, dasn 4 Zeiler. Und nein, ist nicht drin oder vorgesehen.

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

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

                                          Ich hatte den raw vom Datenpunkt noch vergessen. Hier ist er:

                                          Ok, ich seh zwei Probleme. Zum einen ist der Power true/false kein Boolean Datenpunkt und zum anderen der channel kein echter channel. Erstell mal ein kleines Skript mit diesem Einzeiler, lass es einmal laufen und starte dann das Timerskript nochmal und gugg was der Fehler macht.

                                          setObject("mqtt.0.SmartHome.Gosund4.cmnd", { type: 'channel', common: { name: "" }, native: {} }); //Channel machen
                                          
                                          

                                          Bleibt der Fehler gleich, versuch in den Timereinstellungen nicht die Option Anschalten oder Ausschalten zu verwenden, sondern versuchs mal mit "Wert setzen" und als Wert mal true oder false zu verwenden.

                                          1 Reply Last reply Reply Quote 0
                                          • Rene55
                                            Rene55 last edited by

                                            @Pittini Ich bin jetzt ein Stück weiter. Dein Fix-Script hat den Channel angelegt und das Timerscript kann das Device anlegen und schalten.
                                            Gosund_4.png
                                            Mit den eingebauten Funktionen Einschalten und Ausschalten klappt es, obwohl sich ioBroker dann beschwert, dass er hierfür einen String erwartet, aber ein boolean bekommt.

                                            You are assigning a boolean to the state "mqtt.0.SmartHome.Gosund4.cmnd.POWER" which expects a string. Please fix your code to use a string or change the state type to boolean. This warning might become an error in future versions.
                                            

                                            Das senden des Wertes "true" hat den gleichen Effekt: Schalten ja aber mit gleicher Warnung.
                                            Kann ich mit leben bis halt "in future versions". Danke für die professionelle Hilfe - hätte ich alleine nicht hinbekommen.
                                            LG Rainer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            462
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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