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…