NEWS
Abfrage Taster 3 Sekunden
-
Hallo,
wie kann ich unter Blockly abfragen ob ein Taster 3 Sekunden ohne Unterbrechung gedrückt wurde um erst danach weitere Befehle auszuführen?
Danke! -
@actionbyte gibt der Taster das auch her
-
@actionbyte
so in etwa:
Letzte Änderungen beziehen sich auf den Zeitstempel des Trigger und wenn das Dein Taster ist, löst das Script nach größer gleich 3 Senden beim loslassen etwas aus. Unter 3 Sekunden nicht.
Zu einer Abfrage bei gedrückt halten des Taster ob die 3 Sekunden schon erreicht sind, fällt mir gerade keine Lösung ein. -
@Jan1 das löst aber auch aus wenn zwischen loslassen und erneutem drücken mehr als 3 Sekunden liegen.
-
@thewhobox
Ja, aber das war auch nicht die Aufgabe.
Deshalb steht auch "so in etwa" drüber. Es soll nur eine Möglichkeit aufzeigen wie man das angehen könnte. -
@Jan1 die Aufgabe war bei 3 Sekunden Betätigung. Und nicht zusätzlich bei mehr als 3 Sekunden nicht betätigung
Ist aber auch schwer zu sagen, wenn wir nicht wissen was der Datenpunkt her gibt.
-
@thewhobox Liegt vermutlich daran, das der Zeitstempel in ms hinterlegt ist. Das Script ist also auf 3 ms gestellt. Mach mal 3000 draus, dann könnte das funktionieren.
Gruß
dna909
-
@dna909
Ups stimmt, sind ja ms, also mal 1000 -
Erst mal Danke für die Idee, aber irgenwie scheint das so nicht zu klappen.
ergibt
Daraus ergibt sich das der Trigger schon am Anfang die Ausgabe startet und nach 3 Sekunden nochmals, ebenfalls beim Wechsel von 1 auf 0 ebenfalls 2x die Ausgabe.
Zudem ist mein Trigger nicht false/true sondern ein Datenpunkt vom Sonoff der mir auf dem GPIO ON/OFF ausgibt. Ich denke das kann ich konvertieren aber die Auswertung mit "Änderung" minus "vorh. letzte Änderung" bringt leider nicht die gewünschte Ausgabe. -
@actionbyte
Das ist richtig, weil das nur ein Beispiel war wie man das machen könnte.
Wenn Du von geändert auf True beim Trigger wechselst, sollte beim ausschalten nichts mehr komme. Allerdings sofort beim erneuten Einschalten, weil Die Zeit ja weiterläuft und es dann gleich beim Einschalten eine Differenz größer 3 Sekunden sind.
Da musst noch erweitern um das alles anzufangen, oder einen anderen Ansatz wählen. -
Ich habe das Beispiel erweitert und setze nun eine Variabel beim Triggerereignis =1 sowie eine weitere Variabel bei "0" mit dem jeweiligen Zeitstempel.
Diese kann ich dann mit den 3000 ms verrechnen. Scheint so dann auch zu klappen.
Danke für die Grundidee!