Dimmer für EIB/KNX: Unterschied zwischen den Versionen
(%% => %) |
K (Sichtung / Korrektur der letzten Änderungen) |
||
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
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 | 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. | ||
[[Datei:EIB-KNX-DimmerDarstellung.png]] | |||
Das Beispiel arbeitet mit Kanal C eines MDT Dimmers AKD-04.01.01 und verweist auf dessen [[:Kategorie:EIB/KNX|KNX]] Objekte. | |||
Es werden folgende GAs verwendet: | Es werden folgende GAs verwendet: | ||
;<code>1/1/19</code> : Schaltet ein/aus zum Aktor (Obj.30) | ;<code>1/1/19</code> : Schaltet ein/aus zum Aktor (Obj.30, write only) | ||
;<code>1/1/119</code> : Rückmeldung des Schaltzustands vom Aktor (Obj.34) | ;<code>1/1/119</code> : Rückmeldung des Schaltzustands vom Aktor (Obj.34, read only) | ||
;<code>1/1/104</code> : Status des Dimmwertes vom Aktor (Obj.35) | ;<code>1/1/104</code> : Status des Dimmwertes vom Aktor (Obj.35, byte, read only) | ||
;<code>1/1/32</code> : Absoluter Dimmwert zum Aktor (Obj.33) | ;<code>1/1/32</code> : Absoluter Dimmwert zum Aktor (Obj.33, byte, write only) | ||
{{Randnotiz|RNText=Die 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 | 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 | 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 | define 103_Dimm_Status EIB 1/1/104 | ||
attr 103_Dimm_Status model | attr 103_Dimm_Status IODev tul | ||
attr 103_Dimm_Status model percent | |||
attr 103_Dimm_Status room hidden | attr 103_Dimm_Status room hidden | ||
define x_103_Dimm_Status notify 103_Dimm_Status { \ | 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: | Nun das Element für die Visualisierung des Schiebereglers: | ||
define 103_Dimm dummy | define 103_Dimm dummy | ||
attr 103_Dimm setList state:slider,1,1, | attr 103_Dimm setList state:slider,1,1,100 | ||
attr 103_Dimm webCmd state | attr 103_Dimm webCmd state | ||
... und das Element für das Senden absoluter Dimmwerte an den Aktor: | ... und das Element für das Senden absoluter Dimmwerte an den Aktor: | ||
define 103_abs EIB 1/1/32 | define 103_abs EIB 1/1/32 | ||
attr 103_abs model | attr 103_abs model percent | ||
attr 103_abs room hidden | 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") \ | |||
} | |||
[[Kategorie:Examples]] | [[Kategorie:Examples]] | ||
[[Kategorie:EIB/KNX]] | [[Kategorie:EIB/KNX]] |
Aktuelle Version vom 11. Oktober 2021, 10:23 Uhr
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.
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)
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") \ }