Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. CRON-Zeitplan mit veränderbarer Zeitvariable nutzen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    CRON-Zeitplan mit veränderbarer Zeitvariable nutzen

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

      Hallo zusammen,

      ich stehe vor einem Problem: Ein Nutzer kann in der Visu ein Datum und eine Zeitangabe schreiben.

      Das beides in Kombination soll meinen CRON-Zeitplan steuern mithilfe der DatumMitZeit-Variable.

      Der Zeitplan wird allerdings nur einmal ausgeführt, obwohl sich die Zeitvariable ja irgendwann (bei neuer Nutzereingabe) aktualisiert.

      Was kann ich tun, damit der CRON-Zeitplan immer die aktuellste Variable nimmt, ohne das man das Skript neustarten muss?

      601d95af-70f7-41d1-b82e-ef00336d29db-grafik.png

      Meister Mopper paul53 BananaJoe 3 Replies Last reply Reply Quote 0
      • Meister Mopper
        Meister Mopper @Timmss last edited by

        @timmss sagte in CRON-Zeitplan mit veränderbarer Zeitvariable nutzen:

        Ein Nutzer kann in der Visu ein Datum und eine Zeitangabe schreiben.

        Wie sieht das genau aus? Was wird da wie eingegeben? Bisschen wenig Info für mein Verständnis.

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

          @timmss sagte: in der Visu ein Datum und eine Zeitangabe schreiben.

          In welchem Format?
          CRON("m h D M *")?

          Prinzip, falls Format der Datums-/Uhrzeiteingabe "DD.MM hh:mm" oder "DD.MM.YYYY hh:mm" ist:

          Blockly_DateTime2CRON.JPG

          Wichtig ist, dass der laufenden Zeitplan gestoppt wird, bevor ein neuer Zeitplan aktiviert wird.

          T 1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @Timmss last edited by

            @timmss nach meinem Verständnis wird der Zeitplan nur einmal beim Start des Skriptes initialisiert.
            Du müsstest also das Skript bei einer Änderung neu starteten.

            Alternativ müsste ein Trigger auf die Änderung reagieren, den Zeitplan stoppen und neu starten.
            Wie man das genau verschachtelt, da müsste man mal drüber nachdenken.

            Es gibt ja auch dem Baustein wo der Zeitplan aus einem Datenpunkt gestartet wird:
            ebee57fe-f076-46fa-b87f-dde73fce780d-image.png
            Sonst müsste man mal testen was passiert wenn der Datenpunkt geändert wird, ob er das übernimmt

            paul53 1 Reply Last reply Reply Quote 1
            • paul53
              paul53 @BananaJoe last edited by paul53

              @bananajoe sagte: Baustein wo der Zeitplan aus einem Datenpunkt gestartet wird:

              Laut Doku werden nur Uhrzeiten verarbeitet.

              @bananajoe sagte in CRON-Zeitplan mit veränderbarer Zeitvariable nutzen:

              Wie man das genau verschachtelt, da müsste man mal drüber nachdenken.

              Siehe hier

              1 Reply Last reply Reply Quote 0
              • T
                Timmss @Meister Mopper last edited by

                @meister-mopper

                Das Eingeben sieht so aus:

                4be38fbf-46eb-4fda-94c8-6dac016c2c16-grafik.png

                Diese String-Werte werden gespeichert und im Skript in der Variable DatumMitZeit zusammengefügt.

                Diese Variable sieht dann also so aus: YYYY.MM.DD HH:MM und da sich diese immer verändert, soll auch der CRON-Zeitplan immer wieder ausgeführt werden.

                paul53 2 Replies Last reply Reply Quote 0
                • T
                  Timmss @paul53 last edited by

                  @paul53

                  Danke dir! Das sieht erstmal sehr gut aus.

                  Wie ich es verstehe ist es eine Funktion, die man immer wieder aufruft und diese beinhaltet den CRON-Zeitplan?

                  Und kannst du mir erklären, was der Befehl vor dem 'Falls Objekt Trigger geändert' genau bedeutet und wo ich diesen Baustein finde?

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

                    @timmss sagte: im Skript in der Variable DatumMitZeit zusammengefügt.

                    Weshalb werden die zwei Datenpunkte zusammengefügt, wenn man sie anschließend für den CRON-Ausdruck wieder trennen muss?

                    @timmss sagte in CRON-Zeitplan mit veränderbarer Zeitvariable nutzen:

                    Befehl vor dem 'Falls Objekt Trigger geändert'

                    Das ist der Funktionsaufruf bei Skriptstart. Der Block steht erst nach Erstellen der Funktion zur Verfügung.

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

                      @timmss sagte: Das Eingeben sieht so aus:

                      Mit getrennten Datenpunkten für Datum und Uhrzeit kann das Skript so aussehen:

                      Blockly_temp.JPG

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

                        @paul53 sagte: Weshalb werden die zwei Datenpunkte zusammengefügt, wenn man sie anschließend für den CRON-Ausdruck wieder trennen muss?

                        Ich muss mit dem elektronischen Zeitstempel von diesem Datum zu dieser Zeit rechnen, deswegen das Zusammenfügen.

                        Und was ich getestet hatte, man kann die Zeitvariable (Format: YYYY.MM.DD HH:MM) einfach in den Datum-Bereich des CRON-Zeitplans packen und es funktioniert auch auf dieser Art. (Gerne kannst du mir auch sagen, ob das Probleme mit sich bringt)

                        Ansonsten danke dir für die Hilfe, ich werde es mal umsetzen.

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

                          @timmss sagte: man kann die Zeitvariable (Format: YYYY.MM.DD HH:MM) einfach in den Datum-Bereich des CRON-Zeitplans packen und es funktioniert auch auf dieser Art.

                          Wirklich? Das wäre mir neu.

                          T 2 Replies Last reply Reply Quote 1
                          • T
                            Timmss @paul53 last edited by

                            @paul53 Ich hab das tatsächlich irgendwo mal gesehen und nachgebaut, getestet und es hat funktioniert.

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

                              @paul53

                              Ich habe dein Skript mal umgesetzt und getestet und es funktioniert perfekt!
                              Eigentlich ist es so simpel, einfach Zeitplan stoppen und mithilfe einer Funktion neu starten 😅.

                              Ich habe auch den Beitrag gefunden, wo ich das mit der langen Zeitvariable im Datum-Bereich gesehen habe.

                              1 Reply Last reply Reply Quote 0
                              • haus-automatisierung
                                haus-automatisierung Developer Most Active last edited by

                                @timmss sagte in CRON-Zeitplan mit veränderbarer Zeitvariable nutzen:

                                Ich habe auch den Beitrag gefunden, wo ich das mit der langen Zeitvariable im Datum-Bereich gesehen habe.

                                Von einem Nutzer mit 2 Beiträgen... habe ich auch noch nie so gesehen.

                                @bananajoe sagte in CRON-Zeitplan mit veränderbarer Zeitvariable nutzen:

                                Es gibt ja auch dem Baustein wo der Zeitplan aus einem Datenpunkt gestartet wird:
                                ebee57fe-f076-46fa-b87f-dde73fce780d-image.png

                                Den würde ich auch empfehlen - und dann kann man im Trigger einfach prüfen, ob das Datum jetzt gerade mit der erwarteten Ausführung entspricht. Dann wird zwar jeden Tag 1x geprüft, aber halb so wild.

                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @haus-automatisierung last edited by

                                  @haus-automatisierung sagte: im Trigger einfach prüfen, ob das Datum jetzt gerade mit der erwarteten Ausführung entspricht.

                                  Das macht es einfacher.

                                  Blockly_temp.JPG

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  922
                                  Online

                                  32.0k
                                  Users

                                  80.4k
                                  Topics

                                  1.3m
                                  Posts

                                  5
                                  15
                                  546
                                  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