Dimmer für EIB/KNX

Aus FHEMWiki
Version vom 11. Oktober 2021, 10:23 Uhr von Ph1959de (Diskussion | Beiträge) (Sichtung / Korrektur der letzten Änderungen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Das Beispiel (Feature-Set 5.7 getestet) erzeugt einen Schieberegler für einen EIB/KNX Dimmer. Der aktuelle Helligkeitswert und der Schaltzustand werden auch dann aktualisiert dargestellt, wenn der Dimmer nicht über FHEM sondern über übliche Wandtaster gesteuert wird.

EIB-KNX-DimmerDarstellung.png

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, write only)
1/1/119
Rückmeldung des Schaltzustands vom Aktor (Obj.34, read only)
1/1/104
Status des Dimmwertes vom Aktor (Obj.35, byte, read only)
1/1/32
Absoluter Dimmwert zum Aktor (Obj.33, byte, write only)
Info green.pngDie Konfiguationen und Beispiele verwenden das Modul EIB! Dieses Modul ist seit 2018 deprecated und wird nicht mehr gewartet. Beispiele für KNX sind auf der Seite KNX Device Definition - Beispiele zu finden.

Die Definition des Bedienelementes für den Dimmer-Schaltzustand in der Konfigurationsdatei (z. B. fhem.cfg):

define 103_Licht EIB 1/1/19 1/1/119
attr 103_Licht model dpt1
attr 103_Licht IODev tul

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 IODev tul
attr 103_Dimm_Status model percent
attr 103_Dimm_Status room hidden
define x_103_Dimm_Status notify 103_Dimm_Status { \
         my $i=Value("103_Dimm_Status");; \
         if(Value("103_Dimm_Status_T")) {fhem("delete 103_Dimm_Status_T")};; \
         fhem("define 103_Dimm_Status_T at +00:00:10 setreading 103_Dimm state $i") \
}

Die beiden letzten Zeilen stellen sicher, dass nach 10 Sekunden auch die Weboberfläche aktualisiert wird, wenn der Dimmerstatus aus dem KNX-System heraus verändert wurde (vielleicht kennt jemand eine bessere Variante...).

Nun das Element für die Visualisierung des Schiebereglers:

define 103_Dimm dummy
attr 103_Dimm setList state:slider,1,1,100
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 percent
attr 103_abs room hidden

Wenn über die Bedienoberfläche der Schieberegler verschoben wird, ändert sich "103_Dimm" und löst nun ein Event aus. Dabei wird dann "103_abs" aktualisiert, d.h., der neue Dimmwert wird von FHEM gen KNX-Bus in den Aktor geschrieben.

define x_103_Dimm notify 103_Dimm { \
    my $v=Value("103_Dimm");; \
    fhem("set 103_abs value $v") \
}