Hallo Forum,
ich brauche Eure Hilfe. Ich habe nach https://wiki.fhem.de/wiki/Modul_StreamRadio_Einrichtungshilfe (https://wiki.fhem.de/wiki/Modul_StreamRadio_Einrichtungshilfe) ein Webradio eingerichtet. Die Musik läuft! Auch kann ich über "set WebRadio VOLUME 70" die Musik leise und über "set WebRadio VOLUME 100" die Musik wieder laut regeln. (Werte dazwischen funktionieren auch.) Wähle ich einen Wert kleiner als 70 höre ich trotz voll aufgedrehter Box nichts mehr. (zur Info: Die Box hängt am HeadphoneJack des Raspi)
In der oben verlinkten Anleitung gibt's im weiteren Verlauf ist von einer Zusatzfunktion Volume- Slider und Bedienung per FS20- Wandtaster die Rede. da ich keinen entsprechenden Wandtaster besitze, wollte ich den Vol-Slider allein umsetzen um komfortabel über FHEMWEB die Lautstärke anpassen zu können.
Der Slider ist da und lässt sich schieben. Allerdings wirkt sich das in keiner Form auf die Lautstärke des Radios aus.
In /opt/fhem/log tauchen die folgenden Zeilen auf:
2018.11.12 22:45:29 4: dummy set Dum_Volume_D 62
2018.11.12 22:45:31 4: dummy set Dum_Volume_D 82
2018.11.12 22:46:02 4: dummy set Dum_Volume_D 86
Im EventMonitor sieht es genauso aus.
Den Ausschnitt der fhem.cfg hänge ich Euch zur Kenntnis mal hier an:
define WebRadio StreamRadio /opt/fhem/webradio.txt
attr WebRadio room Radio
attr WebRadio telnetport 7072
attr WebRadio volume_command amixer cset numid=1 -- %s%%
define Dum_Volume_D dummy
attr Dum_Volume_D alias Volume
attr Dum_Volume_D group Volume
attr Dum_Volume_D room Radio
attr Dum_Volume_D setList state:slider,0,1,100
attr Dum_Volume_D verbose 5
attr Dum_Volume_D webCmd state
define Func_Volume_N notify {my $vol = Value("Dum_Volume_D");;fhem "set WebRadio VOLUME $vol";;}
attr Func_Volume_N room Radio
define Func_Radio_Play_N notify { \
\
my $R_State = (ReadingsVal("Radio", "state", "off"));;;;\
my $Vol_plus = Value("Dum_Volume_D") + 10;;;;\
my $Vol_minus = Value("Dum_Volume_D") - 10;;;;\
\
if ($R_State eq "on") { \
fhem("set WebRadio PLAY Eins Live");;;;\
} \
if ($R_State eq "off") { \
fhem("set WebRadio STOP");;;;\
} \
if ($R_State eq "dimup" and $Vol_plus >= 100) { \
fhem("set Dum_Volume_D 100");;;;\
} \
if ($R_State eq "dimdown" and $Vol_minus <= 0) { \
fhem("set Dum_Volume_D 0");;;;\
} \
if ($R_State eq "dimup" and $Vol_plus <= 100) { \
fhem("set Dum_Volume_D $Vol_plus");;;;\
} \
if ($R_State eq "dimdown" and $Vol_minus >= 0) { \
fhem("set Dum_Volume_D $Vol_minus");;;;\
} \
}
In diesem Zusammenhang die Frage:"Sind die vierfachen Semikoli (;) korrekt? Ich weiß, dass sie gedoppelt geschrieben werden müssen, wenn ich PERL.Code in FHEM verwende, aber 4fach?!?
Ich freue mich über den einen oder anderen Denkanstoß in die richtige Richtung
FloriO
Zitat von: FloriO am 12 November 2018, 23:21:05
In diesem Zusammenhang die Frage:"Sind die vierfachen Semikoli (;) korrekt? Ich weiß, dass sie gedoppelt geschrieben werden müssen, wenn ich PERL.Code in FHEM verwende, aber 4fach?!?
Das stört nicht.
Aber deine notifies haben kein Trigger ("<Suchmuster>")... Bitte CommandRef schauen.
https://fhem.de/commandref_DE.html#notify
Wahrscheinlich willst Du etwas in der Art:
define Func_Volume_N notify Dum_Volume_D {my $vol = Value("Dum_Volume_D");;fhem "set WebRadio VOLUME $vol";;}
(es reicht dann warhscheinlich ein
define Func_Volume_N notify Dum_Volume_D set WebRadio VOLUME $EVENT
)
Guten Morgen amenomade,
das sieht total banal und plausibel aus. Ich hab die Änderungen gerade eingebaut und im EventMonitor wirft er mir nun auch die Änderung der Lautstärke und nicht nur das Verschieben des Sliders aus. Ich werde das nachher mal zu Hause akustisch überprüfen und melde mich dann hier noch mal zurück.
Vielen Dank für die schnelle Rückmeldung
FloriO
Jetzt funktioniert's!
Vielen Dank für die schnelle Hilfe!