WifiLight mit HM-PB-2-WM55 dimmen

Begonnen von spltunes, 31 März 2014, 20:03:42

Vorheriges Thema - Nächstes Thema

spltunes

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

spltunes

#1
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

herrmannj

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


spltunes

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