FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: spltunes am 31 März 2014, 20:03:42

Titel: WifiLight mit HM-PB-2-WM55 dimmen
Beitrag von: spltunes am 31 März 2014, 20:03:42
Hallo Leute,

ich habe mal eine Frage wir ich folgendes Szenario lösen kann:

Ich habe im Wohnzimmer 2 MiLight RGBW2 Lampen, die mit der Bridge im WLAN angebunden sind. Die Lampen werden über das Modul 32_WifiLight.pm in Fhem eingebunden. Weiterhin habe ich einen HM-PB-2-WM55 2-fach Wandschalter von Homematic.

Mit kurzem Druck auf Button 1 oder 2 habe ich per notify bereits das An & Ausschalten mit folgendem Code realisiert:

define act_on_WZ.Lichtschalter.Btn_01.short notify WZ.Lichtschalter.Btn_01.Short.* set WZ_Stehlampen on
define act_on_WZ.Lichtschalter.Btn_02.short notify WZ.Lichtschalter.Btn_02.Short.* set WZ_Stehlampen off


Nun möchte ich bei langem Druck die Lampen hoch bzw. runterdimmen. Der Helligkeitswert kann über den Parameter "dim" gesetzt werden.
Wie bekomme ich es hin, dass ich den Wert bis 100 addiere (oder bis 0) und solange wie der Taster gedrückt wird aufaddiere (bzw. subtrahiere) und jeweils einen set-Befehl an die Lampen schicke? Oder bin ich total auf dem Holzweg und es gibt eine viel einfachere Lösung?  ;)

Beste Grüße
Daniel
Titel: Antw:WifiLight mit HM-PB-2-WM55 dimmen
Beitrag von: spltunes am 31 März 2014, 22:59:35
Mit ein bisschen Try and Error bin ich mit 2 weiteren notifies noch doch um Ziel gekommen und hätte mir den Thread schenken können.

Hier mal mein Ergebnis:

define act_on_WZ.Lichtschalter.Btn_01.long notify WZ.Lichtschalter.Btn_01.Long.* {\
  my $letzteBright = ReadingsVal("WZ_Stehlampen","BRIGHTNESS","100");;\
  my $neueBright = $letzteBright+5;;\
    if($neueBright <= 100){\
    fhem("set WZ_Stehlampen dim $neueBright 0");;\
    }\
  }\

define act_on_WZ.Lichtschalter.Btn_02.long notify WZ.Lichtschalter.Btn_02.Long.* {\
  my $letzteBright = ReadingsVal("WZ_Stehlampen","BRIGHTNESS","100");;\
  my $neueBright = $letzteBright-5;;\
    if($neueBright > 0){\
    fhem("set WZ_Stehlampen dim $neueBright 0");;\
    }\
  }\


Alternativ kann man sich das Reading longPress im HM-PB-2-WM55 anpassen, dies definiert in welchem Abstand bei einem longPress der Schalter einen Wert zurückgibt. Somit kann man die benötigte Druckzeit auf dem Taster verkürzen oder verlängern.

Vielleicht ist der Code ja dem einen oder anderen hilfreich.

Beste Grüße
Daniel
Titel: Antw:WifiLight mit HM-PB-2-WM55 dimmen
Beitrag von: herrmannj am 07 April 2014, 01:04:58
sorry, ich hatte den threat erst spät gesehen. Im WifiLight Modul sind die Kommandos "dimup" und "dimdown" ergänzt, zukünftig also "out-of-the-box".

vg
Jörg

Titel: Antw:WifiLight mit HM-PB-2-WM55 dimmen
Beitrag von: spltunes am 07 April 2014, 20:01:52
Hallo Jörg,

danke für das Update! Somit konnte ich meine Codezeilen extrem verkürzen.
Das nenne ich Support!  ;)

define act_on_WZ.Lichtschalter.Btn_01.long notify WZ.Lichtschalter.Btn_01.Long.* set WZ_Stehlampen dimup
define act_on_WZ.Lichtschalter.Btn_02.long notify WZ.Lichtschalter.Btn_02.Long.* set WZ_Stehlampen dimdown