Ich habe das "Streamradio" definiert und dafür auch den Lautstärke Slider "dummy"
# Dummy für Volume- Slider
define du_Volume dummy
attr du_Volume alias Volume
attr du_Volume group Volume
attr du_Volume room Radio
attr du_Volume setList state:slider,0,1,100
attr du_Volume webCmd state
# Notify für Volume- Slider
define no_Volume notify du_Volume {\
my $vol = Value("du_Volume");;\
fhem "set SRadio VOLUME $vol";;\
}
Ich würde jetzt gerne den Slider über einen langen Tastendruck auf einem HM-PB-2 steuern. Wie könnte ich das am geschicktesten machen?
Ich finde keinen Ansatz und fürchte fast, dass das so einfach garnicht möglich ist.
Ich hätte dann ja auch gerne ständig eine Rückmeldung, also das ich höre, dass die Lautstärke weniger wird.
Jemand ne Idee?
Ich weiß nicht genau was aus dem HM-PB-2 für Meldungen kommen. Ich hab den PB61, da würde es etwa so funktionieren:
define mydi DOIF ([PB61_Btn_01] =~"Long") (set du_Volume ([du_Volume] +1)) DOELESIF ([PB61_Btn_02] =~"Long") (set du_Volume ([du_Volume] -1))
attr mydi do always
Jeder lange Tastendruck eröht oder mindert du_Volume um 1.
Das DOIF ist sehr vielfältig. Wegen der Syntax beim Rechnen, mal hier schauen http://fhem.de/commandref_DE.html#DOIF (http://fhem.de/commandref_DE.html#DOIF)
Danke für deinen Hinweis!
So 100% bin ich mit dem Ergebnis nicht zufrieden, aber es funktioniert zumindest und damit kann ich leben.
Pro Tastendruck kurz wird nun die Lautstärke um 5 Punkte "geregelt". Ein langer Tastendruck schaltet das Radio ein.
([Wandtaster_1_Btn1] =~"Short" and (Value("du_Volume") >95)) (set du_Volume 100) DOELSEIF
([Wandtaster_1_Btn2] =~"Short" and (Value("du_Volume") <5)) (set du_Volume 0) DOELSEIF
([Wandtaster_1_Btn1] =~"Short") (set du_Volume {(Value("du_Volume")+5)}) DOELSEIF
([Wandtaster_1_Btn2] =~"Short") (set du_Volume {(Value("du_Volume")-5)})
Ursprünglich hatte ich mir bei einem langen Tastendruck eine Lautstärkeänderung in "Echtzeit" vorgestellt. Also das während dem Tastendruck "du_Volume" langsam runterregelt. Gleichzeitig müsste dann auch noch das zugehörige notify die Lautstärke über das System anpassen.
Eigentlich müsste es mit einem Langen Tastendruck auch gehen, denn der Status des Tasters wird laufend geändert und ein Zähler im Statusstring hoch gezählt. Da sollte jedes Mal das DOIF triggern und du_Volume ändern. Das notify sollte dann bei jeder Änderung von du_Volume getriggert und die Lautstärke geändert werden. Passiert das nicht? Weil Du schreibst
ZitatGleichzeitig müsste dann auch noch das zugehörige notify die Lautstärke über das System anpassen.
Jaaa du hast recht! Es funktioniert... Super!
Irgendwas hatte ich wohl vorhin übersehen...
Danke!