Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Mehrfaches Triggern/ Endlosschleife vermeiden

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Mehrfaches Triggern/ Endlosschleife vermeiden

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

      Hallo zusammen,

      ich versuche gerade meinen Sonnenschutz/ Beschattung vernünftig einzustellen.
      2022-05-25_12-51-12.png
      Um zu vermeiden, dass mehrere Timeouts gestartet werden, frage ich ab, ob der vorheriger Wert geringer als x ist.
      Mein Problem ist allerdings, dass wirklich sonnigen Tagen dieses Ereignis nur einmal recht früh eintritt und im späteren Verlauf des Tages nicht mehr.
      Aber die Voraussetzung fürs Auslösen ist nur später am Tag (Azimut der Sonne) gegeben.
      Muss ich hier prinzipiell auf beides triggern oder mit Variablen arbeiten?

      @paul53 Hast du hier evtl. einen Vorschlag oder eine Idee?

      Lieben Dank vorab!

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

        @lessthanmore sagte: Ereignis nur einmal recht früh eintritt und im späteren Verlauf des Tages nicht mehr.

        Verwende anstelle des Vergleiches mit "vorheriger Wert" die Prüfung der Timer-Variablen.

        Bild_2022-05-25_145438869.png

        EDIT: Rücksetzen der Timer-Variable auf null entfernt.

        L 1 Reply Last reply Reply Quote 1
        • L
          lessthanmore @paul53 last edited by

          @paul53 Vielen lieben Dank.
          Ist es so korrekt?
          2022-05-25_13-34-38.png

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

            @lessthanmore sagte: Ist es so korrekt?

            Nicht ganz: "setzte timeout3 auf null" muss in den Callback von timeout3.
            Ein "stop timeout" ist zu viel: Entweder bei Unterschreitung des unteren Grenzwertes oder bei Unterschreitung des oberen Grenzwertes (sonst-Zweig).

            Die 3 Variablen gibt es jeweils nur einmal in der ersten Zeile der Javascript-Ansicht?

            L 2 Replies Last reply Reply Quote 0
            • L
              lessthanmore @paul53 last edited by

              @paul53 Gutes Auge.
              Ja, sind nur einmal definiert:
              2022-05-25_13-40-51.png

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

                @paul53 said in Mehrfaches Triggern/ Endlosschleife vermeiden:

                Ein "stop timeout" ist zu viel: Entweder bei Unterschreitung des unteren Grenzwertes oder bei Unterschreitung des oberen Grenzwertes (sonst-Zweig).

                Was wenn der Wert dazwischen liegt?
                In diesem Fall zwischen 35000 und 26250. Der Timeout muss ja beide Male unterbrochen werden.

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

                  @lessthanmore sagte: Der Timeout muss ja beide Male unterbrochen werden.

                  Nicht erst bei Unterschreitung des unteren Grenzwertes (26250)?
                  timeout2 und timeout3 werden erst wieder bei Überschreiten des oberen Grenzwertes gestoppt.

                  L 1 Reply Last reply Reply Quote 1
                  • L
                    lessthanmore @paul53 last edited by

                    @paul53 Hast Recht, timeout2 und müssen ebenfalls noch im sonst-Zweig gestoppt werden.
                    Erst wenn der obere Grenzwert überschritten wird sollen die Rollläden nach einem timeout fahren. Wird innerhalb dieser Zeit der Wert einmal unterschritten, so soll der Timer von vorne beginnen.

                    Sind die Rollos unten und es ist dauerhaft zu dunkel, sollen sie teilweise hochfahren, etc.

                    Besten Dank!

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

                      @lessthanmore sagte: ebenfalls noch im sonst-Zweig gestoppt werden.

                      Dann lasse alle 3 "setze timeoutX auf null" weg, denn das erledigen die Stopps.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      868
                      Online

                      32.0k
                      Users

                      80.5k
                      Topics

                      1.3m
                      Posts

                      2
                      9
                      436
                      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