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 Regel wird ausgeführt obwohl Skript inaktiv

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    CRON Regel wird ausgeführt obwohl Skript inaktiv

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @romann.k last edited by

      @romann-k
      Bevor man einen Zeitplan innerhalb eines Triggers aktiviert, muss der laufende Zeitplan gestoppt werden.

      R 1 Reply Last reply Reply Quote 0
      • R
        romann.k @paul53 last edited by

        @paul53 Das meinte ich mit Zeigen wird schwer 😉

        Das wird als erstes in der Aktion ganz oben gemacht. Also die Simulation selbst läuft auch ohne Probleme solange sie aktiv ist. Nur nachdem das Skript deaktiviert wird laufen die Cron-Regeln die in der Aktion gesetzt wurden mit den letzten Werten weiter.

        4a27b0c0-204a-4022-8f12-bba52b9db0e8-image.png

        R 1 Reply Last reply Reply Quote 0
        • R
          romann.k @romann.k last edited by romann.k

          Also ich habs jetzt mal so gelöst, dass wenn die Anwesenheitssimulation auf false geht ich in den einzelnen Skripts allen Cron-Regeln über einen Trigger auf den Datenpunkt nochmal ein stop gebe und die Skripte dann mit einer Verzögerung von 5 Sek im "Masterskript" deaktivieren lasse.

          Da scheint jetzt so zu klappen wie ich mir das vorstelle.

          Aber merkwürdig ist das trotzdem. Zumal wie gesagt bis vor ein paar updates von javascript alles funktioniert hat.

          Danke trotzdem für euren input dazu!

          Thomas Braun 1 Reply Last reply Reply Quote 0
          • Thomas Braun
            Thomas Braun Most Active @romann.k last edited by

            @romann-k sagte in CRON Regel wird ausgeführt obwohl Skript inaktiv:

            Zumal wie gesagt bis vor ein paar updates von javascript alles funktioniert hat.

            Das ist möglich, tw. ändern sich Dinge und Code der zuvor zwar unsauber war aber durchgewunken wurde wird jetzt strenger bewertet.

            R 1 Reply Last reply Reply Quote 0
            • R
              romann.k @Thomas Braun last edited by romann.k

              @thomas-braun Aber ist es denn "sauber", dass Cron-Regeln in einem inaktiven Skript ausgeführt werden oder verstehe ich einfach die Logik dahinter nicht?

              Thomas Braun 1 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @romann.k last edited by

                @romann-k

                crons lauern im Hintergrund, die kannst du nicht einfach 'inaktivieren', indem das skript nicht durchlaufen wird.

                R 1 Reply Last reply Reply Quote 0
                • R
                  romann.k @Thomas Braun last edited by romann.k

                  @thomas-braun Also verstehe ich das richtig, dass diese Cron-Regeln mit Dialog garnicht durch Javascript ausgeführt werden sondern irgendwo im Hintergrund im System durchlaufen?

                  Gibt es irgendeine Möglichkeit aktive Crons zu sehen? Du meintest ja man kann Crons nicht einfach so deaktivieren. Wie sonst soll man das denn können? Gibt es irgendeinen Linux Befehl den man senden kann damit alle Cron Regeln gelöscht werden? Das wäre dann ja auch eine Möglichkeit das zu bereinigen.

                  Das mit dem stop vor dem Deaktivieren der Skripts hat es auch nicht gebracht und bestimmte Cronjobs sind trotz stop noch gelaufen. Ich habe den Pi jetzt einmal komplett rebootet und hoffe das es heute Abend nicht wieder eine Lichtershow gibt.

                  Aber ehrlich gesagt kommt mir das irgendwie wie ein Bug vor. Ich kann mir beim besten Willen nicht vorstellen, dass das so gedacht ist. Ich verlasse mich bei anderen Triggern ja auch darauf, dass die mit dem Skript auch komplett deaktiviert sind und nicht noch in bestimmten Fällen weiter laufen.

                  VG

                  paul53 Thomas Braun 2 Replies Last reply Reply Quote 0
                  • paul53
                    paul53 @romann.k last edited by

                    @romann-k sagte: Möglichkeit aktive Crons zu sehen?

                    getSchedules(true)

                    Habe ich selbst noch nicht verwendet.

                    R 1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @romann.k last edited by Thomas Braun

                      @romann-k

                      Die cronjob dürften an crond übergeben werden.

                      https://wiki.ubuntuusers.de/Cron/

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

                        @thomas-braun sagte: Die cronjob dürften an crond übergeben werden.

                        Das denke ich nicht. Der Javascript-Adapter verwendet das NPM-Modul node-schedule.

                        Thomas Braun 1 Reply Last reply Reply Quote 1
                        • Thomas Braun
                          Thomas Braun Most Active @paul53 last edited by

                          @paul53
                          Okay.

                          1 Reply Last reply Reply Quote 0
                          • R
                            romann.k @paul53 last edited by romann.k

                            @paul53 Also ich glaube so langsam verstehe ich es.

                            Das heißt wenn ich vor dem Beenden des Skripts in dem die Simulation läuft diese JS-Funktion durchlaufen lasse,

                            const list = getSchedules(false);
                            // hier muss ´false´ rein, weil ich nur die Crons in diesem Blockly-Skript zurück haben möchte, richtig?
                            list.forEach(schedule => console.log(JSON.stringify(schedule)));
                            list.forEach(schedule => clearSchedule(schedule));
                            

                            dann kann ich sicher sein das alle noch laufenden Crons in dem Skript erfasst und beendet werden, richtig? (Ich weiss, die dritte Zeile müsste nicht)

                            Ich bin ehrlich, ich bin eine Niete in Informatik und Programmierung und suche mir immer alles für einen bestimmten Anwendungsfall raus und hoffe das Beste 😂 Also seht mir nach wenn ich einen Moment länger brauche bis der Groschen fällt und Danke für die Hilfe bis hierher!

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            684
                            Online

                            31.9k
                            Users

                            80.3k
                            Topics

                            1.3m
                            Posts

                            3
                            17
                            643
                            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