[Neues Modul] StreamRadio

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

Vorheriges Thema - Nächstes Thema

simonTS

#270
Hallo zusammen,

(... siehe unten, warum auch immer, es geht jetzt. Vllt. hilfts aber trotzdem, sonst lösche ich auch gerne meinen Beitrag)

ich bin am verzweifeln ;-( Keine Chance das Modul ans laufen zu bekommen. Habe alle 74_StreamRadio.pl probiert (wiki und hier aus Seite 17). Mittlerweile nutze ich die mit Textanzeige. Der Stream wird auch ausgelesen und ich bekomme den Text angezeigt.
Rechte habe ich alle gesetzt und überprüft.
Aufruf des Streams aus der Console geht ohne murren.
Meine volume_control liegt auf numid=1 und ist auch als attr eingefügt.

ABER: ich bekomme auf Teufel komm raus keinen Ton. Per slider, per set volume, mit/ohne %, sudo amixer cset numid=2 -- 1 (2=playback switch) ... Geht einfach nicht.

Ich höre aber ein knaxen, wenn ich an der Lautstärke spiele. Und der Text wird ja auch angezeigt...

Mein Log (verbose 5) schreibt
2015.12.31 15:42:46 4: FHEMWEB:192.168.1.100:43572 POST /fhem?XHR=1&cmd.SRadio=set%20SRadio%20PLAY%20http://streaming01.sr-online.de/unserding_2.m3u&fw_id=967; BUFLEN:0
2015.12.31 15:42:46 5: Cmd: >set SRadio PLAY http://streaming01.sr-online.de/unserding_2.m3u<
2015.12.31 15:42:46 4: StreamURL http://streaming01.sr-online.de/unserding_2.m3u does not seem to be a valid URL so we check if it is a station name from the playlist...
2015.12.31 15:42:46 4: Hmm, no station with the name found so we just try to play it.
2015.12.31 15:42:46 5: CheckTerminate...HASH(0x207e9f8)
2015.12.31 15:42:46 5: MPlayer PID is 2922
mplayer: Kein Prozess gefunden
2015.12.31 15:42:46 5: Triggering SRadio (6 changes)
2015.12.31 15:42:46 5: Notify loop for SRadio StreamURL:
2015.12.31 15:42:46 5: Triggering SRadio (1 changes)
2015.12.31 15:42:46 5: Notify loop for SRadio StreamURL: http://streaming01.sr-online.de/unserding_2.m3u
2015.12.31 15:42:46 4: BlockingCall (StreamRadio_Play) created child (2937), uses telnetForBlockingFn to connect back
2015.12.31 15:42:46 5: Triggering SRadio (1 changes)
2015.12.31 15:42:46 5: Notify loop for SRadio playing
2015.12.31 15:42:46 5: MPlayer start. PID is 2937
2015.12.31 15:42:46 4: name: /fhem?XHR=1&cmd.SRadio=set%20SRadio%20PLAY%20http://streaming01.sr-online.de/unserding_2.m3u&fw_id=967 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.12.31 15:42:46 4: Connection accepted from telnet:127.0.0.1:42085
2015.12.31 15:42:47 5: Cmd: >setreading SRadio StationName UnserDing Livestream<
2015.12.31 15:42:47 5: Triggering SRadio (1 changes)
2015.12.31 15:42:47 5: Notify loop for SRadio StationName: UnserDing Livestream
2015.12.31 15:42:47 5: Key= StreamTitle

2015.12.31 15:42:47 5: Value= Ihr hört "Foo Fighters" mit "Saint Cecilia".

2015.12.31 15:42:47 1: PERL WARNING: Odd number of elements in hash assignment at ./FHEM/74_StreamRadio.pm line 225, <$proc> line 16.
2015.12.31 15:42:47 5: Cmd: >setreading SRadio StreamTitle Ihr hört "Foo Fighters" mit "Saint Cecilia".<
2015.12.31 15:42:47 5: Triggering SRadio (1 changes)
2015.12.31 15:42:47 5: Notify loop for SRadio StreamTitle: Ihr hört "Foo Fighters" mit "Saint Cecilia".
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
[AO_ALSA] alsa-lib: confmisc.c:768:(parse_card) cannot find card '0'
[AO_ALSA] alsa-lib: conf.c:4241:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
[AO_ALSA] alsa-lib: confmisc.c:392:(snd_func_concat) error evaluating strings
[AO_ALSA] alsa-lib: conf.c:4241:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
[AO_ALSA] alsa-lib: confmisc.c:1251:(snd_func_refer) error evaluating name
[AO_ALSA] alsa-lib: conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
[AO_ALSA] alsa-lib: conf.c:4720:(snd_config_expand) Evaluate error: No such file or directory
[AO_ALSA] alsa-lib: pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default
[AO_ALSA] Playback open error: No such file or directory
Failed to initialize audio driver 'alsa'
[AO SDL] Unsupported audio format: 0x1d.
[AO SDL] Unable to open audio: No available audio device
Failed to initialize audio driver 'sdl:aalib'
Could not open/initialize audio device -> no sound.
2015.12.31 15:42:49 4: Connection closed for FHEMWEB:192.168.1.100:43570: EOF
2015.12.31 15:42:49 4: FHEMWEB:192.168.1.100:43572 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2015-12.log; BUFLEN:0
2015.12.31 15:42:51 4: FHEMWEB:192.168.1.100:43571 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2015-12.log; BUFLEN:0


Was ist mir aufgefallen:
1. PID des Mplayer gibt es nicht.
2a. die IP endet auf .100 - verstehe ich gar nicht. mein fhem läuft aktuell unter .103, aber die .100 kann ich trotzdem anpingen.
2b. Hängt es evtl. mit der IP und EOF zusammen?
3. amixer: Mixer attach default error: No such file or directory ??

Hat jmd ne Idee? Ich bin im try and error Modus unterwegs, bekomme aber nur errrrrooooorrr ;-) Ein kleiner Schubs scheint noch zu fehlen.

cfg:

# Stream Radio:
define SRadio StreamRadio /opt/fhem/WebStreams.txt
attr SRadio telnetport 7072
#http://forum.fhem.de/index.php/topic,18531.msg129936.html#msg129936
#evtl. wieder auskommentieren
#aber es steht auch im log verbose 5: 2015.12.31 00:33:28 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...
#und: Home directory /root not ours.
#nach einem sudo amixer controls ist volume numid 1, nicht 2(wars vorher)
attr SRadio volume_command amixer cset numid=1 -- %s%%
attr SRadio room Radio
attr SRadio group Radio



EDIT:
uups... hab gerade gesehen, dass mit der 74_Streamradio.pl mit Text ein neuer Fehler bzgl. Audio-Device kommt. Das hatte ich vorher (.pl ohne Text) nicht. Komisch, mein TTS geht ja auch. -> Weiter probieren...

EDIT2:
Mmh... rpi neugestartet. Keine Ahnung warum, aber jetzt geht es:
74_StreamRAdio.pl mit Text,
attr numid mit 1 = playback Volume.
FHEM auf wheezy@RPI-->
KNX: MDT STV-0320.01|SCN-IP000.01|AMI-1216.01|JAL-0810.01|AKD-0401.01|AKH-0800.01|BE-GTT4W.01|SCN-P360D1.01|SCN-G360K3.01|ABB-MRS/W Magnet-Reedkontakt|Zisterne:SRF06|LED:XCSOURCE WIFI Controller|

slecram

Nutzt jetzt einer das Modul mit Rapsian Jessie??

Falls ja, geht bei euch alles problemlos?

Viele Grüße

vidi

Hi Zusammen,

war leider die letzen tage etwas inaktiv, sry.

Also ich nutze fhem auf einem Debian wheezy (nicht rpi).

Der Inhalt meiner fhem.cfg bzgl. SRadio sieht so aus:

# Stream Radio
define SRadio StreamRadio /opt/fhem/WebStreams.txt
attr SRadio telnetport 7072
attr SRadio room Radio
attr SRadio group Radio


Die Datei /opt/fhem/WebStreams.txt:


1Live|http://www.wdr.de/wdrlive/media/mp3/1live.m3u
SWR3|http://mp3-live.swr3.de/swr3_m.m3u
YouFM|http://metafiles.gl-systemhaus.de/hr/youfm_2.m3u


Ich benutze die defaults für volume_set_command und volume_get_command, deshalb ist davon nicht in der fhem.cfg

Die defaulst sind:


        volume_set_command="amixer set Master %s%%";
        volume_get_command="amixer get Master | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'";




Prüft bitte mal ob ihr eure amixer aufrufe in der console mit dem user mit dem euer fhem läuft ausführen könnt.

In meinem Fall ist es:

sudo -u fhem bash -c "amixer get Master | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'"


Der Aufruf sollte eine Zahl zurück geben. Das ist wichtig, da diese Zahl direkt an das Volume-Widget gebunden ist. Sollte nichts oder Keine Zahl zurück gegeben werden, müsst ihr den Aufruf an euer System anpassen.

Hier helfe ich euch gern, falls ihr mit der Syntax Probleme habt. Ihr müsst mir nur euren amixer output für das device schicken.



Grüße
Ben

Carsten K.

Hi Spezies,
ich habe das neue Modul mal eingespielt, weil ich nach StreamRadio für Tablet-UI gesucht habe.
Es funzt auch schon.
Super Arbeit ;)
Was bei mir nicht geht, ist die Auswahl von Streams/Sendern.
Das Reading "Streams" ist bei mir nicht vorhanden - vielleicht habe ich auch die Funktionalität falsch verstanden.

Ich nehme an, dass "Streams" eine Liste von Sendern enthält.

Liege ich da falsch?
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

kumue

Ein Reading Streams gibt es nicht, aber das Internal STREAMS.
Da stehen, getrennt durch Doppelpunkt, die Sender.
Leerzeichen im Sendernamen können ein Problem sein....

slecram

Zitat von: vidi am 06 Januar 2016, 00:32:45
Prüft bitte mal ob ihr eure amixer aufrufe in der console mit dem user mit dem euer fhem läuft ausführen könnt.

In meinem Fall ist es:

sudo -u fhem bash -c "amixer get Master | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'"


Der Aufruf sollte eine Zahl zurück geben. Das ist wichtig, da diese Zahl direkt an das Volume-Widget gebunden ist. Sollte nichts oder Keine Zahl zurück gegeben werden, müsst ihr den Aufruf an euer System anpassen.

Hier helfe ich euch gern, falls ihr mit der Syntax Probleme habt. Ihr müsst mir nur euren amixer output für das device schicken.

Grüße
Ben

Moin,
bei mir schmeisst er "amixer: Unable to find simple control 'Master',0"

Meine Einstellungen in der FHEM-Config sind:


define WebRadio StreamRadio /opt/fhem/log/WebStreams.txt
attr WebRadio fp_PlanWohnung 10,360,2,,
attr WebRadio icon it_radio
attr WebRadio room Radio,Wohnzimmer
attr WebRadio telnetport 7072
attr WebRadio volume_command amixer cset numid=1 -- %s%%
#attr WebRadio volume_get_command amixer get Master | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'
#attr WebRadio volume_set_command amixer cset numid=1 -- %s%%


Viele Grüße

Carsten K.

#276
Zitat von: kumue am 06 Januar 2016, 09:44:31
Ein Reading Streams gibt es nicht, aber das Internal STREAMS.
Da stehen, getrennt durch Doppelpunkt, die Sender.
Leerzeichen im Sendernamen können ein Problem sein....
mmmmh!
Bei meinen Internals ist kein "STREAMS" aufgelistet:
Internals:
   DEF        /opt/fhem/WebStreams.txt
   NAME       SRadioKueche
   NR         21
   PLAYLIST   /opt/fhem/WebStreams.txt
   STATE      stopped
   STREAM     http://www.surfmusik.de/m3u/rtl-die-besten-hits-aller-zeiten,997.m3u
   TYPE       StreamRadio
   VOLUME     37

Habe ich das Device evtl. falsch angelegt?
[EDIT]


ALLES ZURÜCK ...
ich habe das Radio gerade neu angelegt - funktioniert alles wie beschrieben  :D
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

Carsten K.

Zitat von: slecram am 06 Januar 2016, 10:05:17
Moin,
bei mir schmeisst er "amixer: Unable to find simple control 'Master',0"
...

Ich habe das Radio auf mehreren RPIs am Laufen - der aMixer liefer nicht aus allen Geräten "Master".
Ich bin nicht sicher, ob es allgemein gültig ist, aber so hat's bei mir geklappt:

  • amixer ausgeben
  • Zeile mit Simple mixer control enthält zwischen den Apostrophen den benötigten Wert
  • Test mit amixer get PCM
  • Volume-Get mit PCM anpassen
~:/opt/fhem# amixer
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback -2365 [74%] [-23.65dB] [on]
~:/opt/fhem# amixer get PCM
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum
  Playback channels: Mono
  Limits: Playback -10239 - 400
  Mono: Playback -2365 [74%] [-23.65dB] [on]
~:/opt/fhem# amixer get PCM | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'
74
~:/opt/fhem#

NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

slecram

#278
amixer get PCM | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'
Funktioniert und liefert bei mir den Wert 0.

pi@pi-fhem:~ $ amixer get PCM | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'
0
pi@pi-fhem:~ $


...

sudo -u fhem bash -c "amixer get PCM | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'"
liefert ebenfalls den Wert 0
pi@pi-fhem:~ $ sudo -u fhem bash -c "amixer get PCM | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'"
0
pi@pi-fhem:~ $


Muss der Eintrag in der fhem.cfg jetzt

define WebRadio StreamRadio /opt/fhem/log/WebStreams.txt
attr WebRadio fp_PlanWohnung 10,360,2,,
attr WebRadio icon it_radio
attr WebRadio room Radio,Wohnzimmer
attr WebRadio telnetport 7072
attr WebRadio volume_get_command amixer get PCM | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'
attr WebRadio volume_set_command amixer set PCM -- %s%%

sein? Beim Speichern der fhem.cfg erscheint folgendes:

WebRadio: unknown attribute volume_get_command. Type 'attr WebRadio ?' for a detailed list. WebRadio: unknown attribute volume_set_command. Type 'attr WebRadio ?' for a detailed list.


Carsten K.

Muss der Eintrag in der fhem.cfg jetzt

...
attr WebRadio volume_get_command amixer get PCM | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'

sein? Beim Speichern der fhem.cfg erscheint folgendes:
...
[/quote]

ich bin zwar auch fast noch "Neuling", aber vom direkten Schreiben in die fhem.cfg wird an vielen Stellen dringend abgeraten.
Die Datei-Fassung ist nicht immer synchron mit der Web-Oberfläche.
Falls das SChreiben bei Dir nicht eingeschaltet ist:
attr WEB editConfig 1

Danach kannst Du die Einstellungen direkt über den Modul-Dialog des Radio-Devices vornehmen.
Sollte dann immer noch die Fehlermeldung kommen, solltest Du prüfen, ob Du die aktualisierte Verison von 74_StreamRadio.pm hast.
Falls die Datei aktuell ist (mit der neuen Funktionalität von vidi), fehlte evtl. noch ein reload 74_StreamRadio.pm
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

vidi

@obiwangi zu deinem Problem:

ich vermute du hast die WebStreams.txt angelegt und danach nicht FHEM neugestartet oder das Modul neu geladen.. Richtig?
Die Datei wird nämlich nur einmal am Anfang geladen und dann baue ich die Liste der Streams zusammen.

Gruß
Ben

Carsten K.

Zitat von: vidi am 06 Januar 2016, 17:16:32
@obiwangi zu deinem Problem:

ich vermute du hast die WebStreams.txt angelegt und danach nicht FHEM neugestartet oder das Modul neu geladen.. Richtig?
Die Datei wird nämlich nur einmal am Anfang geladen und dann baue ich die Liste der Streams zusammen.

Lag wohl in der Kategorie "Anfängerfehler" ;)
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

Carsten K.

Ich habe mal 2 Punkte eingearbeitet:
# Version = 0.7 (obiwangi)
# - added command REFRESHSTREAMS. Populates STREAMS with current entrieis of
#   PLAYLIST (/opt/fhem/WebStreams.txt)
# - (hot-)fixed error when sender name contains blanks
#   Replace blanks with underscore; only for STREAMS.
#   PLAYLIST now can contain sendernames with blank characters.


Feedback nehme ich gerne an :)
Besser geht immer  8)
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

vidi

@slecram

Hast du evtl. die Originalversion der 74_StreamRadio.pm verwenden und nicht die Modifizierte?

slecram

#284
Zitat von: vidi am 06 Januar 2016, 18:56:28
@slecram

Hast du evtl. die Originalversion der 74_StreamRadio.pm verwenden und nicht die Modifizierte?

Ja, habe auch schon getauscht.
ich habe aber immer noch Probleme, dass mein FHEM abstürzt :(
Schaffe es derzeit nicht einmal ein Ton aus dem Pi zu locken, selbst wenn ich das hier mache:

sudo mplayer -ao alsa http://fritz.de/livemp3

Er zeigt mir an, dass der Steam läuft und ich kann die Laustärke über / und * ändern, aber kein Ton. Bin grad auf Fehlersuche. Wenn das läuft, gehts in FHEM weiter^^

Danke schon einmal für eure Hilfe.

Habe das Gefühl, dass es was mit dem Jessie zu tun hat :/


Name   : Fritz vom rbb live h▒ren - www.fritz.de (c) Rundfunk Berlin-Brandenburg
Website: http://www.fritz.de
Public : no
Bitrate: 128kbit/s
Cache size set to 320 KiB
Cache fill:  0.00% (0 bytes)
ICY Info: StreamTitle='Fritz - Und das hört man';

Detected file format: Audio only
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]
AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400)
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
[AO_ALSA] Unable to find simple control 'Master',0.
Video: no video
Starting playback...


Das "[AO_ALSA] Unable to find simple control 'Master',0." macht mich stutzig...