Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Zeit-Objekt als Trigger

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Zeit-Objekt als Trigger

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      wizzardking last edited by

      @paul53 Vielen herzlichen Dank für Deine erneute Unterstützung!

      Da ich zuvor noch nie mit den Funktionen gearbeitet habe und ich Deinen Screenshot erst jetzt gerade sah (nachträglich noch eingefügt, oder war ich blind?) war ich gerade etwas beschäftigt mit dem Versuch dies richtig zu konfigurieren.

      Habs nun aber hinbekommen und scheint korrekt zu sein, wenn ich dies mit Deinem Beispiel vergleiche.

      Mit Deiner Lösung ist nun das Problem beim Script-Start gelöst, das wiederholte Aufrufen der Funktion aber leider nur teilweise.
      Mit Hilfe des Timeouts wird zwar der Cron nicht gleich beim verändern des Zeitobjektes gesetzt, sofern die Veränderung innerhalt des definierten Timeouts liegt, spätere Änderungen werden aber nicht mit der bisherigen überschrieben, sondern ergänzt.

      Wenn ich also um 10:00 das Zeitobjekt auf 14:30 einstelle, um 10:30 dies aber auf 14:45 korrigiere, so wird das Script sowohl um 14:30, als auch um 14:45 ausgeführt.

      Dies sollte aber eigentlich möglich sein zu verhindern, indem ich am Schluss den "falls, mache" Block einfüge und dort die Stunden und Minuten aus dem Zeitobjekt mit der aktuellen Zeit abgleiche. Das Script wird dann zwar dennoch gestartet, sollte so aber nichts ausführen und als workaround ausreichen.

      Da ich nun schon etwas müde bin, werde ich dies jedoch Morgen noch einmal in Ruhe anschauen.

      Vielen Dank noch einmal für Deine Hilfe!

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @wizzardking last edited by paul53

        @wizzardking sagte:

        Wenn ich also um 10:00 das Zeitobjekt auf 14:30 einstelle, um 10:30 dies aber auf 14:45 korrigiere, so wird das Script sowohl um 14:30, als auch um 14:45 ausgeführt.

        Um das zu vehindern, ist stop schedule im Trigger eingebaut. Es kann aber ein Problem geben, wenn eine Funktion (schedule()) den gleichen Bezeichner hat wie eine Variable. Deshalb benenne die Variable schedule mal um in z.B. schedMo1.

        1 Reply Last reply Reply Quote 0
        • W
          wizzardking last edited by wizzardking

          @paul53 Das habe ich eigentlich auch eingebaut, schein aber nicht zu funktionieren.

          Screenshot_8.png

          1 Reply Last reply Reply Quote 0
          • W
            wizzardking last edited by

            @paul53

            Bei den hier Rot markierten Stellen habe ich "Wert von Objekt ..." genommen, anstelle direkter Werte wie in Deinem Besipiel.
            Habe ich dort evtl. etwas missverstanden?

            Screenshot_9.png

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @wizzardking last edited by

              @wizzardking:

              habe ich "Wert von Objekt ..." genommen

              Wenn Du innerhalb der Funktion "Wert von Objekt" verwendest, sollte der Übergabeparameter uhrzeit entfallen, denn er ist dann überflüssig.

              1 Reply Last reply Reply Quote 0
              • W
                wizzardking last edited by

                @paul53

                Demnach müsste dies so korrekt sein?

                Download (1).png

                Was ich aber leider noch immer nicht verstehe, ist was das für einen Block mit dem Inhalt "Wert" ist, welchen du bei Dir eingefügt hast und ich nun im Bild mit den ???? ersetzt habe. (sry, falls ich hier etwas Begriff stutzig bin)

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @wizzardking last edited by paul53

                  @wizzardking sagte:

                  Block mit dem Inhalt "Wert"

                  Unter Blöcke Trigger

                  Blockly_DP_Props.JPG

                  Ändere bitte den Variablenbezeichner von schedule !

                  W 1 Reply Last reply Reply Quote 0
                  • W
                    wizzardking @paul53 last edited by

                    @paul53 said in Zeit-Objekt als Trigger:

                    Ändere bitte den Variablenbezeichner von schedule !

                    Nice!!
                    Nach dem umbenennen musst ich auch die stop funktion neu zuweisen, da diese bei "schedule" blieb.
                    Scheint nun perfekt zu funktionieren.

                    Vielen Dank für Deine Geduld. Bin ich mir aus einem Forum so nicht gewohnt 😉

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @wizzardking last edited by paul53

                      @wizzardking Wenn mehrere Cronjobs in einem Skript erzeugt werden sollen, kann man es etwa so machen:

                      Blockly_SetCron.JPG

                      Die Funktionen Mo1() und Mo2() sind erforderlich, weil Blockly es nicht zulässt, den gleichen Cronjob zweimal (Skriptstart / Trigger) zu erzeugen.

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        Stefan Hanke @paul53 last edited by

                        Hallo zusammen,

                        ich habe das gleiche Problem wie @wizzardking mein cron-job läuft nach Änderung der Zeiten mehrfach.
                        Und obwohl ich diesen Post jetzt gefühlt 100x gelesen habe, checke ich die Lösung nicht, vielleicht kann mir hier jemand "ein Licht ans Rad schrauben"...?
                        😉

                        Bei mir geht es um eine Bewässerung die zu bestimmten änderbaren Uhrzeiten laufen soll. Dazu habe ich in der VIS zwei Eingabe-Felder die mir die Start-Stund und die Start-Stund in 2 Datenpunkte schreiben, diese sollen dann vom cron-job übernommen werden. Das funktioniert soweit auch wie gewünscht.
                        Nun habe ich in diesem Post gelernt, dass man den Job vorher stoppen muss um ihm dann die neuen Zeit einlesen zu lassen - das leuchtet mir auch ein.

                        Wenn ich aber den "Stop" vor den cron-job setze, (im screenshot wieder/noch deaktiviert), bekomme ich aber eine Fehlermeldung.
                        Kann mir jemand den Weg weisen, an welcher Position muss in den alten cron-job stoppen damit der Neue korrekt eingelesen werden kann ?
                        @paul53 ich setze ganz stark auf Dich, Du scheinst hier den Durchblick zu haben...
                        😉

                        Danke schon mal an der Stelle,
                        viele Grüße,
                        Stefan.

                        javascript - ioBroker 2020-10-15 16-33-51.jpg

                        Bildschirmfoto 2020-10-15 um 16.35.38.jpg

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          fastfoot @Stefan Hanke last edited by

                          @Stefan-Hanke Entferne das Leerzeichen im Namen des Zeitplans. Das Stop dann neu wählen damit er den geänderten Namen nimmt

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            Stefan Hanke @fastfoot last edited by

                            Guten Morgen !
                            So wie es aussieht, war es das tatsächlich - ein Leerzeichen !

                            😳😳😳

                            Ich habe damit beim Aktivieren von "Stop" kein Fehler mehr im log, jetzt beobachte ich das mal den Tag über, mal sehen ob der Rasen trocken bleibt.
                            Zumindest was die von mir verursachte Nässe angeht, Regen kommt ja wahrscheinlich sowieso...
                            😉

                            @fastfoot Vielen herzlichen Dank schon mal an der Stelle...
                            👍👍👍

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              Stefan Hanke @Stefan Hanke last edited by

                              Hallo zusammen,

                              ich möchte noch ein kurzes Feedback da lassen, es war tatsächlich das Leerzeichen im Namen des cron-jobs. Habe jetzt die letzten beiden Tage die Startzeiten gefühlt hundert mal geändert, das Programm lief jeweils nur einmal wie geplant durch.

                              @fastfoot : nochmals vielen Dank für Deine Hilfe !
                              👍👍👍

                              Viele Grüße,
                              Stefan

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                fastfoot @Stefan Hanke last edited by

                                @Stefan-Hanke sagte in Zeit-Objekt als Trigger:

                                es war tatsächlich das Leerzeichen im Namen

                                man sollte eigentlich nie Leerzeichen oder Sonderzeichen in Namen oder Variablen verwenden. Iobroker wandelt die zwar in Unterstriche um, jedoch wurde das wohl im Stop nicht gemacht, deshalb der Fehler. In Github existiert ein issue dazu, sollte also irgendwann auch funktionieren

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                955
                                Online

                                31.6k
                                Users

                                79.6k
                                Topics

                                1.3m
                                Posts

                                blockly
                                4
                                19
                                3640
                                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