[Neues Modul] StreamRadio

Begonnen von gemx, 08 Januar 2014, 19:31:54

Vorheriges Thema - Nächstes Thema

Rince

Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

heinzlander

#46
Hallo Rice,

auf das Log hätte ich schon früher kommen können... >:( .. Normal habe ich verbose 3 eingestellt. Dann gibt es kein Logeintrag.

Bei verbose 5 steht dann folgendes..
....
2014.01.25 21:28:13 4: HTTP FHEMWEB:192.168.178.36:56804 GET /fhem&room=Radio&cmd=set+streamradio+VOLUME+98
2014.01.25 21:28:13 5: Cmd: >set streamradio VOLUME 98<
2014.01.25 21:28:13 5: Request volume to set  %
2014.01.25 21:28:13 5: Real volumne to set is 0 %
2014.01.25 21:28:13 5: Using volume command =amixer cset numid=1 -- 0%
2014.01.25 21:28:13 5: Triggering streamradio (1 changes)
2014.01.25 21:28:13 5: Notify loop for streamradio VOLUME 98
2014.01.25 21:28:13 4: HTTP FHEMWEB:192.168.178.36:56794 GET /fhem?room=Radio
2014.01.25 21:28:13 4: /fhem?room=Radio / RL:1570 / text/html; charset=UTF-8 / Content-Encoding: gzip
....

Grüße

Heinzlander

Update...

Ich habe noch eine neue Info.

Wenn ich über putty den Befehl "sudo amixer -c 0 set PCM 300+" eingebe, erhöht sich die Lautstärke jedesmal... Über putty, also  direkt auf dem Raspi, geht es und man kann die Lautstärke verändern.

Grüsse

Heinzlander

Rince

Was passiert denn, wenn du diesen Befehl in ein Shell Skript steckst und dieses von FHEM aus ausführst?

Vielleicht hat der fhem User keine amixer Rechte? Mit sudo wirst zum SuperUser, das würde ich weglassen im Testskript. Der FHEM User muss es dürfen.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Ich hab jetzt Kopfhörer an meinem raspberry angeschlossen und ich kann die Musik jetzt ganz leise hören also funktioniert es doch :-)
Leider viel zu Leise das Log sagt immer :


2014.01.27 01:06:57 4: HTTP FHEMWEB:192.168.1.8:50471 GET /fhem&room=Unsorted&cmd=set+streamradio+VOLUME+100
2014.01.27 01:06:57 5: Cmd: >set streamradio VOLUME 100<
2014.01.27 01:06:57 5: Request volume to set  %
2014.01.27 01:06:57 5: Real volumne to set is 0 %
2014.01.27 01:06:57 5: Using volume command =amixer cset numid=1 -- 0%
2014.01.27 01:06:57 5: Triggering streamradio (1 changes)
2014.01.27 01:06:57 5: Notify loop for streamradio VOLUME 100
2014.01.27 01:06:57 4: eventTypes: StreamRadio streamradio VOLUME 100 -> VOLUME .*
2014.01.27 01:06:58 4: HTTP FHEMWEB:192.168.1.8:50470 GET /fhem?room=Unsorted
2014.01.27 01:06:58 4: /fhem?room=Unsorted / RL:1779 / text/html; charset=UTF-8 / Content-Encoding: gzip


Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

heinzlander

Hallo Markus,

ich glaube, wir haben das gleiche Problem...

Servus Rince,

danke für Deinen Vorschag doch leider bin ich noch ein blutiger Anfänger mit dem raspi.

Kannst Du mir Bitte helfen. Wie mache ich das mit dem Shell Script?

Grüße Heinzlander

Rince

Leider nicht im Moment. Ich surfe grade mit 64KBit. Da ist alles irgendwie eine Qual. Im Anfängerbereich gabs kürzlich nen Thread wie man ein Shell Skript direkt ausführt. Abgesehen davon bin ich selber neu in Linux, kann also auch nicht sagen, ob es nicht einen schlaueren Weg gibt, das raus zu finden. Mir fällt nur kein besserer ein.
Vielleicht kann wer der sich mit Linux auskennt mal was dazu schreiben?

Ist es nötig auch die Rechte für amixer an zu passen?

Und wenn ja, wie geht das. Ansonsten würde ich sagen, genau wie für den mplayer auch. Das habt ihr ja auch geschafft :-)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Spezialtrick

#51
Bei mir klappt leider nichts mehr. Habe meinen Pi heute ganz frisch aufgesetzt und das Modul incl. der Rechte installiert. Leider werden mir nicht die Daten bzgl. des aktuellen Songs angezeigt. Ton habe ich auch nicht. Das hier gibt mein Log her:

2014.01.27 17:52:03 4: Connection accepted from FHEMWEB:192.168.178.38:54241
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54240 GET /fhem/pgm2/fhemweb.js
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54239 GET /fhem/pgm2/fhemweb_colorpicker.js
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54237 GET /fhem/pgm2/svg.js
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54241 GET /fhem/pgm2/fhemweb_noArg.js
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54238 GET /fhem/pgm2/fhemweb_slider.js
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54240 GET /fhem/pgm2/fhemweb_svg.js
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54239 GET /fhem/pgm2/fhemweb_textField.js
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54241 GET /fhem/pgm2/dashboard_style.css
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54237 GET /fhem/pgm2/fhemweb_time.js
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54238 GET /fhem/images/default/fhemicon.png
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54237 GET /fhem/images/default/icoEverything.png
2014.01.27 17:52:03 4: HTTP FHEMWEB:192.168.178.38:54238 GET /fhem/FileLog_logWrapper?XHR=1&inform=type=status;filter=×tamp=1390841523559
2014.01.27 17:52:13 4: HTTP FHEMWEB:192.168.178.38:54237 GET /fhem?XHR=1&cmd.streamradio=set%20streamradio%20PLAY%20http://www.wdr.de/wdrlive/media/einslive.m3u
2014.01.27 17:52:13 5: Cmd: >set streamradio PLAY http://www.wdr.de/wdrlive/media/einslive.m3u<
2014.01.27 17:52:13 4: StreamURL http://www.wdr.de/wdrlive/media/einslive.m3u does not seem to be a valid URL so we check if it is a station name from the playlist...
2014.01.27 17:52:13 4: Hmm, no station with the name found so we just try to play it.
2014.01.27 17:52:13 5: CheckTerminate...
2014.01.27 17:52:13 5: Triggering streamradio (1 changes)
2014.01.27 17:52:13 5: Notify loop for streamradio StreamURL: http://www.wdr.de/wdrlive/media/einslive.m3u
2014.01.27 17:52:13 4: eventTypes: StreamRadio streamradio StreamURL: http://www.wdr.de/wdrlive/media/einslive.m3u -> StreamURL: http://www.wdr.de/wdrlive/media/einslive.m3u
2014.01.27 17:52:13 5: Triggering streamradio (1 changes)
2014.01.27 17:52:13 5: Notify loop for streamradio playing
2014.01.27 17:52:13 4: eventTypes: StreamRadio streamradio playing -> playing
2014.01.27 17:52:13 5: MPlayer start. PID is 2606
2014.01.27 17:52:13 4: /fhem?XHR=1&cmd.streamradio=set%20streamradio%20PLAY%20http://www.wdr.de/wdrlive/media/einslive.m3u / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2014.01.27 17:52:15 4: Connection closed for FHEMWEB:192.168.178.38:54238
2014.01.27 17:52:15 4: HTTP FHEMWEB:192.168.178.38:54237 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2014-01.log


EDIT: Nun funktioniert es ganz plötzlich, ohne dass ich etwas geändert habe. Das Radio läuft sehr leise über die Klinge. Ich brächte allerdings die HDMI Ausgabe.  Reicht es amixer cset numid=1 -- %s%% in amixer cset numid=2 -- %s%% zu ändern?
FHEM - Debmatic - Zigbee2MQTT - Homekit

heinzlander

Nochmals ich...

habe folgendes festgestellt. Egal was ich für einen Wert über set VOLUME eingebe, die Lautstärke im raspi wird immer auf 0 gesetz. Danach kann ich über den Befehl "amixer -c 0 set PCM 300+" (putty )die Lautstärke erhöhen. Als würde der set Volume Befehl nicht sauber durchkommen....  :'(

Vielleicht hilft diese Erfahrung.... Und so wie ich es gelesen habe, haben viele das gleiche Problem...

Vielen Dank

Heinzlander

Markus

@ heinzlander Ich habe genau das gleich Problem wie du, Leider hab ich auch keinen Lösungsvorschlag :-(

Gruss Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Rince

Probiert doch mal:
sudo gpasswd -a FHEM audio
oder
sudo gpasswd -a fhem audio

Dann evtl. den Pi neu starten.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

heinzlander

#55
Hallo Rince,

das mit Deinem Vorschlag hat leider nichts gebracht.... Vielen Dank für Deine Mühe.

Alter Schwede, wir werden das  8) Teil doch noch zum laufen bringen...

Noch ein Versuch, wenn ich in der 74_StreamRadio Datei die Variable my $vol_in direkt mit einer Zahl beschreibe........ dannnnnnn geht es .....  :) :) :) :) :) :) :) Es verändert sich die Lautstärke...
Beispiel "my $vol_in=88"

anstatt

elsif ($cmdname eq "VOLUME") {
      my $vol_in=$a[2];
      Log 3,"Request volume to set $vol_in %";

Aufgefallen ist es mir im Log. Dort wurde kein Wert an den Raspi gesendet...

....
2014.01.29 05:30:42 3: Request volume to set  %
2014.01.29 05:30:52 3: Request volume to set  %
2014.01.29 05:54:56 3: Request volume to set  %
....

Nach dem direkten zuordnen mit einem Wert sieht das Log so aus und es geht.... ;D ;D ;D ;D ;D ;D

....
06:04:43 3: Request volume to set 28 %
2014.01.29 06:04:43 3: Real volumne to set is 72.9622513149703 %
2014.01.29 06:04:43 3: Using volume command =amixer cset numid=1 -- 72.9622513149703%
.....

Leider muss ich jetzt aussteigen, da ich nicht weis wie die Variable $a[2] beschrieben wird. Da hören meine Programmierkenntnisse einfach auf.  :'(

Aber vieleicht ist das ein Ansatz.... wiederum...warum funktioniert diese Funktion bei anderen Fhemler?

Grüße

Heinzlander

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


Update 03.02.14

So wie es ausschaut, kommt die Variable für die Lautstärke nicht durch.... es wird dann einfach eine 0 als Lautstärke an den Raspi gesendet, egal was man mit set volume vorgibt   :'( :'( :'( :'(

Ich habe noch inzwischen das Thema Sprachausgabe getestet... und siehe da bei dem Modul Text2Speech kann ich die Lautstärke mit "SET MyTTS volume XX" belibig verändern und es funktioniert....  8)

Warum geht es dann bei dem Webradio nicht?? Ich will mich doch nicht wegen dem eigentilich perfekten Modul noch vor den Zug werfen..  :) :)

Grüße

Heinzlander


Markus

Tolles Modul Danke!
Ich hatte aber einige Probleme mit diesem Modul. Jetzt Funktioniert es aber :-D
Ein paar Tipps für alle die wie ich am verzweifeln sind ;-)
Der Raspberry hat nur einen Line aut Ausgang man braucht unbedingt einen Verstärker oder Aktivboxen auch Kopfhörer gehen nicht.
Es dauert mehrere Sekunden bis die Musik wirklich zu spielen beginnt, also nicht ungeduldig sein.
Und die Lautstärke lässt sich immer noch nicht über das Modul steuern jeder versuch stehlt 0% am raspi ein :-(
Lässt sich aber ganz leicht über putty ändern Danke Heinzlander :-)
amixer -c 0 set PCM 300+

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

fiedel

#57
Hallo ihr Radiohörer,

hab das mit der Lautstärke mal schnell gefixt. Da waren noch kleine Fehlerchen im Modul. Das hatte mit den Rechten nix zu tun.

Für das Attribut mit der Lautstärke muss es lauten: attr streamradio volume_command amixer cset numid=2 -- %s%%
Dieses Attr. muss normalerweise aber nicht angegeben werden. Der Befehl steht auch im Modul und ist jetzt gefixt. Man braucht es nur, wenn man einen anderen Mixer verwendet, als den amixer.
Den Logarithmus habe ich auch wieder deaktiviert: Wenn die Lautstärke mit Werten von 0% bis 100% angegeben wird, braucht man das nicht, meine ich. Im Webinterface kann die Lautstärke nur mit den Ziffern 0-100, also ohne "%" eingegeben werden. Das sollte auch für den fhem- Befehl gelten.
Süß wäre ja, wenn jemand da noch einen Schieberegler (Slider)  dazubauen würde. Sowas haben wir hier ja auch schon.

An den Modulautor: Ich habe die Änderungen im Modul kommentiert.

Testet es bitte mal und schreibt, ob es tut!  ;)

Falls auch mit dieser Version kein Ton kommt, kann es daran liegen, dass die ungefixte Version den Ton zuvor "abgeschaltet" hat: Der zuvor verwendete Parameter für Volume war irrtümlich der Par. für Wiedergabe ein/aus. Ihr müsst dann einmalig in der Konsole folgendes eingeben, um die Wiedergabe des amixer einzuschalten:

amixer cset numid=1 -- 1

Gruß

Frank

Edit:

Die Sache mit der Lautstäkeregelung ist noch etwas verwirrender als ich dachte. Verschiedene amixer- Versionen scheinen völlig anders belegte Steuerbefehle zu haben:

Gibt man auf der Konsole ein: amixer controls, gibt meine aktuelle Version aus:

numid=1,iface=MIXER,name='PCM Playback Switch'
numid=2,iface=MIXER,name='PCM Playback Volume'
numid=3,iface=MIXER,name='Mic Capture Switch'
numid=4,iface=MIXER,name='Mic Capture Volume'
numid=5,iface=MIXER,name='Auto Gain Control'


In diesem Blog sieht das aber z.B. so aus:


$ amixer controls
numid=4,iface=MIXER,name='Master Playback Switch'
numid=3,iface=MIXER,name='Master Playback Volume'
numid=2,iface=MIXER,name='Capture Switch'
numid=1,iface=MIXER,name='Capture Volume'


Bei Soundproblemen sollte also jeder erst einmal herausfinden, wie genau die Mixerkommandos lauten und das dann ggf. mit dem Attribut "volume_command" entsprechend anpassen.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Markus

Das wars :-D Danke

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

fiedel

#59
Sehr schön! Bei mir läuft es auch gut. Auch beim set- Befehl kann man mit Zahlen ohne "%" arbeiten.

Ein Problemchen habe ich noch: Bei jedem Ausschalten des Radios gibt es eine Logmeldung:

2014.02.09 08:59:53 1: Timeout for StreamRadio_Play reached, terminated process 9680

Das kommt nicht aus dem Modul selbst, sondern aus FHEM (BlockingCall o.ä.). Da fehlen mir die Zusammenhänge. Vielleicht kann der Modulautor da noch mal drübergucken.

Und noch ne Kleinigkeit: Bei der Anzeige der Senderinfos werden Umlaute falsch dargestellt. Kann man da noch was machen??? :)

Vielen Dank und viele Grüße!

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423