[Neues Modul] StreamRadio

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

Vorheriges Thema - Nächstes Thema

fiedel

Der Ersteller des Threads ist leider nicht mehr im Forum aktiv und somit kann niemand den ersten Post ändern. Ja, schade - so wie dir wird es sicher vielen gehen.

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

Markus

Du könntest einen neuen thread eröffnen und von hier verlinken dann wäre dieses Problem vom Tisch?
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Von-XS1-Nach-FHEM

#212
Warum kann der Admin das hier nicht anderen (die erste Beitrag), der hat doch die Berechtigung?!

Puschel74

Zitat von: Von-XS1-Nach-FHEM am 15 März 2015, 10:10:18
Warum kann der Admin das hier nicht anderen (die erste Beitrag), der hat doch die Berechtigung?!
Dann würde ich den Admin mal bitten den Owner zu ändern (so er das kann).
So langweilig ist es den Admins nicht das sie hier ständig alle Beiträge anpassen und auf Änderungen achten.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Von-XS1-Nach-FHEM


Von-XS1-Nach-FHEM

#215
Andere Frage:

Wenn ich wahrend ein Radio Stream ein TTS Aussprache abspiel geht mein Volume erst aus was gut ist aber danach geht es immer wieder nach 99 obwohl ich diese ganze Datei ins FHEM habe:

Zitat# 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 Radio

Hier die Daten nach Verbose 5:

Zitatmy $vol = Value("Dum_Volume_D");;
fhem "set SRadio VOLUME $vol";;
}
2015.03.15 14:01:40 5: Cmd: >{
my $vol = Value("Dum_Volume_D");
fhem "set SRadio VOLUME $vol";
}<
2015.03.15 14:01:40 5: Cmd: >set SRadio VOLUME 75<
2015.03.15 14:01:40 5: Request volume to set 75 %
2015.03.15 14:01:40 5: Real volumne to set is 75 %
2015.03.15 14:01:40 5: Using volume command =amixer cset numid=1 -- 75%
2015.03.15 14:01:40 5: Triggering SRadio (1 changes)
2015.03.15 14:01:40 5: Notify loop for SRadio VOLUME 75
2015.03.15 14:01:40 4: eventTypes: StreamRadio SRadio VOLUME 75 -> VOLUME .*
2015.03.15 14:01:40 4: eventTypes: dummy Dum_Volume_D 75 -> .*
2015.03.15 14:01:40 4: eventTypes: dummy Dum_Volume_D state: 75 -> state: .*
2015.03.15 14:01:40 5: Triggering global (1 changes)
2015.03.15 14:01:40 5: Notify loop for global DELETED Radio_Comeback_A
2015.03.15 14:01:40 5: Cmd: >{Text2Speech_Done('MyTTS|1|cache/851c1260cb459d64948896826b04c797.mp3')}<
2015.03.15 14:01:40 5: exec at command Vol_Res_A
2015.03.15 14:01:40 5: Cmd: >set Dum_Volume_D 99<
2015.03.15 14:01:40 4: dummy set Dum_Volume_D 99
2015.03.15 14:01:40 5: Triggering Dum_Volume_D (1 changes)
2015.03.15 14:01:40 5: Notify loop for Dum_Volume_D 99
2015.03.15 14:01:40 5: Triggering Func_Volume_N
2015.03.15 14:01:41 4: Func_Volume_N exec {
my $vol = Value("Dum_Volume_D");;
fhem "set SRadio VOLUME $vol";;
}
2015.03.15 14:01:41 5: Cmd: >{
my $vol = Value("Dum_Volume_D");
fhem "set SRadio VOLUME $vol";
}<
2015.03.15 14:01:41 5: Cmd: >set SRadio VOLUME 99<
2015.03.15 14:01:41 5: Request volume to set 99 %
2015.03.15 14:01:41 5: Real volumne to set is 99 %
2015.03.15 14:01:41 5: Using volume command =amixer cset numid=1 -- 99%
2015.03.15 14:01:41 5: Triggering SRadio (1 changes)
2015.03.15 14:01:41 5: Notify loop for SRadio VOLUME 99
2015.03.15 14:01:41 4: eventTypes: StreamRadio SRadio VOLUME 99 -> VOLUME .*
2015.03.15 14:01:41 4: eventTypes: dummy Dum_Volume_D 99 -> .*
2015.03.15 14:01:41 4: eventTypes: dummy Dum_Volume_D state: 99 -> state: .*
2015.03.15 14:01:41 5: Triggering global (1 changes)
2015.03.15 14:01:41 5: Notify loop for global DELETED Vol_Res_A

Was mache ich falsch?

fiedel

Sollte gehen, bei mir geht das auch noch (hab gerade ein Update gezogen). Stelle mal dein Vol. auf einen niedrigen Wert und gib dann in die Kommandozeile "save" ein. Dann nochmal probieren. Sieht so aus, als ob die 99 noch als OldValue gespeichert waren.
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

Von-XS1-Nach-FHEM

#217
Nein das hat leider nicht geholfen   :-[

http://www.fhemwiki.de/wiki/Modul_StreamRadio_Einrichtungshilfe

Aus dem Wiki habe ich diese Code benutzt:

Zitat# 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 Radio

Schaue ich zu diese zeilen:

Zitatmy $Old_Vol = (OldValue("Dum_Volume_D")); >>>>> set Dum_Volume_D 99 >>> set Dum_Volume_D $Old_Vol

Dan kann das auch nicht gut sein?? Volume wird auf 99 gesetzt und danach wieder aufgerufen, oder verstehe ich das falsch?

Haben Sie die gleiche code?

Von-XS1-Nach-FHEM

#218
Ich habe es glaube ich gefunden!

da der "Notify myTTS........hallo......." ist und nicht begrenzt ist auf ein teil der text wird das Script sehr oft aufgerufen, dementsprechend der text lang ist. Ich habe das selber gelöscht durch am ende jeder text eine ! zusetzen und nur darauf zu achten.

ZitatMyTTS:.*!.*

Also:
ZitatMyTTS:.*!.* {

  my $Radio = (Value("SRadio"));
  my $Station = ReadingsVal("SRadio", "StreamURL", "");
  my $Old_Vol = (OldValue("Dum_Volume_D"));....
.......
......
......

Hat jemand da noch ein anderes besseres Idee?

dennis_80

Hallo,

habe noch probleme bei der einrichtung vom streamradio...
folgendes hab ich gemacht:

# StreamRadio
define SRadio StreamRadio /opt/fhem/WebStreams.txt
attr SRadio telnetport 7072
# attr SRadio volume_command amixer cset numid=2 -- %s%%
attr SRadio room Radio
attr SRadio group Radio
# Dummy für Volume- Slider
define Dum_Volume_D dummy
attr Dum_Volume_D alias Volume
attr Dum_Volume_D setList state:slider,0,1,100
attr Dum_Volume_D webCmd state
attr Dum_Volume_D room Radio
attr Dum_Volume_D group Volume
# 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

logfile sagt mir
2015.03.20 12:50:03 1: PERL WARNING: Use of uninitialized value $current in index at ./FHEM/74_StreamRadio.pm line 264.
2015.03.20 12:50:03 1: PERL WARNING: Use of uninitialized value $current in string ne at ./FHEM/74_StreamRadio.pm line 264.
2015.03.20 12:50:03 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 270.
2015.03.20 12:50:12 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/74_StreamRadio.pm line 144.
2015.03.20 12:50:12 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
2015.03.20 12:50:13 1: PERL WARNING: Odd number of elements in hash assignment at ./FHEM/74_StreamRadio.pm line 225, <$proc> line 17.
2015.03.20 12:50:18 1: PERL WARNING: Use of uninitialized value $vol_in in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 127.
2015.03.20 12:50:18 1: PERL WARNING: Use of uninitialized value $vol_in in addition (+) at ./FHEM/74_StreamRadio.pm line 128.
2015.03.20 12:50:40 1: PERL WARNING: Odd number of elements in hash assignment at ./FHEM/74_StreamRadio.pm line 225, <$proc> line 32.

Radio läuft, jedoch wenn ich den slider betätige geht die lautstärke auf null und lässt sich nicht mehr ändern nur mit:
amixer cset numid=1 1
kommt wieder der ton...

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'

was muss ich noch ändern oder beachten??


danke

fiedel

Zitat# attr SRadio volume_command amixer cset numid=2 -- %s%%

Stelle das auf "numid=1" um, denn das ist dein Lautstärkeregler.
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

stefanpf

#221
Ich hätte dort noch 2-3 Korrekturvorschläge für die Variante ohne Radiotext.
Vielleicht mag die ja jemand einbauen.
Code (Zeile 107-Hintergrund: Parameter in falscher Reihenfolge) Auswählen


- if (index("://",$StreamURL)==-1) {
+ if (index($StreamURL,"://")==-1) {


Code (Zeile 207 Hintergrund: Attribut aodev wurde zwischen "-Playlist und $Streamurl positioniert") Auswählen

-    open my $proc, '-|', "mplayer -really-quiet -nolirc -noconsolecontrols $PLString $aoString $StreamURL"; #fiedel: Arg. fuer weniger Logeintraege erg.
+    open my $proc, '-|', "mplayer -really-quiet -nolirc -noconsolecontrols $aoString $PLString  $StreamURL"; #fiedel: Arg. fuer weniger Logeintraege erg.


Code (Zeile 150: Attribut aodev wurde nicht korrekt ausgelesen und nicht übernommen) Auswählen

-     my $args="$hash->{NAME}|$StreamURL|$attr{$hash->{NAME}}{telnetport}|".AttrVal($hash,"aodev","");
+     my $args="$hash->{NAME}|$StreamURL|$attr{$hash->{NAME}}{telnetport}|".AttrVal($hash->{NAME},"aodev","");


Code (Zeile 114) Auswählen

-     $found==1;
+    $found=1;



Code (Playlisten auch aus *.pls ) Auswählen

-       my $Playlist = index($StreamURL, ".m3u");
- if ($Playlist > -1){ $PLString="-playlist"};
+ if ((index($StreamURL, ".m3u") > -1) || (index($StreamURL, ".pls") > -1)) { $PLString="-playlist";}


P.S.: Habe keine Ahnung von Perl - das ist mehr durch try & error erarbeitet.

stefanpf

#222
Anbei meine (hoffentlich) etwas fehlerbereinigtere Variante der 74_StreamRadio.pm ( mit Radiotext).

- Enthalten sind die oben aufgeführten Änderungen.
- Zusätzlich werden beim Start noch nicht initialisierte Variablen abgefangen um Fehlermeldungen zu vermeiden.
- mplayer wird mit Parameter -quiet aufgerufen um das Chaos in der Konsole zu minimieren.


Änderungen sind mit dem Tagesdatum "2015-04-19"  bzw. 2015-04-22 markiert.

Vielleicht hat noch jemand eine Idee was man mit der fehlerhaften Zeichencodierung beim Radiotext machen kann.
Die Texte scheinen vom Mplayer in Latin-1 zurückgegeben zu werden, während Fhem in utf-8 läuft.

coolice

Sieht gut aus. Läuft bis jetzt ohne Fehler

balki

Hallo
Habe mich auch mal am Streamradie versucht .
Leider bekomme ich beim installieren vom mplayer folgenden fehler .

The following packages have unmet dependencies:
mplayer : Depends: libavcodec53 (>= 6:0.8.3-1~) but it is not going to be installed or
                    libavcodec-extra-53 (>= 6:0.8.16) but it is not going to be installed
           Depends: libavformat53 (>= 6:0.8.3-1~) but it is not going to be installed
           Depends: libdvdnav4 (>= 4.2.0+20120524) but it is not going to be installed
           Depends: libx264-123 but it is not installable
E: Unable to correct problems, you have held broken packages.


Nun weiss ich nicht weiter :-(

Gruß
Markus
Cubietruck
2*Raspi  Rev B
Cubietruck,
Max Thermostate , 6*Fensterkontakt ,Wandthermostat
2*Jeelink , Cul 433 , 2*Cul 868 , Fhemduino,nanoCUL