[Neues Modul] StreamRadio

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

Vorheriges Thema - Nächstes Thema

Zage

#345
Hallo,
bei mir werden die ganzen Readings nicht gesetzt, mir kommt es so vor als ob die ganzen "syswrite" befehle nicht gesetzt werden.
Die Variablen werden alle richtig gefüllt.

Hat jemand das selbe Problem oder weiß jemand woran es liegt?

Gruppen fhem: fhem : dialout mail sudo audio

Internals:
   DEF        /opt/fhem/WebStreams.txt
   NAME       SRadio
   NR         165
   PLAYLIST   /opt/fhem/WebStreams.txt
   STATE      playing
   STREAMS    Eins_Live:FFH 80er:FFH Top 40:Hitradio_FFH:Radio Fritz:Sputnik
   TYPE       StreamRadio
   Readings:
     2017-01-04 11:33:05   Bitrate
     2017-01-04 11:33:05   Genre
     2017-01-04 11:33:05   StationName
     2017-01-04 11:33:05   Stream          Sputnik
     2017-01-04 11:33:05   StreamTitle
     2017-01-04 11:33:05   StreamURL       http://www.sputnik.de/m3u/live.hi.m3u
     2017-01-04 11:33:05   state           playing
   Helper:
     Running_pid:
       abortArg
       abortFn
       arg        SRadio|http://www.sputnik.de/m3u/live.hi.m3u|7072|alsa:device=hw=/dev/snd/controlC0
       bc_pid     31
       finishFn
       fn         StreamRadio_Play
       pid        799
       timeout
Attributes:
   aodev      alsa:device=hw=/dev/snd/controlC0
   room       Radio
   telnetport 7072
   verbose    0
   volume_command amixer cset numid=1 -- %s%%

Zage

Habs selbst herausgefunden: es lag am Telnet Passwort.... wer lesen kann ;)

Aki-kun

hmm, nach viel herumprobieren läuft nun Stream auf FHEM. (nutze übrigends Version 0.6 der pm)

Was nicht funktioniert ist TabletUI.
Stream Volume: geht
Stream Stoppen: geht
Stream auswählen: geht
Stream starten: geht nicht. FHEM zeigt mir zwar an, dass der Stream angeblich läuft, tuts aber ned.
Das kommt nur über TabletUI, Wenn ich den Stream dann in Fhem änder, geht alles . . .

fhem.cfg

# Stream Radio:
define SRadio StreamRadio /opt/fhem/webstream.txt
attr SRadio group Radio
attr SRadio room Radio
attr SRadio telnetport 7072
attr SRadio volume_get_command amixer get Master | egrep -o '[0-9]+%' | head -1 | sed -e 's/%//'
attr SRadio volume_set_command amixer set Master %s%%

# Dummy für Volume- Slider
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 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 room Radio


tabletui index.html
        <header>MULTIMEDIA</header>
        <div class="container">
<div class="left">
<div data-type="select" data-device="SRadio" data-list="STREAMS" data-get="STREAM" data-set="STREAM" class="cell"></div>
<div data-type="switch" data-device="SRadio" data-set-on="PLAY" data-set-off="STOP" data-get-on="playing" data-get-off="stopped" data-icon="fa-music" data-on-color="white" class="cell"></div>

</div>
<div class="right">
<marquee><div data-type="label" data-device="SRadio" data-get="StreamTitle" class="cell big thin"></div></marquee>   
<div data-type="volume" data-device='Dum_Volume_D' data-cmd="set" data-set="VOLUME" data-get="volume" data-min="0" data-max="100" dataclass="cell"></div>
<div data-type="label" class="top-narrow-2x">Volume</div>
</div>
          </div>


Aki

Zage

#348
Habe das Modul etwas angepasst,
durch ein WebCmd (PLAY:STOP) kann ich durch "PLAY" den letzten Stream fortsetzen. Dazu habe ich ein neues Reading "LastStream" implementiert.

Ursprünglich basierte meine 74_StreamRadio von "# Version = 0.5 (gemx, Andreas Kwasnik)" da Andreas hier schon tolle arbeit geleistet hat, danke dafür ;)

define SRadio StreamRadio /opt/fhem/WebStreams.txt
attr SRadio aodev alsa:device=hw=/dev/snd/controlC0
attr SRadio room Radio
attr SRadio telnetport 7072
attr SRadio verbose 4
attr SRadio volume_command amixer cset numid=1 -- %s%%
attr SRadio webCmd PLAY:STOP


Edit: Meine FTUI - Einbindung:

       <div>
          <div data-type="select"
             data-device="SRadio"
             data-list="STREAMS"
             data-get="Stream"
             data-set="PLAY"
             class="select">
          </div>
          <div data-type="switch"
             data-device="SRadio"
data-states='["stopped","playing"]'
             data-icons='["fa-play","fa-stop"]'
             data-get-on='["stopped"]'
             data-get-off='["playing"]'
             data-set-on='["STOP"]'
             data-set-off='["PLAY"]'
data-background-colors='["white","green"]'
             >
          </div>
        </div>
<div data-type="label" data-device="SRadio" data-get="StreamTitle" class="row small"></div>
        <div data-type="slider"
          data-device='SRadio'
          data-set="VOLUME"
          data-get="Volume"
          data-min="0"
          data-max="100"
  data-color="green"
          class="row centered horizontal squareborder top-space" >
        </div>

Tobias

HI,
hast du den letzten im Wiki verlinkten Stand als Basis genommen?  Ich habe dort bzgl TabletUI einige kleine Anpassungen vorgenomen und die neue Version im Wiki verlinkt...
Bitte check das dochmal..
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Zage

#350
Hi,
ich habe mit Notepad++ (Compare) mein Modul mit der Version "Download StreamRadio- Modul mit Radiotext (etwas Fehlerbehaftet aber funktionsfähig): [2]" verglichen.
Es ist diese Version mit den zusätzlichen Anpassungen von mir.

Leider hatte sich ein Fehler ins Modul geschlichen (Zeile 194: "~"), sry dafür... hier das aktuelle Modul.

Roman_K

Hallo zusammen,

wie bekommt man das Streamradio als Multiroom Lösung konfiguriert?
Habe 2 Soundkarten, 2 mal in Fhem eingerichtet. Klappt alles so weit, nur ein ganz grosses Problem habe ich:
StreamRadio 1 stoppt wenn ich Streamradio 2 einschalte, und umgekehrt.

Anbei meine Fhem Einrichtung:

define streamradio StreamRadio /opt/fhem/WebStreams.txt
attr streamradio aodev alsa:device=hw=0
attr streamradio group Radio
attr streamradio room Radio
attr streamradio telnetport 7072
attr streamradio volume_command amixer cset numid=2 -- %s%%

define streamradio2 StreamRadio /opt/fhem/WebStreams2.txt
attr streamradio2 aodev alsa:device=hw=1
attr streamradio2 group Radio
attr streamradio2 room Radio
attr streamradio2 telnetport 7072
attr streamradio2 volume_command amixer cset numid=2 -- %s%%

Badflex

Jetzt mal eine blöde frage: wie bekomme ich den Ton aufs Tablet?
oder kann ich nur auf dem Raspberry abspielen.
Raspberry Pi, CUL868(SlowRF), FB 7490, SmartVisu, fast nur HomeMatic wenig FS20, Netatmo

Zage

Mhh, wie wärs mit Bluetooth?
Ich nutze den Rasp an meiner Anlage über Klink.

Panik

#354
Hallo,

kann mir jemand sagen, worauf diese Funktion in der 74_StreamRadio.pm wirkt:
Zeile 167: qx($cmd);
oder
Zeile 215: qx(killall mplayer);

Ich habe nämlich alles nach Wiki installiert und kann Play ausführen, jedoch Stop und Volume reagieren nicht richtig.

2017.01.26 16:58:51 1: PERL WARNING: Can't exec "killall": No such file or directory at ./FHEM/74_StreamRadio.pm line 168

Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

fremitus

Hallo zusammen,

mein Streamradio läuft soweit, nur die Lautstärke lässt sich nicht einstellen. Ich habe alle Beiträge hier gelesen und finde keine passende Lösung. Fakt ist:
Auf der Konsole läuft alles, sowohl mplayer als auch amixer. In FHEM und auch Tabletui lassen sich alle Funktionen aufrufen. Starten, Stoppen und aus der Liste auswählen geht. Nur eben die Lautstärke nicht. Ich habe dann einen mplayer Stream mit & auf der Konsole gestartet und siehe da, diesmal konnte ich in FHEM die Lautstärke einstellen....?! Nur der direkt in FHEM gestartete Stream lies sich nicht motivieren...
Ich habe auch mit - "fhem bash -c "amixer -c 0 set PCM 100%" - regeln können...und nun bin ich echt ratlos. Hier mein Config in Auszügen:

# Stream Radio:
define SRadio StreamRadio /opt/fhem/WebStreams.txt
attr SRadio group Geräte_Taster
attr SRadio icon rc_RADIO
attr SRadio room Radio
attr SRadio telnetport 7072
attr SRadio verbose 5
attr SRadio volume_command amixer cset numid=1 -- %s%%
attr SRadio webCmd PLAY:STOP


Wer hat noch eine Idee? Gruss Peer

marty29ak

attr SRadio volume_command amixer cset numid=1 -- %s%%

Probiere mal die anderen Zahlen durch. Bei mir hätte eigentlich auch numid=1 richtig sein müssen. Aber numid=3 funktioniert. Warum auch immer.
Gruß Martin

fremitus

Hallo Martin,

danke!!! Tatsächlich hilft genau das! Unglaublich. Da ist das Modul wohl buggy. Leider bin ich nicht wirklich fit in perl, ich frage aber mal jemanden, der gut programmieren kann.

Gruss Peer

Panik

Hallo,

ich möchte nochmal fragen:

bei mir klappt das Verstellen der Lautstärke und das Stoppen des StreamRadio nicht.

Es wird dieser Teil in der 74_StreamRadio.pm nicht ausgeführt:
Can't exec "killall"

Dort ist diese Funktion enthalten: qx(killall mplayer)
Auf welches weitere Modul wirkt sie sich aus?
Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

Zage

qx ist eine Perl Funktion um Systembefehle abzusetzen, sprich der wird direkt ausgeführt wie wenn du das in die Shell eingeben würdenst. In den Fall wird der Prozess (mplayer) gekillt / gestoppt.