Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. zeitabhängig triggern: Scheduler oder zyklische Abfrage?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    zeitabhängig triggern: Scheduler oder zyklische Abfrage?

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

      Moin zusammen,

      ich hab mal eine generelle Frage für die Runde, weil ich mir wegen der Thematik immer wieder Extra-Arbeit mache.

      Folgendes Szenario: ich möchte zu einer bestimmten Uhrzeit etwas triggern, "Rollladen runter" meinetwegen.
      Es geht hierbei nicht um das "wie", sondern die Frage was praktikabler ist im Bezug auf die Auslastung des Brokers.

      Nahmen wir mal an ich habe 5 oder mehr Timer für verschiedene Geräte und Systeme, dann müsste ich entweder minütlich einen Script (pro Timer) laufen lassen der entsprechend auf die aktuelle Uhrzeit gegen die gesetzte Zeit checkt und dann ggf. etwas auslöst.

      Der andere Ansatz den ich momentan verfolge ist eine Cronregel, die ich dynamisch per VIS etc. ändern und steuern kann. Der Hintergedanke: ich muss das System nicht minütlich mit Abfragen befeuern sondern setzte einmalig den gewünschten Wert für den Job. Der Aufwand für ein solches Script ist jedoch ungleich höher (2 Scripte, verschiedene Objekte, Neustart, usw.).

      Die Frage: wie stark fällt ein kleines Script (erste Variante) ins Gewicht wenn es minütlich abgefragt wird, Werte ausliest usw. - lohnt der Aufwand den ich betreibe überhaupt?

      Ich füge hier mal noch ein Bild der 2. Variante ein, damit es vll. etwas deutlicher wird.

      de040180-6d10-43cd-afc7-0e4bb55c0983-image.png

      Evtl. gibt's ja 'nen ganz anderen/besseren Ansatz, oder ich mach mir einfach zu viele Gedanken 😌

      Grüße John.

      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @Leone Mortuo last edited by Asgothian

        @leone-mortuo sagte in zeitabhängig triggern: Scheduler oder zyklische Abfrage?:

        Moin zusammen,

        ich hab mal eine generelle Frage für die Runde, weil ich mir wegen der Thematik immer wieder Extra-Arbeit mache.

        Folgendes Szenario: ich möchte zu einer bestimmten Uhrzeit etwas triggern, "Rollladen runter" meinetwegen.
        Es geht hierbei nicht um das "wie", sondern die Frage was praktikabler ist im Bezug auf die Auslastung des Brokers.

        Nahmen wir mal an ich habe 5 oder mehr Timer für verschiedene Geräte und Systeme, dann müsste ich entweder minütlich einen Script (pro Timer) laufen lassen der entsprechend auf die aktuelle Uhrzeit gegen die gesetzte Zeit checkt und dann ggf. etwas auslöst.

        Der andere Ansatz den ich momentan verfolge ist eine Cronregel, die ich dynamisch per VIS etc. ändern und steuern kann. Der Hintergedanke: ich muss das System nicht minütlich mit Abfragen befeuern sondern setzte einmalig den gewünschten Wert für den Job. Der Aufwand für ein solches Script ist jedoch ungleich höher (2 Scripte, verschiedene Objekte, Neustart, usw.).

        Die Frage: wie stark fällt ein kleines Script (erste Variante) ins Gewicht wenn es minütlich abgefragt wird, Werte ausliest usw. - lohnt der Aufwand den ich betreibe überhaupt?

        Ich füge hier mal noch ein Bild der 2. Variante ein, damit es vll. etwas deutlicher wird.

        de040180-6d10-43cd-afc7-0e4bb55c0983-image.png

        Evtl. gibt's ja 'nen ganz anderen/besseren Ansatz, oder ich mach mir einfach zu viele Gedanken 😌

        Grüße John.

        Die Methode über ein eigenes zentrales "Heartbeat" Skript welches nichts macht als due aktuelle Zeit zu prüfen und dann bei Übereinstimmung der Zeit mit einer einstellbaren Zeit (diese am besten noch jede Minute per getState aus der StatesDB holen) etwas tut ist meiner Meinung nach Unsinn. Du belastest das System mit einer zyklischen Last die du zu 100% nicht brauchst.

        Der Korrekte weg ist (meiner Meinung nach)

        • Je EINEN State pro Aktion in dem drin steht zu welchem Zeitpunkt die Aktion stattfinden soll.

        Danach gibt es 2 Optionen:

        • in EINEM Skript
          -- Zu beginn des Skriptes alle (oben angesprochenen) States einlesen und die entsprechenden Schedules erzeugen.
          -- JE State ein Trigger auf Änderung des States -> Wenn geändert dann schedule anhalten und neu setzen.
        • Pro oben angegebenem State ein Skript
          -- Zu beginn von diesem einen State den Wert einlesen und schedule anlegen
          -- einen Trigger auf "wurde geaendert" und dann darin den schedule anpassen.

        Die geschickte Nutzung der "Funktion" Blöcke erlaubt es dabei dafür zu sorgen das du nicht die gleichen Aktionen mehrfach zusammen bauen musst.

        Wichtig ist das du auf keinen Fall die in deinem Bild verwendeten "mehrfachtrigger" nutzt. Das macht Dir und dem System nur mehr Arbeit.

        A.

        Leone Mortuo 1 Reply Last reply Reply Quote 1
        • Leone Mortuo
          Leone Mortuo @Asgothian last edited by

          @asgothian

          Danke für dein Feedback.

          Sofern ich deine Ausführung richtig verstehe bin ich ja bereits recht nah an deiner 2. Option dran.
          Ich lese die Werte für die Zeit bei Änderung ein halte den schedule an und erstelle ihn neu.

          Jedoch momentan noch mit einem mehrfach trigger, was ich dann wohl noch korrigieren werden.

          Ziel wäre so oder so am Ende das das Script nun einmal, nämlich bei Änderung der gewünschten Triggerzeit durchläuft.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          443
          Online

          31.9k
          Users

          80.1k
          Topics

          1.3m
          Posts

          2
          3
          177
          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