(FHEM) Beispiele: Unterschied zwischen den Versionen

Aus TippvomTibb
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=KNX-Dimmer mit Slider= Im Wohnzimmer ist die Deckenleuchte ueber einen KNX-Dimmer angeschlossen. Ein geteilter Taster dient an der Wand zum dimmen/schalten.…“)
 
Zeile 2: Zeile 2:
  
 
Im Wohnzimmer ist die Deckenleuchte ueber einen KNX-Dimmer angeschlossen. Ein geteilter Taster dient an der Wand zum dimmen/schalten.
 
Im Wohnzimmer ist die Deckenleuchte ueber einen KNX-Dimmer angeschlossen. Ein geteilter Taster dient an der Wand zum dimmen/schalten.
Mit FHEM sollte mit Hilfe eines Sliders der Dimmwert eingestellt werden koennen.
+
Mit FHEM sollte mit Hilfe eines Sliders der Dimmwert eingestellt werden koennen. Die fuer die Funktion relevanten Stellen sind mit '> markiert.
 
<pre>
 
<pre>
define L_WZ_Dimmer_dummy dummy
+
>define L_WZ_Dimmer_dummy dummy
setuuid L_WZ_Dimmer_dummy 61db0cc0-XXXX-XXXX-XXXX-743efae02beXXXX
+
setuuid L_WZ_Dimmer_dummy 61db0cc0-XXXX-XXXX-XXXX-743efae02beXXXX
attr L_WZ_Dimmer_dummy alias Wohnzimmer Decke Dimmer
+
attr L_WZ_Dimmer_dummy alias Wohnzimmer Decke Dimmer
attr L_WZ_Dimmer_dummy group EG1
+
attr L_WZ_Dimmer_dummy group EG1
attr L_WZ_Dimmer_dummy room KNX,LEUCHTEN,EG_1_Wohnzimmer
+
attr L_WZ_Dimmer_dummy room KNX,LEUCHTEN,EG_1_Wohnzimmer
attr L_WZ_Dimmer_dummy setList state:slider,1,1,100
+
>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
+
>attr L_WZ_Dimmer_dummy webCmd state // uebernimmt den Slider in den Device Overview
 
</pre>
 
</pre>
  
Ich hatte auch mal das probiert aber wieder verworfen.
+
Dann passiert aber halt noch nix.
#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_dummy_notify_1 notify L_WZ_Dimmer_dummy:.* set L_WZ_Dimmer_setzen $EVENT
+
Zum Schalten brauchen ich das:
setuuid L_WZ_Dimmer_dummy_notify_1 61db0cc8-f33f-1c66-bf96-e1f9110f3c6d5a1c
+
<pre>
attr L_WZ_Dimmer_dummy_notify_1 alias L_WZ_Dimmer_dummy_notify_1
+
>define L_WZ_Dimmer_schalten KNX 1/0/100:dpt1.001:dpt1.001 // das hier muss ein Fehler sein warum doppelt?
 
 
 
 
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
 
 
 
define L_WZ_Dimmer_schalten KNX 1/0/100:dpt1.001:dpt1.001
 
 
setuuid L_WZ_Dimmer_schalten 61db0cc0-f33f-XXXX-6edf-1c2c950f1e4469c4
 
setuuid L_WZ_Dimmer_schalten 61db0cc0-f33f-XXXX-6edf-1c2c950f1e4469c4
attr L_WZ_Dimmer_schalten IODev EIB
+
>attr L_WZ_Dimmer_schalten IODev EIB
 
attr L_WZ_Dimmer_schalten alias Wohnzimmer Decke
 
attr L_WZ_Dimmer_schalten alias Wohnzimmer Decke
 
attr L_WZ_Dimmer_schalten group EG1
 
attr L_WZ_Dimmer_schalten group EG1
 
attr L_WZ_Dimmer_schalten room KNX,LEUCHTEN,EG_1_Wohnzimmer
 
attr L_WZ_Dimmer_schalten room KNX,LEUCHTEN,EG_1_Wohnzimmer
attr L_WZ_Dimmer_schalten webCmd  
+
#attr L_WZ_Dimmer_schalten webCmd state
 +
</pre>
  
 +
und um den Prozentwert an KNX zu uebergeben das:
 +
<pre>
 
define L_WZ_Dimmer_setzen KNX 1/0/102:dpt5.001
 
define L_WZ_Dimmer_setzen KNX 1/0/102:dpt5.001
 
setuuid L_WZ_Dimmer_setzen 61db0cc0-f33f-XXXX-ca3c-311006b4b34ad7fe
 
setuuid L_WZ_Dimmer_setzen 61db0cc0-f33f-XXXX-ca3c-311006b4b34ad7fe
 
attr L_WZ_Dimmer_setzen IODev EIB
 
attr L_WZ_Dimmer_setzen IODev EIB
 
attr L_WZ_Dimmer_setzen room hidden
 
attr L_WZ_Dimmer_setzen room hidden
#attr L_WZ_Dimmer_setzen webCmd value
+
#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
 
#attr L_WZ_Dimmer_setzen model percent
 +
</pre>
 +
 +
<pre>
 +
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
 +
</pre>
 +
 +
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")}
 +
 +
<pre>
 +
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
 +
</pre>
 +
 +
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*%$/

Version vom 10. August 2022, 16:15 Uhr

KNX-Dimmer mit Slider

Im Wohnzimmer ist die Deckenleuchte ueber einen KNX-Dimmer angeschlossen. Ein geteilter Taster dient an der Wand zum dimmen/schalten. 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*%$/