Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. hochzählen solange trigger auf wahr, zurücksetzen wenn false

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    15
    1
    209

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

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

Geplant Angeheftet Gesperrt Verschoben Blockly
4 Beiträge 3 Kommentatoren 531 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • P Offline
    P Offline
    passuff
    schrieb am zuletzt editiert von
    #1

    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?

    paul53P 1 Antwort Letzte Antwort
    0
    • P passuff

      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?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @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

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      P 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @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 Offline
        P Offline
        passuff
        schrieb am zuletzt editiert von passuff
        #3

        @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!

        AsgothianA 1 Antwort Letzte Antwort
        0
        • P 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!

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          schrieb am zuletzt editiert von
          #4

          @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.

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          476

          Online

          32.7k

          Benutzer

          82.4k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe