(FHEM) Beispiele: Unterschied zwischen den Versionen
(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> | ||
− | + | Dann passiert aber halt noch nix. | |
− | |||
− | + | Zum Schalten brauchen ich das: | |
− | + | <pre> | |
− | + | >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_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*%$/