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.
    • C
      Chris777 last edited by Chris777

      Hallo,
      kann mir jemand vielleicht helfen und mir sagen, warum mein blockly oft hin und her schaltet. Eigentlich soll er, wenn die Bedinung erfüllt ist, nach 30 Minuten Aktiv schalten und wenn die Bedingung nicht mehr erfüllt ist nach 30 Minuten auf nicht Aktiv schalten.
      SG Aktiv.JPG SG Aktiv 2.JPG
      Er schaltet aber öfter.

      Siehe dazu Anhänge.

      Danke und Gruß

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

        @chris777
        Vor dem Starten eines Timeout diesen erstmal stoppen.
        Sonst laufen ggf. mehrere Instanzen davon parallel.

        Du willst ja nur schalten, wenn der Zustand auch 30 Minuten andauert.
        So wie das aktuell gemacht ist, wird ein Timeout gestartet und wenn sich innerhab der 30 Minuten etwas ändert wird ein neuer Timeout gestartet. Die enden dann beide irgendwann und schreiben den Wert.

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

          @codierknecht konntest du mir das mit dem Stoppen bitte erklären oder ein Beispiel zeigen?

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

            @chris777 sagte: Beispiel zeigen?

            Blockly_temp.JPG

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

              @paul53 Geht es auch so? Dein Beispiel setze aktiv etc. verstehe ich nicht so richtig.
              SG Aktiv.JPG

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

                @chris777 sagte: Geht es auch so?

                So laufen die Timer wahrscheinlich nie ab, da sie vorher immer wieder gestoppt werden.

                @chris777 sagte in Blockly schaltet zu oft:

                setze aktiv etc. verstehe ich nicht so richtig.

                Die Variable aktiv enthält den Sollzustand, der 30 Minuten nach Änderung geschrieben wird.

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

                  @paul53 Und was hat der sonst falls nicht Verzögerung timeout zu sagen?

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

                    @chris777 sagte: was hat der sonst falls nicht Verzögerung timeout zu sagen?

                    Das verhindert, dass der Timeout mehrfach gestartet wird.

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

                      @paul53 Ich weiß, ich nerve vielleicht, aber was heist verzögerung timeout genau? Das der Timeout nicht gleich gestartet wird und wenn ja nach wieviel sek. wird er gestartet.

                      Hast du eingutes Handbuch, wo man sich solche Funktionen angucken kann?

                      paul53 Homoran 2 Replies Last reply Reply Quote 0
                      • paul53
                        paul53 @Chris777 last edited by

                        @chris777 sagte: was heist verzögerung timeout genau?

                        Es wird die Timer-Variable timeout geprüft. Wenn der Timer startet, wird sie auf ein spezielles Timer-Objekt gesetzt. Wenn der Timer gestoppt wird, wird die Variable timeout auf null gesetzt, so dass die Bedingung "nicht Verzögerung timeout" erfüllt ist.

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

                          @paul53 Danke!

                          1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @Chris777 last edited by

                            @chris777 sagte in Blockly schaltet zu oft:

                            aber was heist verzögerung timeout genau? Das der Timeout nicht gleich gestartet wird und wenn ja nach wieviel sek. wird er gestartet.

                            Nein! Du kannst die Verzögerung selbst mit einem Namen versehen, damit du verschiedene Verzögerungen in einem Blockly auseinander halten kannst.
                            Da du das nicht gemacht hast, heisst drine Verzögerung einfach noch "timeout"

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

                              Meine Lösung scheint auch zu funktionieren.

                              Gruß

                              Homoran 1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @Chris777 last edited by Homoran

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

                                Meine Lösung scheint auch zu funktionieren.

                                und welche Möglichkeit hast du noch gefunden, die Paul, Codierknecht oder ich übersehen haben?

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

                                  @homoran siehe oben mein screenshoot. Bevor der eine timeout startet wird der jeweils andere gestoppt und bis jetzt kommen saubere Signale.

                                  Homoran 1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @Chris777 last edited by Homoran

                                    @chris777 kann es nicht!
                                    Da ich immer noch nicht weiß was hinter den DPs steckt, natürlich nur auf Glaskugelbasis

                                    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.

                                    Codierknecht 1 Reply Last reply Reply Quote 0
                                    • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            764
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

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