Dimmer für EIB/KNX: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
K (Sichtung / Korrektur der letzten Änderungen)
 
(13 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= Dimmer für EIB/KNX =
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 erzeugt einen Schieberegler für Dimmer. Der aktuelle Helligkeitswert und Schaltzustand wird 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.
[[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:


1/1/19 -> 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, read only)
1/1/119 <- Rückmeldung des Schaltzustands vom Aktor (Obj.34)
;<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, byte, write only)
1/1/104 <- Status des Dimmwertes vom Aktor (Obj.35)
{{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 Bedienelementes für den Dimmer-Schaltzustand in der Konfigurationsdatei (z.&nbsp;B. fhem.cfg):
1/1/32 -> Absoluter Dimmwert zum Aktor (Obj.33)
define 103_Licht EIB 1/1/19 1/1/119
attr 103_Licht model dpt1
attr 103_Licht IODev tul


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
 
Mit folgendem Element wird der jeweils aktuelle Dimmwert in 103_Dimm_Status für die Visulaisierung 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 dpt5
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 { \
    if (abs($value{"103_Dimm"}-$value{"103_Dimm_Status"})>1) { \
          my $i=Value("103_Dimm_Status");; \
          my $i=$value{"103_Dimm_Status"};; \
          if(Value("103_Dimm_Status_T")) {fhem("delete 103_Dimm_Status_T")};; \
          fhem("set 103_Dimm $i") \
          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,255
  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 dpt5
  attr 103_abs model percent
  attr 103_abs room hidden
  attr 103_abs room hidden


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") }
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, 11: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.

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