NEWS
Doppelter Tastendruck innerhalb 3 Sekunden [gelöst]
-
Hallo Gemeinschaft ...
leider bin ich nicht sehr bewandert mit Blockly und falls meine Frage eine ist die schon 1000 mal beantwortet wurde nehmt's mir nicht übel ja?
Ich versuche ein Blockly zu schreiben das einen MQTT Event auswertet und wenn dieser innerhalb 3 Sekunden 2 mal vorkommt (doppel Tastendruck) dann soll Funktion1 erfolgen andernfalls Funktion 2
Gibt es da wo eine Vorlage??
Vielen Dank schon mal im Voraus
-
Lösungsansatz:
- Boolsches Objekt anlegen.
- Blockly-Script:
Wenn Taste gedrückt
- und Objekt true, dann Aktion.
- und Objekt auf false dann keine Aktion
- Blockly-Script:
Wenn Taste gedrückt dann
- Objekt sofort auf True
- Objekt verzögert um 3 Sekunden auf False
-
@hmanfred sagte in Doppelter Tastendruck innerhalb 3 Sekunden:
Lösungsansatz:
- Boolsches Objekt anlegen.
Dafür würde ich eine lokale Variable nehmen. Ist bei zeitkrischen Dingen sicherer. (Bei Scriptstart mit "unwahr" initialisieren!)
-
Schau Dir mal
[Vorlage] Blockly Änderungen innerhalt eines Zeitraums erkennen. an. Ist von @rantanplan: musst aber noch was dran tun. -
@rantanplan sagte in Doppelter Tastendruck innerhalb 3 Sekunden:
Bei Scriptstart mit "unwahr" initialisieren
Wie macht man das? Bin immer neugierig...
Grüße Andreas -
@weimaraner sagte in Doppelter Tastendruck innerhalb 3 Sekunden:
@rantanplan sagte in Doppelter Tastendruck innerhalb 3 Sekunden:
Bei Scriptstart mit "unwahr" initialisieren
Wie macht man das? Bin immer neugierig...
Grüße AndreasAußerhalb eines Triggers.
Alles was außerhalb eines Triggers steht wird nur 1x bei Scriptstart ausgeführt.Lokale Variablen haben bei Striptstart keinen Zustand. Sind also leer, nix, null, nothing, undefiniert.
Wenn man innerhalb des Triggers vergißt der Variablen einen Wert zuzuweisen und die dann benutzt, gibt es einen Fehler.Da Fehlersuche in Blockly etwas mühselig, weist man sicherheitshalber solchen Variablen bei Scriptstart Werte zu.
Am besten gleich den richtigen Typ verwenden.
Wenn die für Text gedacht ist, setze myText auf "" oder setze myZahl auf 0 oder setze myBol auf unwahr.In dem o.g. Beispiel von mir kannst Du das sehen. Und lernst noch was eine Funktion ist.
-
@HoerMirAuf sagte:
wenn dieser innerhalb 3 Sekunden 2 mal vorkommt (doppel Tastendruck) dann soll Funktion1 erfolgen andernfalls Funktion 2
Vorschlag:
-
Vielen Dank für die tollen Antworten.
ich hab @paul53 Blockly mal nachgebaut. Leider funktioniert es nicht.
Da kann der Trigger ein zweites mal kommen soviel er will, es wird immer nur FUnktion2 ausgeführt bzw. dann 2x bei doppelten Tastendruck ... -
@HoerMirAuf sagte:
Leider funktioniert es nicht.
Zeige mal den Javascript-Code, den Blockly generiert hat, ohne die letzte Zeile.
-
GuMo @paul53
Oha ... ich hab meinen Fehler gefunden. Hatte zu Testzwecken eine Variabe "Timeout" erstellt (mit "T") und die versehentlich anstelle von "timeout" eingetragen ... Mann mann mann ... bis man das dann sieht! Betriebsblindheit !!
Das Blockly funktioniert top !!!
Herzlichsten Dank !!!
Top Unterstützung gewesen ...
-
@HoerMirAuf sagte:
Das Blockly funktioniert top
Dann markiere bitte das Thema in der Überschrift als [gelöst].