Ein Taster mit zwei Funktionen (kurzem/langen Betätigen)

Begonnen von butaluk, 26 Januar 2017, 20:53:13

Vorheriges Thema - Nächstes Thema

Thorsten Pferdekaemper

Zitat von: Otto123 am 28 Januar 2017, 11:49:43gute Idee. Löscht sich ein temporäres at nicht von selbst?
Doch, aber wenn es sich nur um einen kurzen Tastendruck handelt, dann ist das at noch da, wenn die Taste losgelassen wird. In dem Fall würde das at nach einer Sekunde ausgelöst werden und das machen, was bei einem langen Tastendruck passieren soll. Deshalb muss das at bei "on", also beim Loslassen gelöscht werden. Natürlich könnte man zuerst prüfen, ob es nicht ein langer Tastendruck war, aber ich habe festgestellt, dass es nichts ausmacht, ein at zu löschen, das es sowieso nicht mehr gibt.

Zitat
Ich würde trotzdem nochmal forschen ob man nicht wie in meinem Zitat die RPI_GPIO mit einbinden kann? In der wäre ja für Taster quasi schon alles geklärt. Oder hältst Du das für ausgeschlossen?
Ich weiß es nicht. Mir kommt es aber so vor, dass RPI_GPIO sozusagen darunter liegt und nicht darüber. ...aber da kann ich mich irren.
Gruß,
   Thorsten
FUIP

Damian

hier mal was Konkretes (lässt sich per Raw definition mit copy und paste übernehmen):


defmod di_t DOIF ([INPUT_07:"Port6: on"])()(set etwas langer Tastendruck) DOELSEIF ([INPUT_07:"Port6: off"] and $cmd == 1.1) (set etwas kurzer Tastendruck)
attr di_t do always
attr di_t wait 0,2


langer Tastendruck gilt hier ab zwei Sekunden.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

butaluk


Damian

#18
Zitat von: butaluk am 28 Januar 2017, 13:09:43
Welche Wirkung hat dieser Ausdruck?

Den folgenden Befehl nur innerhalb von 2 Sekunden ausführen. Das Modul arbeitet mit Zuständen, die man abfragen kann. Genauere Infos zum Modul findest du wie immer in der deutschen Commandref.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

butaluk

Hallo,
habe es jetzt so ausprobiert:
define Taster_Licht_Flur_OG readingsProxy INPUT_07:Port6

defmod di_t DOIF ([Taster_Licht_Flur_OG: on"])()(set Licht_Flur_Oben on) DOELSEIF ([Taster_Licht_Flur_OG: off"] and $cmd == 1.1) (set Licht_Flur_Oben on-for-timer 60)
attr di_t do always
attr di_t wait 0,2


Funktioniert leider nicht.
In der Logfile wird nichts eingetragen, egal ob kurz oder lange gedruckt wird.

Thorsten Pferdekaemper

Zu DOIF kann ich nichts sagen...
Gruß,
   Thorsten
FUIP

Damian

Zitat von: butaluk am 29 Januar 2017, 11:35:58
Hallo,
habe es jetzt so ausprobiert:
define Taster_Licht_Flur_OG readingsProxy INPUT_07:Port6

defmod di_t DOIF ([Taster_Licht_Flur_OG: on"])()(set Licht_Flur_Oben on) DOELSEIF ([Taster_Licht_Flur_OG: off"] and $cmd == 1.1) (set Licht_Flur_Oben on-for-timer 60)
attr di_t do always
attr di_t wait 0,2


Funktioniert leider nicht.
In der Logfile wird nichts eingetragen, egal ob kurz oder lange gedruckt wird.

Klar nicht, wenn du nur jedes zweite Anführungszeichen setzt, siehe mein Beispiel.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF