Folgende Funktion soll erfüllt werden:

Taster oben kurz drücken: Licht ein, 100%
Taster unten kurz drücken: Licht aus

Taster oben lange drücken: Dimmen, steigern der Leistung
Taster unten lange drücken: Dimmen, senken der Leistung

Umsetung:

Der Dimmer sollte schon definiert sein. Hier trägt er den Namen „WNZ_DIM_01“.
Der Taster sollte ebenfalls schon definiert sein. Nennt sich hier „WNZ_Switch_01“.

Zuerst wird ein Dummy definiert.

Dies wird als Speicher für die eingestellte Leistung am Dimmer enthalten:

defmod WNZ_DIM_01_Mirror dummy
attr WNZ_DIM_01_Mirror room Wohnzimmer

Hierzu sind keine großen Erklärungen nötig 🙂

Danach die Sequenzen für den Taster:

defmod WNZ_seq_Switch_B0 sequence EnO_FEF9B4D4:channelB:.B0 1 EnO_FEF9B4D4:buttons:.released
attr WNZ_seq_Switch_B0 disable 0
attr WNZ_seq_Switch_B0 room Wohnzimmer
attr WNZ_seq_Switch_B0 triggerPartial 1
defmod WNZ_seq_Switch_BI sequence EnO_FEF9B4D4:channelB:.BI 1 EnO_FEF9B4D4:buttons:.released
attr WNZ_seq_Switch_BI disable 0
attr WNZ_seq_Switch_BI room Wohnzimmer
attr WNZ_seq_Switch_BI triggerPartial 1

In der ersten Zeile jeweils, sorgt die Angabe von „channelB:.BO“ für ein Tiggern auch wenn beide Tasten gedrückt werden (Channel A und Channel B).
Die Zeit bis zum Dimmen wurde auf 1 Sekunde gestellt… in der ersten Zeile.

Zuletzt die Notify-Definitionen

defmod WNZ_notify_B0_Short notify WNZ_seq_Switch_B0:trigger set WNZ_DIM_01_Mirror 99 ;;set WNZ_DIM_01 on;;set WNZ_DIM_01 dim 99
attr WNZ_notify_B0_Short room Wohnzimmer
defmod WNZ_notify_BI_Short notify WNZ_seq_Switch_BI:trigger set WNZ_DIM_01_Mirror 0;;set WNZ_DIM_01 off;;set WNZ_DIM_01 dim 0
attr WNZ_notify_BI_Short room Wohnzimmer
defmod WNZ_notify_dimDown notify WNZ_seq_Switch_BI:partial_1 {\
fhem("set WNZ_DIM_01_Mirror " . (ReadingsVal("WNZ_DIM_01_Mirror","state",0) - 4))};;\
{fhem("set WNZ_DIM_01 dim " . ReadingsVal("WNZ_DIM_01_Mirror","state",0))};;\
sleep 0.2;;\
IF ( [WNZ_DIM_01_Mirror:state] >= 10 and [EnO_FEF9B4D4:buttons] ne "released" ) ( trigger WNZ_seq_Switch_BI partial_1 )
attr WNZ_notify_dimDown room Wohnzimmer
defmod WNZ_notify_dimUp notify WNZ_seq_Switch_B0:partial_1 {\
fhem("set WNZ_DIM_01_Mirror " . (ReadingsVal("WNZ_DIM_01_Mirror","state",0) + 4))};;\
{fhem("set WNZ_DIM_01 dim " . ReadingsVal("WNZ_DIM_01_Mirror","state",0))};;\
sleep 0.2;;\
IF ( [WNZ_DIM_01_Mirror:state] <= 95 and [EnO_FEF9B4D4:buttons] ne "released" ) ( trigger WNZ_seq_Switch_B0 partial_1 )
attr WNZ_notify_dimUp room Wohnzimmer

Bei den Notifys für Kurzes Betätigen wird der Dimmer entweder auf 99% oder auf 0% gestellt. Bei 100% gab es unerwartete Probleme…

Notifys fürs Dimmen:
2te Zeile fast am Ende: Hier werden 4% pro Zyklus erhöht bzw. gesenkt.
4te Zeile: Die Wartezeit zwischen den Zyklen beträgt 0.2 Sekunden.
5te Zeile: Maximal und Minimalwert festlegen ( 10% bzw 95% ). Retrigger wird bei losgelassener Taste gestoppt. Anpassung nicht vergessen…

 

 

 

FHEM: Einfacher Dimmer für enOcean Taster und zWave Dimmer

Schreibe einen Kommentar