Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Parallele Cron-Trigger über Variablen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Parallele Cron-Trigger über Variablen

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

      Hallo,
      seit einiger Zeit versuche ich mich an einer Heizungssteuerung im Schlaf- und Wohnzimmer. Ich habe Temperaturen für morgens, tagsüber, abends und Abwesenheit definiert, die jeweils zu definierten Zeiten über einen Cron-Trigger ausgelöst werden. Die Zeiten für die Tagestemperatur stehen fest im Blockly-Script drin. Exemplarisch hier für das Wohnzimmer, für das Schlafzimmer sieht es identisch aus.

      Tagestemperatur.PNG

      Diese Steuerung soll nun flexibler werden, indem die Uhrzeiten in einer Visu eingestellt werden und somit als Variablen an den Trigger übergeben werden sollen. Testweise habe ich das für das Schlafzimmer schon umgesetzt.

      Aktualisierung Temperatur morgens Arbeit.PNG
      Einstellen Temperatur morgens Arbeit.PNG

      Jetzt mein Problem: Wenn ich das Skript abends bearbeite und dann die Zeit für schnelle Tests anpasse, läuft es auch. Wenn ich daraufhin die Uhrzeit auf den richtigen Wert morgens stelle, funktioniert es nicht mehr. Das Skript für das Wohnzimmer wird um 7:15 Uhr abgearbeitet, aber im Schlafzimmer passiert nichts.
      Meine Vermutung war zuerst, dass die Ausführung zweier Cron-Trigger auf der gleichen Uhrzeit nicht funktioniert (oder nicht auf dem Raspberry 3b+, den ich nutze). Dann dürfte es doch aber auch nicht funktionieren, wenn ich anstelle von Variablen die fest definierten Uhrzeiten nutze.

      Ich wäre dankbar, wenn jemand eine Lösung für mein Problem hat. Ich ärgere mich damit mittlerweile schon etliche Tage herum.

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

        @metamorph Du musst die Werte nach String konvertieren
        cron4.PNG

        M 1 Reply Last reply Reply Quote 0
        • M
          Metamorph @fastfoot last edited by

          @fastfoot Das hatte ich auch schon probiert, leider bleibt das Problem in der gleichen Form bestehen.
          Am Datentyp kann es zudem eigentlich nicht liegen. Die Zeiten habe ich bereits alle als Objekte des Datentyps String definiert, um möglichst das type casting als eine Fehlerquelle auszuschließen. Außerdem funktioniert das Skript, wenn ich die Zeit zum Beispiel nur 5min vor datiere, um die Funktionalität zeitnah überprüfen zu können.

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

            @metamorph Hänge deine cron-Regel an einen Debug Baustein und lass das laufen, dann siehst du genau zu was das übersetzt wird

            M 1 Reply Last reply Reply Quote 0
            • M
              Metamorph @fastfoot last edited by

              @fastfoot Okay, meinst Du das so?

              Debug Block.PNG

              10:09:43.890	info	javascript.0 (653) Stop script script.js.Test.Whatsapp
              10:09:43.908	info	javascript.0 (653) Start javascript script.js.Test.Whatsapp
              10:09:43.917	info	javascript.0 (653) script.js.Test.Whatsapp: 0 9 10 * * 1,2,3,4,5,6
              10:09:43.917	info	javascript.0 (653) script.js.Test.Whatsapp: registered 0 subscriptions and 0 schedules
              

              (Die Wochentage habe ich jetzt nur um Samstag erweitert, damit ich das gerade mal testen kann.)

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

                @metamorph
                Wenn um 10:09:00 Uhr getriggert werden soll, ist der Skript-Start um 10:09:44 Uhr zu spät.

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

                  @paul53 Das Skript beinhaltet in diesem Fall nur den Debug-Block, daher ist die Startzeit hier egal. Wenn ich es richtig verstanden habe, dann sollte ich die Cron-Regel nur an den Debug-Block hängen, damit ich den Output davon zeigen kann.

                  Vermutlich hatte ich mich nicht richtig ausgedrückt. Das Skript selbst läuft, wie die Bilder unten zeigen. Aber eben nur, wenn ich die Zeit zu Testzwecken z.B. auf 11:48 Uhr stelle.

                  Test erfolgreich.PNG
                  Log Test.PNG

                  Wenn ich es aber auf die richtige Uhrzeit stelle, damit es parallel (also zur gleichen Uhrzeit) zum Wohnzimmer läuft, dann löst es nicht aus. Hier noch das Skript vom Wohnzimmer, das mit der im Skript definierten Zeit läuft und immer auslöst.

                  Skript Wohnzimmer.PNG

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

                    @metamorph sagte in [Problem] Parallele Cron-Trigger über Variablen:

                    Wenn ich es richtig verstanden habe, dann sollte ich die Cron-Regel nur an den Debug-Block hängen, damit ich den Output davon zeigen kann.

                    ja, so war es gemeint und sieht eig. gut aus. Mir ist nicht bekannt dass gleiche Uhrzeiten sich stören, hängt aber bestimmt auch von deiner Hardware ab. Stelle doch mal einen Versatz von ein paar Sekunden ein, beim Testen auch für beide Zimmer, damit du siehst ob es an der gleichen Uhrzeit liegt

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Metamorph @fastfoot last edited by

                      @fastfoot Hab das so getestet und es lief. Dann habe ich es nochmal probiert, indem ich beiden Triggern die gleichen Zeiten zugewiesen habe und das ging diesmal auch. Mir erschließt sich einfach nicht, warum das beim Testen läuft, aber beim "Normalbetrieb" nicht. Da bleibt mir gerade wohl kaum etwas anderes, als zu warten, ob das jetzt dauerhaft läuft. Ich hätte dann zwar keine Ahnung warum, obwohl ich nichts geändert habe, aber dann funktioniert es wenigstens.

                      Sollte es morgen/Montag tatsächlich funktionieren, setze ich das Thema hier auf gelöst. Zumindest schonmal vielen Dank für die Hilfe.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      641
                      Online

                      32.0k
                      Users

                      80.5k
                      Topics

                      1.3m
                      Posts

                      blockly
                      3
                      9
                      290
                      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