Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. hochzählen solange trigger auf wahr, zurücksetzen wenn false

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    hochzählen solange trigger auf wahr, zurücksetzen wenn false

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

      Hallo zusammen,

      ich möchte die Dauer wie lange eine Variable "Test" auf true ist in eine Variable "Dauer Takten erkannt" schreiben. Sobald die Variable "Test" false wird, soll die Variable "Dauer Takten erkannt" wieder zurückgesetzt werden:
      2020-11-05 21_40_47-javascript - ioBroker.png
      Sobald die Variable "Test" auf "true" gestellt wird, wird die Variable "Dauer Takten erkannt" hochgezählt. Bei "false" wird die Variable "Dauer Takten erkannt" zunächst zurückgesetzt, jedoch wird im Anschluss weiter inkrementiert (vom zuletzt bekannten Wert bevor zurückgesetzt wurde).
      Wieso läuft der erste Trigger obwohl die Variable Test auf false steht?

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

        @passuff sagte:

        Wieso läuft der erste Trigger obwohl die Variable Test auf false steht?

        Der Zeitplan läuft weiter, weil er nicht gestoppt wird. Verwende besser ein Intervall und nur einen Trigger.

        Blockly_temp.JPG

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

          @paul53
          Diese Intervall Blöcke sind mir suspekt. Ich habe es inzwischen so versucht:

          2020-11-05 22_09_39-javascript - ioBroker.png
          Das zurücksetzen muss allerdings mehrmals laufen bis es funktioniert... Ich teste mal deine Variante. Danke Dir! 🙂

          EDIT: Deine Variante funktioniert wirklich sauber. Habe ich übernommen.
          Danke Dir!

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

            @passuff sagte in hochzählen solange trigger auf wahr, zurücksetzen wenn false:

            Diese Intervall Blöcke sind mir suspekt. Ich habe es inzwischen so versucht:

            Das dieses nicht funktioniert wundert mich nicht. Ich weiss nicht wie gut der ioBroker damit umgehen kann wenn der identische JS Code mehrfach parallel aufgerufen wird. Genau das kann aber passieren (Alternativ, wenn der ioBroker das erkennt und Blockiert wird auf weitere Trigger nicht reagiert)

            Das Problem an diesem Code ist das du "synchron" die Abarbeitung des Triggers so lange verzögerst bis der Wert sich wieder geaendert hat. Wenn du den Taster also lange genug fest hältst wird die Schleife nie beendet werden. Der "Pause" Baustein sorgt nicht dafür das das ganze asynchron bearbeitet wird, er sorgt nur dafür das die Abarbeitung pausiert. Dennoch kommt der Aufruf der den Trigger startet nicht zurück.

            Genau das ist aber was der ioBroker benötigt. Die einzelnen Funktionen die durch einen Trigger aufgerufen werden sollten so schnell wie möglich zurück kommen. Wenn in einer Funktion ein "Intervall" gestartet wird, dann ist das "asynchron", sprich die Abarbeitung wird nur angestossen und die Funktion kommt sofort zurück.

            Warum schreibe ich das so ausführlich ? Dein Blockly ist ein extrem gutes Beispiel wie man es NICHT machen sollte. @paul53 hat davor schon die "saubere" Variante gepostet, die letztendlich genau das gleiche macht was du auch mit deiner Variante versucht hast, nur halt "asynchron" anstatt "synchron".

            A.

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

            Support us

            ioBroker
            Community Adapters
            Donate

            972
            Online

            31.9k
            Users

            80.3k
            Topics

            1.3m
            Posts

            3
            4
            402
            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