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
Script auflösen bei "3x kurze Betätigung einer Taste"
Moderator: Co-Administratoren
- robbi77
- Beiträge: 13858
- Registriert: 19.01.2011, 19:15
- System: CCU
- Wohnort: Landau
- Hat sich bedankt: 182 Mal
- Danksagung erhalten: 739 Mal
Re: Script auflösen bei "3x kurze Betätigung einer Taste"
Entschuldige, ich hatte zu viel Zeit ...lucabert hat geschrieben: ↑11.02.2019, 19:42Hallo,
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
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...
-
- Beiträge: 14165
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 585 Mal
- Danksagung erhalten: 1500 Mal
Re: Script auflösen bei "3x kurze Betätigung einer Taste"
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
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
Re: Script auflösen bei "3x kurze Betätigung einer Taste"
Ich nehme an, die erste und letzte Tastenbetätigung, nicht wahr? Und dann zählen, wie viele Tastenbetätigungen innerhalb der Zeit.Xel66 hat geschrieben: ↑11.02.2019, 19:58Du 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.
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
- Sammy
- Beiträge: 9172
- Registriert: 09.09.2008, 20:47
- Hat sich bedankt: 15 Mal
- Danksagung erhalten: 174 Mal
Re: Script auflösen bei "3x kurze Betätigung einer Taste"
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.
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!
Re: Script auflösen bei "3x kurze Betätigung einer Taste"
OK, verstanden...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.
Ich werde ein bißchen experimentieren...
Danke
Luca
-
- Beiträge: 14165
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 585 Mal
- Danksagung erhalten: 1500 Mal
Re: Script auflösen bei "3x kurze Betätigung einer Taste"
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
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 7151
- Registriert: 31.12.2006, 15:18
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Rhein-Main
- Danksagung erhalten: 34 Mal
Re: Script auflösen bei "3x kurze Betätigung einer Taste"
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
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