Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Timeout, ich finde den Fehler nicht

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Timeout, ich finde den Fehler nicht

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

      Hallo zusammen,
      ich habe jetzt schon ein paar Tage gesucht aber ich kann den Fehler nicht finden.
      Bzw. verstehe das mit dem Timeout nicht.
      In beiden varianten bekomme ich ständig, also mehr fach pro Minute, eine Nachricht.
      Das kann doch alles nicht so schwer sein. Kann mir jemand das mit dem Timeout erklären?

      Besten Dank
      Daniel

      Waschmaschine2.jpg Waschmaschine1.jpg

      Homoran paul53 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Has3nb3inMH last edited by

        @Has3nb3inMH sagte in Timeout, ich finde den Fehler nicht:

        In beiden varianten bekomme ich ständig, also mehr fach pro Minute, eine Nachricht.

        Ich sehe gar nichts mit einer Nachricht.

        Du triggerst auf Aktualisierung, also ggf. Mehrfach pro Minute.
        Unter gleichen Bedingungen startet der nächste timeout und der alte wird nicht gestoppt.

        Liefert dein sensor eine Zahl oder einen String?
        Du prüfst auf String. Eine Zahl wäre wahrscheinlich besser

        H 1 Reply Last reply Reply Quote 0
        • H
          Has3nb3inMH @Homoran last edited by

          @Homoran Hallo,
          den Teil mit der Nachricht, sieht man hier nicht.
          Das ist von Trockner_fertig abhängig. Es ist die Leistung einer Steckdose.

          Glasfaser 1 Reply Last reply Reply Quote 0
          • Glasfaser
            Glasfaser @Has3nb3inMH last edited by

            @Has3nb3inMH sagte in Timeout, ich finde den Fehler nicht:

            Es ist die Leistung einer Steckdose.

            Ändere es so wie Homoran sagt

            Du prüfst auf String. Eine Zahl wäre wahrscheinlich besser

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

              @Has3nb3inMH sagte:

              bekomme ich ständig, also mehr fach pro Minute, eine Nachricht.

              Bei Leistungsschwankungen unter 3 wird jedesmal wieder ein neuer Timer gestartet. Vorschlag hier.

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

                @paul53 der laufende Timer müsste doch bei über 3 gestoppt werden.

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

                  @Has3nb3inMH sagte in Timeout, ich finde den Fehler nicht:

                  @paul53 der laufende Timer müsste doch bei über 3 gestoppt werden.

                  Wie ich bereits schrieb, wird er nicht gestoppt wenn mehrfach hintereinander der Wert bei < 3 aktualisiert wird.
                  Dann laufen mehrere Timer parallel und können nicht mehr gestoppt werden.

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

                    @Has3nb3inMH wie schon geschrieben nimm geändert und nicht aktualisiere. Das ist in deinem Fall tödlich 😉
                    Du könntest dann in deinen falls statements (linkes Skript von dir) Folgendes einbauen:
                    Falls wert < x und vorheriger wert >= x
                    Wert und vorheriger wert findest du unter Trigger Blöcken (heißt da objektid).

                    Homoran H 2 Replies Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @buggybeast last edited by

                      @buggybeast sagte in Timeout, ich finde den Fehler nicht:

                      nimm geändert und nicht aktualisiere. Das ist in deinem Fall tödlich

                      Aber selbst das hilft nicht, wenn hintereinander 2,8 .... 2,7....2,9... usw kommt.

                      Da muss unbedingt vor dem timeout ein Stop timeout erfolgen um den alten timeout zu beenden.

                      Die Folge davon ist aber, dass ständig die x Minuten neu gestartet werden.
                      Das von @paul53 verlinkte Skript habe ich mir nicht näher angesehen, aber ich würde mich wundern, wenn dieses Problem dort von Paul nicht abgefangen würde

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

                        @Homoran ja, außer er baut das mit wert und vorheriger wert ein 😊
                        Dann passiert das nicht.
                        Besser wäre es auch, wenn im ersten falls der gleiche Schwellenwert genommen wird, also in seinem Fall auch die 3 (natürlich als Zahl und nicht als Text). Und den stop timeout dann oben einzubauen, Im ersten falls Block.
                        Mein Skript sieht so aus und funktioniert seit Monaten tadellos.
                        3a99f571-adfb-4389-98bb-32825390f3da-image.png https://forum.iobroker.net/assets/uploads/files/1588412324597-script.png

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

                          @buggybeast sagte in Timeout, ich finde den Fehler nicht:

                          Dann passiert das nicht.

                          Sicher??

                          Was passiert bei
                          2,9....2,8....2,7....

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

                            @Homoran habe oben mal mein Skript rein kopiert.
                            Bei 2.7,...,2,8 passiert nix, wenn der vorherige Wert nicht >= 3 war.

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

                              @buggybeast siehe meinen letzten Post!

                              Du müsstest mit einer Sperrvariablen arbeiten, die auf true gesetzt wird, wenn < 3 und auf false wenn darüber und bei < 3 diese Abfragen ob diese vorher false war

                              paul53 1 Reply Last reply Reply Quote 0
                              • buggybeast
                                buggybeast last edited by buggybeast

                                @Homoran ich schätze du meinst, dass seine schwellwerte „kacke“ sind (sorry) 😉
                                Er muss die gleichen schwellwerte nehmen, wie in meinem Skript.
                                Dann funktioniert das.
                                Sonst hat er halt ein Problem, wenn der Wert mal auf 10 oder 50 geht. Meinst du das?
                                Hach Mist. Was ich meine, ist natürlich, wenn der der Wert von < 3 auf 10 oder so geht, und dann wieder auf < 3. dann würde ein zweiter timeout gestartet werden. Das liegt an den beiden weit auseinander liegenden schwellwerten.

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

                                  @buggybeast sagte in Timeout, ich finde den Fehler nicht:

                                  Meinst du das?

                                  Nein!
                                  Ich meine, selbst wenn er auf Änderung triggert und der nächste Wert gemäß dem Vergleich zum letzten unter 3 und immer kleiner wird, wird der Timeout neu gestartet.
                                  Der bisherige wird nicht gelöscht und damit hängt das ganze Skript so bald der timeout gelöscht werden soll, da mehrere timeout mit dem selben Namen laufen.

                                  EDIT:
                                  Mist Handy!

                                  Sehe jetzt erst, dass du mit absoluten Zahlen vergleichst und nicht WERT < VORHERIGER WERT.
                                  Dann passen meine Antworten natürlich nicht

                                  buggybeast 1 Reply Last reply Reply Quote 0
                                  • H
                                    Has3nb3inMH @buggybeast last edited by

                                    @buggybeast habe ich gemacht und läuft jetzt problemlos.

                                    Danke

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

                                      @Homoran sagt:

                                      Du müsstest mit einer Sperrvariablen arbeiten

                                      Im verlinkten Skript wird die Timer-Variable timeout als Sperrvariable "missbraucht". Anstelle einer Sperrvariable kann auch "vorheriger Wert" ausgewertet werden, wobei der Vergleich exakt sein muss, damit es in allen möglichen Fällen funktioniert.

                                      Blockly_temp.JPG

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

                                        @Homoran sagte in Timeout, ich finde den Fehler nicht:

                                        Mist Handy!

                                        Wenigstens geht es nicht nur mir so 😆

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        659
                                        Online

                                        32.0k
                                        Users

                                        80.4k
                                        Topics

                                        1.3m
                                        Posts

                                        5
                                        18
                                        833
                                        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