Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. variable Dauer bei zyklischer Ausführung

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    variable Dauer bei zyklischer Ausführung

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

      Kann ich vor dem Intervall so die Dauer auf 2 min setzen (120.000 ms) und innerhalb des Intervalls nach einer anderen Prüfung die Dauer des Intervalls auf 10 min (600.000 ms) hochsetzen?

      Ist mein Beispiel hier korrekt?

      a7f6353d-c01e-49b6-9f87-caf42d5f3923-image.png

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

        @rtwl
        Nein.

        rtwl 1 Reply Last reply Reply Quote 0
        • rtwl
          rtwl @Asgothian last edited by

          @asgothian Danke. Wie muss es sonst aussehen?

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

            @rtwl

            In Blockly ist das (leider) nicht trivial, deswegen auch die so kurze Antwort nachts um 1.

            Ich hoffe du kannst dieses Beispiel für Deine Nutzung anpassen:

            Screenshot 2024-01-28 at 09.40.38.png

            A.

            rtwl 1 Reply Last reply Reply Quote 0
            • rtwl
              rtwl @Asgothian last edited by

              @asgothian Danke für deine Mühe mir ein Beispiel zu erstellen, aber ich check es nicht. 😥

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

                @rtwl

                • hast du verstanden welche Blöcke ich benutzt hab ?
                • Du musst statt einem Intervall einen sich selbst verlängernden Timeout erzeugen. Das Problem ist das das in Blockly nicht direkt geht, sondern nur über den Umweg einer "Funktion" die sich selber aufruft.

                A.

                1 Reply Last reply Reply Quote 0
                • rtwl
                  rtwl last edited by

                  @asgothian
                  nein, hab ich leider nicht. Vielleicht liegt es daran, dass du mit englisch unterwegs bist. Auch verstehe ich nicht, wo die Prüfung, also der Falls Block rein soll, oder wo die Variable "DelayInSeconds" geschrieben wird und was du mit dem "random integer..." Block meinst.

                  Geht es zufällig in diese Richtung oder bin ich damit auch ganz falsch unterwegs?

                  33627bbf-06d2-4a1f-a350-51767ce5753c-image.png

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

                    @rtwl sagte in variable Dauer bei zyklischer Ausführung:

                    @asgothian
                    nein, hab ich leider nicht. Vielleicht liegt es daran, dass du mit englisch unterwegs bist. Auch verstehe ich nicht, wo die Prüfung, also der Falls Block rein soll, oder wo die Variable "DelayInSeconds" geschrieben wird und was du mit dem "random integer..." Block meinst.

                    Geht es zufällig in diese Richtung oder bin ich damit auch ganz falsch unterwegs?

                    33627bbf-06d2-4a1f-a350-51767ce5753c-image.png

                    Das kann gehen. Der Nachteil ist das wenn der Wert sich mitten während des Intervalls sich ändert dann wird das alte abgebrochen, selbst wenn es nur noch ein paar ms laufen würde. Deswegen der Trick mit dem selbst verlängernden Timeout.

                    Nebenbei - deine Version kann mit 2 kleinen Anpassungen gehen:

                    • das "Intervall" mit dem du das startest vor den Trigger.
                    • im Trigger den "intervall" aufruf entfernen
                    • Das Stop zyklische Abarbeitung weg
                    • Das Ausführen Intervall durch Ausführen Timeout ersetzen - darin einen Aufruf "Intervall"

                    Nun zu den Fragen. Wenn du das Zahnrad am Funktionsbaustein auswählst kannst du "parameter" hinzufügen und benennen. so habe ich da den Parameter DelayInSeconds erzeugt.

                    An stelle des random soll natürlich deine variable für die Dauer hinein. Den random hab ich nur genutzt um sicher zu gehen das es geht 🙂

                    rtwl 1 Reply Last reply Reply Quote 0
                    • rtwl
                      rtwl @Asgothian last edited by

                      @asgothian

                      meinst du so?

                      In dem "Ausführen timeout" kommt später eine sendTo Pushover rein. Da jetzt aber das Intervall schon vor dem Trigger gestartet wird, hab ich dann eh keine Dauermeldungen? Das Intervall soll ja nur dann gestartet werden, wenn der Trigger auslöst (Fenster wurde geöffnet).
                      Läuft das ganze auch so?

                      b0b1b279-caee-4071-9a90-7210290cda81-image.png

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

                        @rtwl sagte in variable Dauer bei zyklischer Ausführung:

                        @asgothian

                        meinst du so?

                        In dem "Ausführen timeout" kommt später eine sendTo Pushover rein. Da jetzt aber das Intervall schon vor dem Trigger gestartet wird, hab ich dann eh keine Dauermeldungen? Das Intervall soll ja nur dann gestartet werden, wenn der Trigger auslöst (Fenster wurde geöffnet).
                        Läuft das ganze auch so?

                        b0b1b279-caee-4071-9a90-7210290cda81-image.png

                        Fast. Du hast die Variable "Dauer" doppelt verwendet - das ruiniert es. Nimm die aus dem Funktionsbaustein einfach raus, dann wird es gehen.

                        Das mit dem nur beim Trigger starten ist so eine Sache. Wie sol denn das Intervall beendet werden. sprich wie lange sollen die Meldungen andauern ?

                        A.

                        rtwl 1 Reply Last reply Reply Quote 0
                        • rtwl
                          rtwl @Asgothian last edited by

                          @asgothian sagte in variable Dauer bei zyklischer Ausführung:

                          wie lange sollen die Meldungen andauern ?

                          bis der Trigger false meldet, also das Fenster geschlossen wurde. Daher hab ich es hier im Beispiel mal zum "sonst" Teil verschoben.

                          ich gaube aber fast, dass es sowieso nicht funktionieren wird. Denn mein Beispiel ist etwas anders als mein Hauptskript. Denn da wird im ersten 2 min Intervall geprüft ob das Fenster geschlossen werden kann. Und sobald das zutrifft, soll das Intervall auf zb 10 min erhöht werden.
                          Bedeutet also folgendes:
                          78e94bc8-da19-4eb0-b869-f00f285d8631-image.png

                          Wo genau die Dauer der Schleife/des Timeout hier definiert wird ist mir auch noch ein Rätsel 🙈

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

                            @rtwl so sieht das doch schon schön aus.
                            Jetzt noch den Intervall Aufruf einmal in den Trigger, hinter das setze Dauer auf ..., dann könnte es bereits gehen.

                            aber: wo kommt im Falls die Temperatur her ?

                            Screenshot 2024-01-28 at 22.40.51.png

                            Ansonsten bitte an dem Baustein ›
                            Screenshot 2024-01-28 at 22.41.22.png

                            den Parameter "dauer" entfernen.

                            Du solltest trotzdem eine Variable "dauer" haben - wenn nicht, bitte erzeugen.

                            rtwl 1 Reply Last reply Reply Quote 0
                            • rtwl
                              rtwl @Asgothian last edited by

                              @asgothian
                              Der Textbaustein mit "temperatur" ist nur ein Lückenfüller, dort kommt dann natürlich die echte Abfrage - auch der Textbaustein mit den "20" ist nur als Beispiel gedacht.

                              Ich hab hier 10ms eingefügt, weil du geschrieben hast, ich soll 1x die Variable "Dauer" entfernen - hab aber nicht ganz verstanden wo genau. ist das so dann korrekt? oder hab ich da was verwechselt? -

                              6954f967-5256-438a-b312-8782aaf12217-image.png

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

                                @rtwl siehe meine Anpassungen im Post. Ich kann das leider nur auf Englisch zusammen bauen 🙂

                                Kann ich aber machen, wenn Dir das besser hilft

                                A.

                                rtwl 1 Reply Last reply Reply Quote 0
                                • rtwl
                                  rtwl @Asgothian last edited by

                                  @asgothian
                                  Habs gesehen, meinst du so?

                                  8c5b365c-1596-4740-9776-de005a9be547-image.png

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

                                    @rtwl So sollte es gehen, ja.

                                    A.

                                    rtwl 1 Reply Last reply Reply Quote 0
                                    • rtwl
                                      rtwl @Asgothian last edited by

                                      @asgothian
                                      super danke,

                                      dann werde ich damit mal einen Test machen und bei Erfolg in mein großes Skript einbauen.

                                      Danke für deine Zeit und Hilfe 👍

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      668
                                      Online

                                      32.0k
                                      Users

                                      80.4k
                                      Topics

                                      1.3m
                                      Posts

                                      2
                                      17
                                      358
                                      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