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] Blockly schaltet zu oft

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Blockly schaltet zu oft

    This topic has been deleted. Only users with topic management privileges can see it.
    • Codierknecht
      Codierknecht Developer Most Active @Homoran last edited by

      @homoran sagte in [gelöst] Blockly schaltet zu oft:

      der Timeout2 würde mehrfach gestartet, wenn öfter ein Wert >3000 kommt (3004, 3007, 3003,......) und gleichzeitig der andere unbekannte DP true ist.
      Danach kannst du den Timeout2 nicht mehr stoppen.

      Genau darum stoppe ich (so ich denn mal welche verwende) jeden Timeout bevor ich ihn starte.
      In der Regel will man ja etwas bewirken, wenn ein Zustand länger als x andauert.

      Will man nach einer Zeit x etwas bewirken, sobald sich ein Zustand das erste mal ändert und sich dies innerhalb der Zeit auch so bleibt, nimmt man entweder eine Verriegelungs-Variable oder prüft, ob der Timer noch nicht läuft, bevor man einen neuen startet.

      Mehrere Instanzen eines Timeouts gilt es auf jeden Fall zu vermeiden.

      C 1 Reply Last reply Reply Quote 0
      • C
        Chris777 last edited by

        Ihr habt recht, jetzt kommen wieder die Signale in kurzen Abständen...

        1 Reply Last reply Reply Quote 0
        • C
          Chris777 last edited by Chris777

          Und so? Da stoppe ich ja jeden Timeout, bevor der neue startet.
          SG Aktiv.JPG

          oder eher so?
          SG Aktiv 2.JPG

          1 Reply Last reply Reply Quote 0
          • C
            Chris777 @Codierknecht last edited by

            @codierknecht Was ist eine Verriegelungsvariable und den timeout kann ich prüfen mit falls nicht timeout?

            Gruß

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

              @chris777 sagte: Was ist eine Verriegelungsvariable

              Die Verriegelung gegen erneuten Timerstart ist "nicht Verzögerung timeout2", also ist timeout2 die Verriegelungsvariable.

              @chris777 sagte in [gelöst] Blockly schaltet zu oft:

              oder eher so?

              So wird nicht mehr auf false geschaltet und die Logik ist umgedreht.

              Weshalb nicht so, wie hier gezeigt ("Switch" = "SG Aktiv")?

              1 Reply Last reply Reply Quote 1
              • C
                Chris777 last edited by Chris777

                Ok, dann werde ich es mal so probieren.

                Für mich nochmal: es starten jedes Mal Timeouts, wenn die Bedingung erfüllt ist und der Trigger auslöst? Es ist nicht wie in einer SPS, dass solange das Signal anliegt die Bedingung erfüllt ist und der Timer läuft?
                Es können viele gleiche Timeouts gestartet werden?
                Wenn viele Timeouts gestartet sind, kann ich nicht alle stoppen?
                Kann man die Funktionen iwo nachlesen? Bei Verzögerung timeout wäre ich nie darauf gekommen, dass ich damit das aktiv-Signal vom timeout abfrage

                Erstmal allen vielen Dank!

                Codierknecht 1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @Chris777 last edited by

                  @chris777 sagte in [gelöst] Blockly schaltet zu oft:

                  Es ist nicht wie in einer SPS, dass solange das Signal anliegt die Bedingung erfüllt ist und der Timer läuft?

                  Nein - auf keinen Fall.

                  Es können viele gleiche Timeouts gestartet werden?

                  Ja!

                  Wenn viele Timeouts gestartet sind, kann ich nicht alle stoppen?

                  Wenn die einzeln per Name ansprechbar sind: Ja.
                  Wenn Du einen Timer mehrfach nacheinander gestartet hast: Soweit mir bekannt - Nein.

                  Bedenke immer, dass Du hier keine nacheinander ablaufende Prozesssteuerung hast, sondern ein Ereignisgesteuertes System, bei dem Prozesse auch noch asynchron ablaufen können.

                  https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md

                  Codierknecht 1 Reply Last reply Reply Quote 1
                  • Codierknecht
                    Codierknecht Developer Most Active @Codierknecht last edited by

                    @Chris777

                    ein Ereignisgesteuertes System, bei dem Prozesse auch noch asynchron ablaufen können.

                    Stichwort: https://www.google.com/search?q=nebenläufige+programmierung

                    1 Reply Last reply Reply Quote 0
                    • C
                      Chris777 last edited by

                      Könnte es jetzt so funktionieren? Mir ist noch nicht klar, ob ich so SG Aktiv in true und false setzen kann oder ob es sich gegenseitig beeinflusst.

                      SG Aktiv.JPG

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

                        @chris777 sagte: Könnte es jetzt so funktionieren?

                        Keine zwei gleiche Trigger! Mache es besser so:

                        Blockly_temp.JPG

                        1 Reply Last reply Reply Quote 0
                        • C
                          Chris777 last edited by

                          Und wie schalte ich SG Aktiv wieder auf false?

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

                            @chris777 sagte: Und wie schalte ich SG Aktiv wieder auf false?

                            Wenn die Variable aktiv auf false wechselt und dann 30 Minuten auf false bleibt, schaltet "SG Aktiv" auf false (Variablenwert).

                            Blockly_temp.JPG

                            1 Reply Last reply Reply Quote 0
                            • C
                              Chris777 last edited by

                              SG Aktiv.JPG

                              Ich versuche es mal kurz in Worte zu fassen:
                              Falls sich value ändert setze aktiv 1 auf true, wenn die Bedingungen Hausb.. etc. erfüllt sind. Wenn Aktiv 1 gleich SG Aktiv ist (egal ob true oder false) stoppe timeout3. Sonst, falls timeout3 nicht true ist, führe timeout3 aus und schalte nach 5 Minuten SG Aktiv auf den Wert von aktiv 1 (hier mit true). Das gleiche, wenn Aktiv 1 auf false wechselt.
                              Korrekt?

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

                                @chris777 sagte: Wenn Aktiv 1 gleich SG Aktiv ist (egal ob true oder false) stoppe timeout3. Sonst, falls timeout3 nicht true ist, führe timeout3 aus und schalte nach 5 Minuten SG Aktiv auf den Wert von aktiv 1 (hier mit true). Das gleiche, wenn Aktiv 1 auf false wechselt.

                                Korrekt?

                                Fast korrekt: falls timeout3 null oder undefined ist,

                                1 Reply Last reply Reply Quote 0
                                • C
                                  Chris777 last edited by

                                  @paul53 said in Blockly schaltet zu oft:

                                  undefined

                                  Danke für eure Geduld und schönen Abend!

                                  1 Reply Last reply Reply Quote 0
                                  • C
                                    Chris777 last edited by

                                    Also der Blockly funktioniert nicht. Er schaltet nicht auf aktiv true obwohl die Bedingung erfüllt sind.
                                    Aktiv.JPG

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

                                      @chris777 sagte: schaltet nicht auf aktiv true obwohl die Bedingung erfüllt sind.

                                      Sicher, dass die Bedingungen 5 Minuten lang erfüllt sind? Bau einen Debug-Block ein, um es zu prüfen.

                                      1 Reply Last reply Reply Quote 0
                                      • C
                                        Chris777 last edited by

                                        So scheint es erstmal heute funktioniert zu haben. Jeweils nur ein sauberes True oder False für die entsprechende Zeit..

                                        Aktiv.JPG

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        701
                                        Online

                                        32.0k
                                        Users

                                        80.5k
                                        Topics

                                        1.3m
                                        Posts

                                        4
                                        34
                                        1898
                                        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