Dimmer für EIB/KNX
Das Beispiel erzeugt einen Schieberegler für einen EIB/KNX Dimmer. Der aktuelle Helligkeitswert und der Schaltzustand werden auch dargestellt, wenn der Dimmer nicht über Fhem sondern über übliche Wandtaster gesteuert wird. Das Beispiel arbeitet mit Kanal C eines MDT Dimmers AKD-04.01.01 und verweist auf dessen KNX Objekte.
Es werden folgende GAs verwendet:
1/1/19
- Schaltet ein/aus zum Aktor (Obj.30)
1/1/119
- Rückmeldung des Schaltzustands vom Aktor (Obj.34)
1/1/104
- Status des Dimmwertes vom Aktor (Obj.35)
1/1/32
- Absoluter Dimmwert zum Aktor (Obj.33)
Die Definition des Geräts in der Konfigurationsdatei (z. B. fhem.cfg):
define 103_Licht EIB 1/1/19 1/1/119
Mit folgendem Element wird der jeweils aktuelle Dimmwert in 103_Dimm_Status für die Visualisierung in 103_Dimm gesetzt
define 103_Dimm_Status EIB 1/1/104 attr 103_Dimm_Status model dpt5 attr 103_Dimm_Status room hidden define x_103_Dimm_Status notify 103_Dimm_Status { \ if (abs($value{"103_Dimm"}-$value{"103_Dimm_Status"})>1) { \ my $i=$value{"103_Dimm_Status"};; \ fhem("set 103_Dimm $i") \ } \ }
Nun das Element für die Visualisierung:
define 103_Dimm dummy attr 103_Dimm setList state:slider,1,1,255 attr 103_Dimm webCmd state
... und das Element für das Senden absoluter Dimmwerte an den Aktor:
define 103_abs EIB 1/1/32 attr 103_abs model dpt5 attr 103_abs room hidden
(Kann jemand kurz kommentieren, was das folgende define umfasst?)
define 103_Dimm_a notify 103_Dimm {my $i=sprintf("%.2x",$value{"103_Dimm"}>0?$value{"103_Dimm"}:0);; fhem("set 103_abs value $i") }