Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Zeit-Objekt als Trigger

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    492

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Zeit-Objekt als Trigger

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
blockly
19 Beiträge 4 Kommentatoren 4.3k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W wizzardking

    @paul53

    Vielen Dank für den Link zu Deinem Post. Dies ist tatsächlich die sauberere Lösung, da dies kein zusätzliches Objekt und Script benötigt. Leider funktioniert Deine Lösung bei mir aber nicht ganz so wie gedacht.

    1. Die Zeit im Objekt wird bei mir per Vis, in Form von einem Zeit-Widget Slider eingestellt. Dies hat zur Folge, wenn ich den Minuten Slider z.B. von 50 auf 56 verschiebe, registriert das Zeitobjekt kurzzeitig alle Schritte, abhängig von der Geschwindigkeit mit welcher ich den Slider verstelle.

    In meinem Fall habe ich den Slider zum testen von 20:50 auf 20:56 verstellt. Wie du dem angehängten Bild entnehmen kannst, wurde dadurch die Funktion "debug: test2" bei jedem Zwischenschritt, welches das Objekt registriert hatte, anschliessend auch noch einmal ausgelöst??!
    Eigentlich sollte dies doch die Stop Funktion verhindern?

    Download.png

    1. Wenn ich Deine Lösung richtig verstanden habe, so sehe ich ein Problem darin, wenn die Javascript Instanz, oder der komplette iobroker (bzw. mein NAS) neu gestartet wird. Das Script fängt mit dem Cronjob ja erst wieder an, wenn ich etwas am Zeitplan (Mo1 Objekt im Bild oben) verstelle?! Oder verstehe ich da etwas falsch?
    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #5

    @wizzardking sagte:

    Das Script fängt mit dem Cronjob ja erst wieder an, wenn ich etwas am Zeitplan (Mo1 Objekt im Bild oben) verstelle?

    Ja, damit der Cronjob auch bei Skriptstart erzeugt wird, packe das Setzen der Variablen und den Zeitplan in eine Funktion und rufe diese Funktion sowohl bei Skriptstart als auch aus dem Trigger (nach stop schedule) auf.

    Das mehrfache Triggern kann man mit einem timeout verhindern:

    Blockly_SetCron.JPG

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Antwort Letzte Antwort
    0
    • W Offline
      W Offline
      wizzardking
      schrieb am zuletzt editiert von
      #6

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

      paul53P 1 Antwort Letzte Antwort
      0
      • W wizzardking

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

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #7

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

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • W Offline
          W Offline
          wizzardking
          schrieb am zuletzt editiert von wizzardking
          #8

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

          Screenshot_8.png

          1 Antwort Letzte Antwort
          0
          • W Offline
            W Offline
            wizzardking
            schrieb am zuletzt editiert von
            #9

            @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

            paul53P 1 Antwort Letzte Antwort
            0
            • W wizzardking

              @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

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #10

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

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • W Offline
                W Offline
                wizzardking
                schrieb am zuletzt editiert von
                #11

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

                paul53P 1 Antwort Letzte Antwort
                0
                • W wizzardking

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

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #12

                  @wizzardking sagte:

                  Block mit dem Inhalt "Wert"

                  Unter Blöcke Trigger

                  Blockly_DP_Props.JPG

                  Ändere bitte den Variablenbezeichner von schedule !

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  W 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @wizzardking sagte:

                    Block mit dem Inhalt "Wert"

                    Unter Blöcke Trigger

                    Blockly_DP_Props.JPG

                    Ändere bitte den Variablenbezeichner von schedule !

                    W Offline
                    W Offline
                    wizzardking
                    schrieb am zuletzt editiert von
                    #13

                    @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 ;)

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • W wizzardking

                      @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 ;)

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #14

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

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      S 1 Antwort Letzte Antwort
                      0
                      • paul53P 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 Offline
                        S Offline
                        Stefan Hanke
                        schrieb am zuletzt editiert von
                        #15

                        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 Antwort Letzte Antwort
                        0
                        • S Stefan Hanke

                          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 Offline
                          F Offline
                          fastfoot
                          schrieb am zuletzt editiert von
                          #16

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

                          iobroker läuft unter Docker auf QNAP TS-451+
                          SkriptRecovery: https://forum.iobroker.net/post/930558

                          S 1 Antwort Letzte Antwort
                          0
                          • F fastfoot

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

                            S Offline
                            S Offline
                            Stefan Hanke
                            schrieb am zuletzt editiert von
                            #17

                            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 Antwort Letzte Antwort
                            0
                            • S Stefan Hanke

                              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 Offline
                              S Offline
                              Stefan Hanke
                              schrieb am zuletzt editiert von
                              #18

                              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 Antwort Letzte Antwort
                              0
                              • S Stefan Hanke

                                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 Offline
                                F Offline
                                fastfoot
                                schrieb am zuletzt editiert von
                                #19

                                @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

                                iobroker läuft unter Docker auf QNAP TS-451+
                                SkriptRecovery: https://forum.iobroker.net/post/930558

                                1 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                369

                                Online

                                32.5k

                                Benutzer

                                81.8k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe