FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Incubant am 27 September 2016, 21:26:55

Titel: Schalter (RPI_GPIO) soll bei longress Zeit von press verlängern
Beitrag von: Incubant am 27 September 2016, 21:26:55
Ich habe ein Problem, ich will bei einem Schalter (RPI_GPIO) ein Licht für 2 Minuten anmachen. Wenn der Schalter aber 3 Sekunden gedrückt wird (longpress) soll das Licht erst nach 15 Minuten abschalten. Das klingt einfach ich bekomm es aber nicht hin, weil der press das Licht immer nach 2 Minuten abschaltet und der Longpress nichts mehr nutzt, weil es schon lange aus ist.

Meine Konfiguration:
define n_Tuer_Schalter notify Tuer_Schalter:on {fhem("set Pin21_Licht_EG on-for-timer 120");;}
define n_Tuer_Schalter_longpress notify Tuer_Schalter:Longpress:on {fhem("set Pin21_Licht_EG on-for-timer 900");;}


Vielen Dank für die Lösung
Titel: Antw:Schalter (RPI_GPIO) soll bei longress Zeit von press verlängern
Beitrag von: Frank_Huber am 28 September 2016, 12:35:55
Hi,

Ich habe mit kurz Tasten eine Zeitsteuerung, mit Longpress wird es zum Dauerlicht.
2 dummys und 5 notifys. Ist nicht ganz was Du suchst, aber vielleicht kannst es dir ableiten. funktioniert einwandfrei.



define Li_Einfahrt_Zeit dummy
attr Li_Einfahrt_Zeit webCmd on:off

define Li_Einfahrt_Dauer dummy
attr Li_Einfahrt_Dauer webCmd on:off

define Licht12_Einfahrt_GPIO_in notify GPIO_IN_27:on {Log 1,$EVENT;;;;{if (Value("Li_Einfahrt_Zeit") eq "on") {fhem ("set Li_Einfahrt_Zeit off")}else {fhem ("set Li_Einfahrt_Zeit on")}};;;;}

define Licht12_Einfahrt_GPIO_out notify Li_Einfahrt_Zeit set OUT_2 PortA7 $EVENT

define Licht12_Einfahrt_Longpress notify GPIO_IN_27:Longpress:.*on {Log 1,$EVENT;;fhem("delete a_tmp_Li_Einfahrt_Zeit");;}

define Licht12_Einfahrt_Toggle notify Li_Einfahrt_Dauer:on.* \
{if (Value("OUT2_A7") eq "on") {fhem ("set OUT_2 PortA7 off")}\
else {fhem ("set OUT_2 PortA7 on")}}

define Licht12_Einfahrt_Zeit notify Li_Einfahrt_Zeit:on {if(OldValue('Li_Einfahrt_Zeit') eq 'off'){fhem("set Li_Einfahrt_Zeit on");;fhem("define a_tmp_Li_Einfahrt_Zeit at +00:03:00 set Li_Einfahrt_Zeit  off");;}elsif(OldValue('Li_Einfahrt_Zeit') eq 'on'){fhem("set Li_Einfahrt_Zeit off");;}}