(FHEM) Beispiele

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

KNX-Dimmer mit Slider

Im Wohnzimmer ist die Deckenleuchte ueber einen KNX-Dimmer angeschlossen. Ein geteilter Taster dient an der Wand zum dimmen/schalten. Nachdem es in FHEM funktioniert hat habe ich den Teil hier mal rauskopiert und kommentiert, falls ich es nochmal brauche.

Mit FHEM sollte mit Hilfe eines Sliders der Dimmwert eingestellt werden koennen. Die fuer die Funktion relevanten Stellen sind mit '> markiert.

>define L_WZ_Dimmer_dummy dummy
 setuuid L_WZ_Dimmer_dummy 61db0cc0-XXXX-XXXX-XXXX-743efae02beXXXX
 attr L_WZ_Dimmer_dummy alias Wohnzimmer Decke Dimmer
 attr L_WZ_Dimmer_dummy group EG1
 attr L_WZ_Dimmer_dummy room KNX,LEUCHTEN,EG_1_Wohnzimmer
>attr L_WZ_Dimmer_dummy setList state:slider,1,1,100    // erzeugt in der Combobox bei set einen Eintrag mit state und einem slider
>attr L_WZ_Dimmer_dummy webCmd state // uebernimmt den Slider in den Device Overview

Dann passiert aber halt noch nix.

Zum Schalten brauchen ich das:

>define L_WZ_Dimmer_schalten KNX 1/0/100:dpt1.001:dpt1.001  // das hier muss ein Fehler sein warum doppelt?
setuuid L_WZ_Dimmer_schalten 61db0cc0-f33f-XXXX-6edf-1c2c950f1e4469c4
>attr L_WZ_Dimmer_schalten IODev EIB
attr L_WZ_Dimmer_schalten alias Wohnzimmer Decke
attr L_WZ_Dimmer_schalten group EG1
attr L_WZ_Dimmer_schalten room KNX,LEUCHTEN,EG_1_Wohnzimmer
#attr L_WZ_Dimmer_schalten webCmd state

und um den Prozentwert an KNX zu uebergeben das:

define L_WZ_Dimmer_setzen KNX 1/0/102:dpt5.001
setuuid L_WZ_Dimmer_setzen 61db0cc0-f33f-XXXX-ca3c-311006b4b34ad7fe
attr L_WZ_Dimmer_setzen IODev EIB
attr L_WZ_Dimmer_setzen room hidden
#attr L_WZ_Dimmer_setzen webCmd value // nicht notwendig durch den dpt5.001 wird der state automatisch in % angezeigt
#attr L_WZ_Dimmer_setzen model percent
define L_WZ_Dimmer_dummy_notify_1 notify L_WZ_Dimmer_dummy:.* set L_WZ_Dimmer_setzen $EVENT
setuuid L_WZ_Dimmer_dummy_notify_1 61db0cc8-f33f-1c66-bf96-e1f9110f3c6d5a1c
attr L_WZ_Dimmer_dummy_notify_1 alias L_WZ_Dimmer_dummy_notify_1 // Warum ich diesen alias drin habe, ist mir ein Raetsel

Ich hatte auch mal das probiert aber wieder verworfen.

#define x_L_WZ_Dimmer_dummy notify L_WZ_Dimmer_setzen {my $v=Value("L_WZ_Dimmer_dummy");;fhem("set L_WZ_Dimmer_setzen value $v")}
define L_WZ_Dimmer_setzen_DOIF_1 DOIF ([L_WZ_Dimmer_setzen:"^.*.%$"]) (Set L_WZ_Dimmer_dummy $EVENT)
setuuid L_WZ_Dimmer_setzen_DOIF_1 61db0cc8-f33f-1c66-d4d6-98282b938f25ec13
attr L_WZ_Dimmer_setzen_DOIF_1 alias L_WZ_Dimmer_setzen_DOIF_1 // Warum ich diesen alias drin habe, ist mir ein Raetsel

Das Notify ist sozusagen der Hinweg und das DOIF der Rueckweg. Uerbsetzung Notify: Wenn sich der State de Dummy-Devices irgendwie aendert 'L_WZ_Dimmer_dummy:.*' dann setze den Dimmer ueber KNX 'set L_WZ_Dimmer_setzen $EVENT' auf das wie er jetzt ist. * (Statuswert) -> $EVENT (Prozentwert KNX)

Uebersetzung DOIF: Sobald der %-Wert sich aendert, setze mit diesem Wert den Dummy. Wie ich auf den Regexp gekommen bin kann ich nicht mehr nachvollziehen. Ich probier mal /^.\d*%$/