[Neues Modul] StreamRadio

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

Vorheriges Thema - Nächstes Thema

NeckCheck

#225
Hey zusammen, soweit klappt es bei mir ganz gut mit dem Radio. Danke an die Macher !

Ich kriege es leider nur nicht mit dem Control hin.

Amixer Control Ausgabe ist diese hier:


numid=3,iface=MIXER,name='PCM Playback Route'
numid=2,iface=MIXER,name='PCM Playback Switch'
numid=1,iface=MIXER,name='PCM Playback Volume'
numid=5,iface=PCM,name='IEC958 Playback Con Mask'
numid=4,iface=PCM,name='IEC958 Playback Default'

Wie bekomme ich es jetzt hin, das in Fhem ich Lautstärke verändern kann ?

Sicherlich ne Kleinigkeit und ich krieg das nicht hin.



arieker

Hallo zusammen!

Ich habe bei meiner FHEM-Installation folgendes Problem:

Ich bekomme das RadioModul nicht zum laufen... Ich habe inzwischen diesen Thread einmal von oben bis unten und wieder zurück durchgeackert, aber keine Lösung gefunden. Ein User hatte mal das selbe Problem - leider wurde das nicht weiterverfolgt,also auch hier keine Hilfe :/

Im Logfile bekomme ich folgenden Fehler angezeigt: "Error messages while initializing FHEM: configfile: Unknown module StreamRadio"

Das ganze läuft auf einem Raspberry Pi 2 mit der FHEM Version 5.6

Ich habe mich an die Anleitung aus dem FHEM Wiki http://www.fhemwiki.de/wiki/Modul_StreamRadio_Einrichtungshilfe#Definition_unter_FHEM gehalten. Der MPlayer als solches läuft auch, Schreibfehler in der "WebStreams.txt" hab ich auch nicht (5 mal gecheckt). Update hab ich in fhem laufen lassen und auch den ganzen Pi mehrfach neu gestartet...

Im Moment bin ich ziemlich Ratlos  :-[

Grüsse,

Alex

fiedel

Hi ihr,

@arieker: Du brauchst die 1 für das Attribut (ist dein Lautstärkeregler) und die 2 musst du ggf. von Hand wieder auf 1 setzten (siehe Wiki).

@NeckCheck: Das könnte ein Rechteproblem sein. Vergleiche mal die Dateirechte und Besitzer des Moduls mit denen einiger anderer "nativer" Module. Dann ggf. genau so einstellen. Ich nehme dazu den Midnight Commander (apt get install mc).


Gruß
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

arieker

Ok, ich hab meinen Fehler entdeckt...  :-\

ich hab das Modul in den Ordner "/opt/fhem/FHEM" einkopiert - aus der Anleitung ging das meiner Meinung nach nicht so genau hervor - oder ich habs einfach nur falsch gelesen... (was durchaus auch sein kann) ... aber jetzt funktioniert's :)

Danke für die Hilfe ^^ da ich mich jetzt intensiver damit beschäftige, könnte es sein, das wir uns öfter lesen in Zukunft  ;D

cocojambo

Hallo,
nachdem das Streamradio seit Wochen einwandfrei auf 2 Raspis lief auch mit Fhem2Fhem, kommen seit gestern beim aktivieren des Radios diese Fehlermeldungen im LOG:
W: [pulseaudio] core-util.c: Failed to open configuration file '//.pulse//daemon.conf': Permission denied
W: [pulseaudio] daemon-conf.c: Failed to open configuration file: Permission denied
Home directory / not ours.
W: [pulseaudio] core-util.c: Failed to open configuration file '//.pulse//daemon.conf': Permission denied
W: [pulseaudio] daemon-conf.c: Failed to open configuration file: Permission denied
2015.06.03 08:40:45 1: Timeout for StreamRadio_Play reached, terminated process 5354
Home directory / not ours.

Weiß jemand was das zu bedeuten hat und wie ich es abstellen kann? falsche Berechtigungen oder Ordner,Treiber,etc?

Gruß aus Köln
nobbi
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

WarLord

Hi

bei mir läuft alles soweit gut.
Ich hab heute im wiki gelen und den code zum unterbrechen bei TTS  gefunden.
eingepflegt und wenn ich nun eine TTS ansage abspiele bekomme ich diese Fehlermeldung:

2015.06.11 16:45:56 3: define Vol_Res_A at +00:00:10 set Dum_Volume_D 99 : Vol_Res_A already defined, delete it first
2015.06.11 16:45:56 3: Func_VolAut_N return value: Vol_Res_A already defined, delete it first
2015.06.11 16:45:57 3: define Vol_Res_A at +00:00:10 set Dum_Volume_D 99 : Vol_Res_A already defined, delete it first
2015.06.11 16:45:57 3: Func_VolAut_N return value: Vol_Res_A already defined, delete it first


Vol_Res_A ist aber nur in diesem code definiert?!

hier der code aus dem wiki

# Bei TTS- Meldung Radio unterbrechen, Lautstärke hochfahren,
# nach Ansage Radio wieder einschalten, Lautstärke auf alten Wert fahren.
define Func_VolAut_N notify MyTTS { \
\
  my $Radio = (Value("SRadio"));;\
  my $Station = ReadingsVal("SRadio", "StreamURL", "");;\
  my $Old_Vol = (OldValue("Dum_Volume_D"));;\
\
  if ($Radio eq "playing") { \
        fhem("set SRadio STOP ;; set Dum_Volume_D 99");;\
        fhem("define Radio_Comeback_A at +00:00:10 set SRadio PLAY $Station;;;; set Dum_Volume_D $Old_Vol");;\
  } \
  if ($Radio eq "stopped") { \
        fhem("set Dum_Volume_D 99");;\
    fhem("define Vol_Res_A at +00:00:10 set Dum_Volume_D $Old_Vol");;\
  } \
}
attr Func_VolAut_N room hidden


von mit wurde nur TTS und der room angepasst.
FHEM auf RaspberryPi B+
HMLAN Adapter + Div HM Komponenten

fiedel

#231
Zitat von: WarLord am 11 Juni 2015, 16:51:55
von mit wurde nur TTS und der room angepasst.

Hi,
entweder hast du versehentlich gesaved, als das at gerade defined war. Dann steht es unten in der CFG, oder im Raum Everything, bzw. Unsorted und muss gelöscht werden. Oder es kommt ein neuer Befehl für TTS rein, bevor das at abgelaufen ist. Da hilft der Event Monitor (im Menü links ganz unten). Ggf. kannst du das Notify so anpassen, dass keine neuen Befehle angenommen werden, wenn das at noch defined ist. Das geht per:   if (!$defs{test_at}) "Wenn test_at nicht existiert..." oder   if ($defs{test_at}) "Wenn test_at existiert..." Viel Spaß und Erfolg!

Gruß

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

Leinad

#232
Hmm, ich habe das gleiche Problem wie WarLord.

Die Automatik funktioniert wenn das Radio vor dem TTS ausgeschaltet war. Der Slider springt dann korrekt um.

Wenn das Radio allerdings eingeschaltet war, springt der Slider auf 99, geht aber nicht mehr zurück.
Der TTS scheint abgearbeitet zu werden, aus dem Lautsprecher kommt aber nichts raus.
Nach einer Zeit springt dann das Radio wieder an, allerdings auf Lautstärke 99.

Im Log steht folgendes:
2015.07.23 22:55:05.019 3: define Vol_Res_A at +00:00:10 set du_Volume 99 : Vol_Res_A already defined, delete it first
2015.07.23 22:55:05.019 3: no_Volume_Automatik return value: Vol_Res_A already defined, delete it first

Das finde ich bisschen komisch, das Radio war ja vorher an, daher sollte doch die Schleife mir dem "Vol_Res_A" garnicht durchlaufen werden? 

Oder? Sorry... bin Anfänger  ???

//Edit
Zweites Problem: Scheinbar wird davon ausgegangen, dass die TTS Nachricht nur max 10 Sekunden lang ist. Danach schaltet das Radio wieder ein. Sofern TTS dann noch nicht fertig ist, gibt es auch wieder Probleme und der Ton vom Radio kommt erst nach manuellem Neustart des Radios

Leinad

Niemand eine Idee? Sollte ich die Frage besser im Anfängerbereich posten?

Atze

Hallo,
das SRadio funktioniert bei mir mit 3,5er Klinke einwandfrei. (Danke für das Modul)

Jetzt möchte ich allerdings die Musik auf einen Bluetooth logitech Audio Adapter streamen. (Text2Speech ist schon umgestellt und funktioniert)

In der Konsole funktioniert folgender Befehl inc. Lautstärkenregelung:
mplayer -ao alsa:device=btlogitech -softvol http://fritz.de/livemp3

Einen Teilerfolg hab ich mit einer Änderung in der "74_StreamRadio.pm" Zeile 207

von open my $proc, '-|', "mplayer -really-quiet -nolirc -noconsolecontrols $PLString $aoString $StreamURL";
auf  open my $proc, '-|', "mplayer $aoString -nolirc $PLString $StreamURL";

erreichen können. Der Stream läuft aber ich erhalte keinen Ton.
Liegt wohl an "attr SRadio volume_command amixer cset numid=1 -- %s%%" welches ja nicht stimmt.

Die Lautstärkenregelung in der Konsole funktioniert nur mit -softvol, da das Bluetoohgerät im Mixer nicht angezeigt wird.

Vielleicht hat ja noch jemand eine Idee wie ich weiter komme.

Danke

Folgende Fehler werden gezeigt:
2015.08.05 16:50:50 1: PERL WARNING: Odd number of elements in hash assignment at /opt/fhem/FHEM/74_StreamRadio.pm line 227, <$proc> line 17.
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Home directory / not ours.
W: [pulseaudio] core-util.c: Failed to open configuration file '//.pulse//daemon.conf': Permission denied
W: [pulseaudio] daemon-conf.c: Failed to open configuration file: Permission denied
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
Home directory / not ours.
W: [pulseaudio] core-util.c: Failed to open configuration file '//.pulse//daemon.conf': Permission denied
W: [pulseaudio] daemon-conf.c: Failed to open configuration file: Permission denied


Fhem
# Stream Radio:
define SRadio StreamRadio /opt/fhem/radio/WebStreams.txt
attr SRadio aodev alsa:device=btlogitech
attr SRadio group Radio
attr SRadio room Wohnzimmer
attr SRadio telnetport 7072
attr SRadio volume_command amixer cset numid=1 -- %s%%

# Dummy für Volume- Slider
define Dum_Volume_D dummy
attr Dum_Volume_D alias Volume
attr Dum_Volume_D group Radio
attr Dum_Volume_D room Wohnzimmer
attr Dum_Volume_D setList state:slider,0,1,100
attr Dum_Volume_D webCmd state

# Notify für Volume- Slider
define Func_Volume_N notify Dum_Volume_D {\
my $vol = Value("Dum_Volume_D");;\
fhem "set SRadio VOLUME $vol";;\
}
attr Func_Volume_N group Radio
attr Func_Volume_N room Wohnzimmer

# Bei TTS- Meldung Radio unterbrechen, Lautstärke hochfahren,
# nach Ansage Radio wieder einschalten, Lautstärke auf alten Wert fahren.
define Func_VolAut_N notify MyTTS { \
\
  my $Radio = (Value("SRadio"));;\
  my $Station = ReadingsVal("SRadio", "StreamURL", "");;\
  my $Old_Vol = (OldValue("Dum_Volume_D"));;\
\
  if ($Radio eq "playing") { \
        fhem("set SRadio STOP ;; set Dum_Volume_D 99");;\
        fhem("define Radio_Comeback_A at +00:00:10 set SRadio PLAY $Station;;;; set Dum_Volume_D $Old_Vol");;\
  } \
  if ($Radio eq "stopped") { \
        fhem("set Dum_Volume_D 99");;\
    fhem("define Vol_Res_A at +00:00:10 set Dum_Volume_D $Old_Vol");;\
  } \
}
attr Func_VolAut_N group Radio
attr Func_VolAut_N room Wohnzimmer


/etc/asound.conf
pcm.btlogitech {
    type plug
    slave {
        pcm {
            type bluetooth
            device C8:84:47:XX:XX:XX
            profile "auto"
        }
    }

    hint {
        show on
        description "BT Logitech"
    }
}

ctl.btlogitech {
  type bluetooth
}



aplay -L
pi@fhem ~ $ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    Playback/recording through the PulseAudio sound server
btlogitech
    BT Logitech
sysdefault:CARD=ALSA
    bcm2835 ALSA, bcm2835 ALSA
    Default Audio Device


aplay -l
pi@fhem ~ $ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
  Sub-Geräte: 8/8
  Sub-Gerät #0: subdevice #0
  Sub-Gerät #1: subdevice #1
  Sub-Gerät #2: subdevice #2
  Sub-Gerät #3: subdevice #3
  Sub-Gerät #4: subdevice #4
  Sub-Gerät #5: subdevice #5
  Sub-Gerät #6: subdevice #6
  Sub-Gerät #7: subdevice #7
Karte 0: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0


mixer controls
pi@fhem ~ $ amixer controls
numid=3,iface=MIXER,name='PCM Playback Route'
numid=2,iface=MIXER,name='PCM Playback Switch'
numid=1,iface=MIXER,name='PCM Playback Volume'
numid=5,iface=PCM,name='IEC958 Playback Con Mask'
numid=4,iface=PCM,name='IEC958 Playback Default'
FHEM 5.8 , RPi 2 / CUL 3.2 / JEELINKnano - PCA301 / nanoCUL a-culfw 1.05.03
HMS: rm1002, s300th / FHT: fht8v-3, fht80tf
FS20: fs20st, fs20sm8, fs20s8m, fs20rsu, fs20rbm, fs20pce, fs20pcs, fs20ue1, fs20irp2, fs20dwt, fs20rpt-3, fs20str-2, fs20kse
IT: ITDM-250, ITLS-16, ITW-852, IT-1500
G-Data Milight

Atze

#235
die folgenden Fehler konnte ich auflösen:
ZitatW: [pulseaudio] core-util.c: Failed to open configuration file '//.pulse//daemon.conf': Permission denied
W: [pulseaudio] daemon-conf.c: Failed to open configuration file: Permission denied
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
W: [pulseaudio] core-util.c: Failed to open configuration file '//.pulse//daemon.conf': Permission denied
W: [pulseaudio] daemon-conf.c: Failed to open configuration file: Permission denied

Run pulseaudio systemwide

For some reasons is it a good thing to chose for a single pulseaudio daemon instead of one per logged in user

This is how you do it:

-add to every user on the system the groups 'pulse' and 'pulse-access'
-edit /etc/pulse/daemon.conf
      change 'deamonize = no' to 'deamonize = yes'
      change 'system-instance = no' to 'system-instance= yes'
-edit etc/default/pulseaudio
      change 'PULSEAUDIO_SYSTEM_START=0' to 'PULSEAUDIO_SYSTEM_START=1'
-delete .pulse in your home directory and do the same fore other users
-reboot the system

http://community.linuxmint.com/tutorial/view/1137

Bleibt also noch das Proplem mit dem Ton  :'(  sowie folgende Fehlermeldung:
2015.08.05 19:18:08 1: PERL WARNING: Odd number of elements in hash assignment at /opt/fhem/FHEM/74_StreamRadio.pm line 227, <$proc> line 17.
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Home directory / not ours.
FHEM 5.8 , RPi 2 / CUL 3.2 / JEELINKnano - PCA301 / nanoCUL a-culfw 1.05.03
HMS: rm1002, s300th / FHT: fht8v-3, fht80tf
FS20: fs20st, fs20sm8, fs20s8m, fs20rsu, fs20rbm, fs20pce, fs20pcs, fs20ue1, fs20irp2, fs20dwt, fs20rpt-3, fs20str-2, fs20kse
IT: ITDM-250, ITLS-16, ITW-852, IT-1500
G-Data Milight

Atze

#236
Mühsam nährt sich das Eichhörnchen....

/etc/asound.conf  erweitert
pcm.btlogitech_softvol
{
   type softvol
   slave.pcm "btlogitech"
   control.name "BTMixer"
   control.card 0
}


amixer controls zeigt jetzt auch den neuen Mixer an
pi@fhem ~ $ amixer controls
numid=3,iface=MIXER,name='PCM Playback Route'
numid=2,iface=MIXER,name='PCM Playback Switch'
numid=1,iface=MIXER,name='PCM Playback Volume'
numid=7,iface=MIXER,name='BTMixer'
numid=5,iface=PCM,name='IEC958 Playback Con Mask'
numid=4,iface=PCM,name='IEC958 Playback Default'


mit "attr SRadio volume_command amixer -D hw:0 cset numid=7 -- %s%%" hab ich jetzt im Fhem zugriff auf die Lautstärke über Bluetooth.

Leider immer noch kein Ton im Fhem mittels Streamradio

UPDATE:
Endlich, es funktioniert nun endlich über Bluetooth

die 74_StreamRadio abermals angepasst.
open my $proc, '-|', "mplayer -ao alsa:device=btlogitech_softvol -quiet -nolirc -noconsolecontrols $PLString $StreamURL";

warum auch immer füllt sich der String "$aoString" nicht richtig.

Ich hab zwar noch kleine Fehlermeldungen im Fhem aber wirklich stören tut's net.
2015.08.06 18:32:00 1: PERL WARNING: Odd number of elements in hash assignment at /opt/fhem/FHEM/74_StreamRadio.pm line 226, <$proc> line 17.
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Home directory / not ours.

FHEM 5.8 , RPi 2 / CUL 3.2 / JEELINKnano - PCA301 / nanoCUL a-culfw 1.05.03
HMS: rm1002, s300th / FHT: fht8v-3, fht80tf
FS20: fs20st, fs20sm8, fs20s8m, fs20rsu, fs20rbm, fs20pce, fs20pcs, fs20ue1, fs20irp2, fs20dwt, fs20rpt-3, fs20str-2, fs20kse
IT: ITDM-250, ITLS-16, ITW-852, IT-1500
G-Data Milight

Leinad

#237
Mein Problem ist gelöst. Wahrscheinlich nciht 100% sinnvoll, aber es geht.

Wenn man im Wiki Code die Zeile:

fhem("define Radio_Comeback_A at +00:00:10 set SRadio PLAY $Station;;;; set Dum_Volume_D $Old_Vol");;\

aufteilt in zwei Befehle:

fhem("define Radio_Comeback_A at +00:00:10 set SRadio PLAY $Station");
fhem("define Radio_Volume_Comeback_A +00:00:15 set Dum_Volume_D $Old_Vol");


funktioniert es einwandfrei. Scheinbar hat FHEM Probleme mehrere Befehle gleichzeitig auszuführen?

krikan

Zitat von: Leinad am 08 August 2015, 11:27:23
Scheinbar hat FHEM Probleme mehrere Befehle gleichzeitig auszuführen?
Nein, hat FHEM nicht. Die Auswirkungen der unterschiedlichen Anzahl von Semikola in Deinem fhem.cfg-Code für Direktediterer

Zitatfhem("define Radio_Comeback_A at +00:00:10 set SRadio PLAY $Station;;;; set Dum_Volume_D $Old_Vol");;\
findest Du an einem Beispiel erklärt in http://www.fhemwiki.de/wiki/Escapen_in_Perlbefehlen.


Leinad

Bingo... das wars... danke!