Seite 1 von 1

Script auflösen bei "3x kurze Betätigung einer Taste"

Verfasst: 11.02.2019, 19:42
von lucabert
Hallo,

ich versuche zu überlegen, wie ich ein bestimmtes Script auflösen kann, indem ich z.B. 3 mal schnell eine Taste drucke...
Meine Idee war, zwei Variabeln zu definieren, eine als Zähler und die andere als "Start-Zeitstempel".
Jedesmal, dass ich die Taste betätige, wird geprüft, ob die aktuelle Zeitstempel eine Differenz zum "Start" weniger als eine Sekunde hat. Ist das der Fall, wird der Zähler addiert, sonst wieder auf 0 gesetzt.
Erreicht der Zähler den Wert z.B. 3, löse ich das Skript auf.

Das sollte funktionieren, allerdings muss ich sehen, dass diese Zeitstempel eine Auflösung hat, die feiner als eine Sekunde ist, sonst geht es nicht.

Ich konnte aber keine Funktion finden, mit der ich die aktuelle Zeit als Millisekunden vom Epoch bekomme...

Kann jemand mir helfen, bzw. ein anderes System empfehlen, wie ich das Problem lösen kann?

Danke
Luca

Re: Script auflösen bei "3x kurze Betätigung einer Taste"

Verfasst: 11.02.2019, 19:53
von robbi77
lucabert hat geschrieben:
11.02.2019, 19:42
Hallo,

ich versuche zu überlegen, wie ich ein bestimmtes Script auflösen auslösenkann, indem ich z.B. 3 mal schnell eine Taste druckedrücke...
Meine Idee war, zwei VariabelnVariablen zu definieren, eine als Zähler und die andere als "Start-Zeitstempel".
Jedesmal, dasswenn ich die Taste betätige, wird geprüft, ob dieder aktuelle Zeitstempel eine Differenz zum "Start" ,weniger als eine Sekunde hat. Ist das der Fall, wird der Zähler addiert, sonst wieder auf 0 gesetzt.
Erreicht der Zähler den Wert z.B. 3, löse ich das Skript aufaus.

Das sollte funktionieren, allerdings muss ich sehen, dass dieser Zeitstempel eine Auflösung hat, die feiner als eine Sekunde ist, sonst geht es nicht.

Ich konnte aber keine Funktion finden, mit der ich die aktuelle Zeit als Millisekunden vom Epochvom was? bekomme...

Kann jemand mir helfen, bzw. ein anderes System empfehlen, wie ich das Problem lösen kann?

Danke
Luca
Entschuldige, ich hatte zu viel Zeit ...

Re: Script auflösen bei "3x kurze Betätigung einer Taste"

Verfasst: 11.02.2019, 19:58
von Xel66
Du brauchst nur mit der ersten und der zweiten Tastenbetätigung je eine Systemvariable setzen und nach einer Zeitspanne wieder zurücksetzen. Kommen in dieser Zeit noch zwei weitere Tastendrücke (Systemvariable) rein, wird ausgelöst oder alles wieder auf FALSCH gesetzt. Das mit den Timestamps ist zu zeitkritisch und die Laufzeit des Scripts nicht garantiert vorhersagbar. Erst recht nicht, wenn auf dem System noch andere Scripts laufen.

Gruß Xel66

Re: Script auflösen bei "3x kurze Betätigung einer Taste"

Verfasst: 11.02.2019, 20:17
von lucabert
Xel66 hat geschrieben:
11.02.2019, 19:58
Du brauchst nur mit der ersten und der zweiten Tastenbetätigung je eine Systemvariable setzen und nach einer Zeitspanne wieder zurücksetzen. Kommen in dieser Zeit noch zwei weitere Tastendrücke (Systemvariable) rein, wird ausgelöst oder alles wieder auf FALSCH gesetzt. Das mit den Timestamps ist zu zeitkritisch und die Laufzeit des Scripts nicht garantiert vorhersagbar. Erst recht nicht, wenn auf dem System noch andere Scripts laufen.
Ich nehme an, die erste und letzte Tastenbetätigung, nicht wahr? Und dann zählen, wie viele Tastenbetätigungen innerhalb der Zeit.
Ja, das würde gehen, aber wenn ich dreimal betätige innerhalb einer Sekunde, aber diese "in zwei nacheinanderliegenden Sekunden" sind, sehe ich schon ein Problem, denn das System denkt, es sind zwar 3x Tasten, aber innerhalb 2 Sekunden...

Oder habe ich dein Vorschlag falsch verstanden?

Danke
Luca

Re: Script auflösen bei "3x kurze Betätigung einer Taste"

Verfasst: 11.02.2019, 20:25
von Sammy
Die Zeit lässt Du ja erst nach der ersten Betätigung starten. Außerdem kannst/solltest Du sowieso besser 2s nehmen. Es könnte schwer werden, 3 Telegramme innerhalb 1s von Hand auszusenden.

Re: Script auflösen bei "3x kurze Betätigung einer Taste"

Verfasst: 11.02.2019, 20:32
von lucabert
Die Zeit lässt Du ja erst nach der ersten Betätigung starten. Außerdem kannst/solltest Du sowieso besser 2s nehmen. Es könnte schwer werden, 3 Telegramme innerhalb 1s von Hand auszusenden.
OK, verstanden...
Ich werde ein bißchen experimentieren...

Danke
Luca

Re: Script auflösen bei "3x kurze Betätigung einer Taste"

Verfasst: 11.02.2019, 23:15
von Xel66
Ich meinte: erster Tastendruck, setzt erste Systemvariable auf WAHR (und verzögert um 2 Sek. wieder auf FALSCH) wenn die zweite FALSCH ist, der zweite setzt die zweite Systemvariable auf WAHR, wenn die erste WAHR ist (und verzögert um 1 Sek. wieder auf FALSCH) und der dritte Tastendruck löst die Aktion aus, wenn beide Systemvariablen WAHR sind. Das sollte man alles in einem Programm abarbeiten können (1x WENN, 2x SONST WENN). Das Timing könnte man noch innerhalb zwei Sekunden abarbeiten. Kürzer geht es wahrscheinlich nicht. Die CCU baucht auch Zeit.

Gruß Xel66

Re: Script auflösen bei "3x kurze Betätigung einer Taste"

Verfasst: 11.02.2019, 23:18
von Familienvater
Hi,

in ioBroker kannst Du mit Zeitstempeln mit ms-Sekunden Auflösung arbeiten, ob man das braucht, und ob das Sinn macht, musst Du dann für Dich entscheiden.

Der Familienvater