Dimmer für EIB/KNX

Aus FHEMWiki

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") }