[Exercise] Radio im WF

Mittlerweile gibt es tausende Web-Radios und entsprechend viele Programme dazu - Auswahl:
Streaming directory – streams & radios
Radio Web TV Webradio Musik Radiosender Online
Last.fm - Höre kostenlos Musik mit Internetradio und dem größten Musikkatalog online
Radio, Webradio und Online Radio im Internet: radio.de - einfach hören.
usw.
Im Folgenden wird erklärt, wie man seine „Lieblingsradio-Stationen“ über das WebFront abspielt.

  1. Kategorie „Radio“ anlegen sowie: ein „Dummy Modul“, Skript und Integer Variable mit dem Namen „Volume“ (siehe Bild)
  2. Skript zur Änderung der Lautstärke (Optionen: Versteckt):
$id_sound = 35352 /*[Audio Video IR\Media Player Teufel]*/;
SetValue(57434 /*[Radio\Volume\Volume]*/ , $IPS_VALUE);
WAC_SetVolume($id_sound,  $IPS_VALUE);

wobei „$IPS_VALUE“ den Wert enthält, auf den im WF zwischen 0% und 100% geklickt wurde.
Mit „SetValue“ wird der Wert im WF wieder aktualisiert angezeigt und
„WAC_SetVolume“ ist der eigentliche Befehl zur Änderung der Lautstärke des jeweiligen „Media Player“ Moduls.
Tipp: die %-Angaben beziehen sich auf eingestellte Gesamtlautstärke.
Bei Bedarf kann man hier einen Faktor verwenden: WAC_SetVolume($id_sound, $IPS_VALUE / 2)
3. zuweisen eines Variablen-Profil: „~Volume“ [0-100%, Schrittweite 10], „Eigne Aktion“: o.g. Skript
4. anlegen beliebiger Skripte für die einzelnen Stationen. Die URL bekommt man bei den o.g. Seiten oder man sieht sich die „Link-Eigenschafen“ der jeweiligen „Play“, „Live“, „M2U“ Buttons genauer an…

$id_sound = 35352 /*[Audio Video IR\Media Player Teufel]*/;
WAC_PlayFile($id_sound,"http://lounge-high.rautemusik.fm/listen.pls");
  1. natürlich darf der Stop-Befehl nicht fehlen:
$id_sound = 35352 /*[Audio Video IR\Media Player Teufel]*/;
WAC_Stop($id_sound);
  1. zum Schluss die Radio-Stationen nach belieben sortieren: „Objekt einsortieren“
  2. Tipp: wer möchte kann noch eine String-Variable mit entsprechenden Variablenprofil anlegen und den aktuellen Sender anzeigen.
WAC_PlayFile($id_sound, xxxx
SetValue(18904  /*[Radio\Volume\Station]*/, "SuperTruperStation");

oder besser:

$event = IPS_GetObject($IPS_SELF);
$name = $event['ObjectName'];
SetValue(18904  /*[Radio\Volume\Station]*/, "aktuell: ". $name);

und bei Stop:

$name = GetValue(18904);
$pos = strpos($name, ":");
$name = substr($name, $pos+2, strlen($name));
SetValue(18904 /*[Radio\Volume\Station]*/ , "gestoppt: ". $name);


  1. Extra-Tipp: möchte man den zuletzt gespielten Sender erneut starten - hier das Skript dazu (es benötigt die o.g. String-Variable!):
$name = GetValue(18904 /*[Radio\Volume\Station]*/);
//echo $name;
$pos = strpos($name, ":");
$name = substr($name, $pos+2, strlen($name));
//echo $name;

$ScriptID = @IPS_GetScriptIDByName($name, 20951 /*[Radio]*/);
if ($ScriptID == 0){
  echo "Skript nicht gefunden!";
}else{
  //echo "Die Skript-ID lautet: ". $ScriptID;
  IPS_RunScript($ScriptID);
}

  1. Bonus-Tipp: wenn zwischenzeitlich das Media-Player Modul z.B. für Meldungen verwendet wird, kann nachfolgendes Skript hinzugefügt werden um den letzten Radiosender wieder automatisch zu starten.
    (Trigger: OnChange > Status > Media Player / es benötigt ebenfalls die o.g. String-Variable!)
// STOP = 3 / Play = 1
$status = GetValue(49899 /*[Audio Video IR\Media Player Teufel\Status]*/ );
if ($status == 3){
   $name = GetValue(18904 /*[Radio\Volume\Station]*/);
	$pos = strpos($name, "aktuell");
	if ($pos !== False){
	   $volume = GetValue(57434 /*[Radio\Volume\Volume]*/);
	   $id_sound = 35352 /*[Audio Video IR\Media Player Teufel]*/;
	   WAC_SetVolume($id_sound, $volume/2);
	   IPS_RunScript(53032 /*[Radio\Volume\letzter Sender erneut]*/ );
 	}
}

[b]SWF - Film[/b]

MST

tree_webradio.png

Hi Steiner

Funktioniert super :slight_smile:

Wie bekomme ich nun einen Client (2 Touch) dazu das er die Musik dort abspielt.

Hast Du eine Idee oder ein Beispiel?

Hallo Andy,

viele Grüße an den heißen Wüstensand - bei uns wird es langsam Herbst :mad:

Wir hoffen, dass es zukünftig möglich sein wird die IP-Adr. des WF herauszubekommen.
Dadurch ist dann eine raumbezogene Musiksteuerung möglich.

MST

Ich glaube Andy´s Frage war, wie bekommt er die Musik zum 2. Client.

Ich habe es mit einer Funkbrücke zwischen Server und dem Raum in dem ich den Sound benötige gemacht. Problem. Je Raum den Du beschallen möchtest ein komplettes Set.

Hallo Werner

Du hast recht mit Deiner Möglichkeit aber Michael auch.

Da ja andere Clients auch am Netzwerk hängen und somit einen Zugriff auf’s Internet haben, wäre es schön wenn der Client streamt und nicht der Server.

Wenn der Server also wüsste welcher Client (IP Adresse) gerade den Radiostream anfordert, dann müsste es auch möglich sein dem Client nun mitzuteilen das er selber aus dem Internet streamen soll.

Lassen wir uns überraschen wann dies dann mal möglich sein wird.

Spätsommerliche 39 Grad warme Grüsse aus Dubai.

Wie man IP und Host bekommt steht doch in der Doku: Systemvariablen - IP-Symcon :: Automatisierungssoftware (ganz unten).

Jetzt fehlt eigentlich nur noch ein Modul mit dem man einen externen WMP fernbedienen kann.

Ich glaube das wäre der Renner.

Hallo Steiner

Meinst Du, Du koenntest mal posten wie Dein Script in Zusammenhang mit der neuen Systemvariablen $REMOTE_ADDR aussehen wuerde.

Wenn ich es richtig verstanden habe wuerde durch die neue Systemvariable die Moeglichkeit bestehen auf dem Client zu streamen, der die Anforderung geschickt hat.

Stehe momentan absolut auf dem Schlauch wie ich das einsetzen koennte oder es aussehen muss.

Ich denke waere fuer alle und nicht nur die Wueste interessant.

Das $REMOTE_ADDR ermöglicht doch „nur“ die Erkennung des Clients, auf dem das Frontend läuft. D.h. nicht, dass du streamen kannst. Dafür benötigst du auch auf dem Client eine IPS-Installation.

Hallo Ralf

Wenn ich Steiner richtig verstanden habe

Wir hoffen, dass es zukünftig möglich sein wird die IP-Adr. des WF herauszubekommen.
Dadurch ist dann eine raumbezogene Musiksteuerung möglich.

würde man ja durch die neue Variable nun die IP Adresse des WF herausbekommen.

Ich denke, du und Michael reden aneinander vorbei ;).

Audio-Streamen ist mit IPS nicht auf Clients möglich.

Wenn du z.B. am Server mehrere Soundkarten hast und in die einzelnen Räume Lautsprecher legst und dort ein Frontend hast, kann dein Script entscheiden, welcher Raum/Frontend bedient wurde und am Server die entsprechende Soundkarte ansteuern.

Hallo Ralf

Vielleicht zum besseren Verständnis. Ich rede zur Zeit nicht über MP3 oder ähnlich, sondern nur über Webradio.

In der 2.0 und dem Dashboard habe ich es so gelöst, dass ich die verschiedenen Radiosender als Applet in einer html Datei aufrufe. Diese html Dateien liegen natürlich auf jedem Client.

Drücke ich nun den entsprechenden Button im Designer fängt der Client an aus dem Internet zu streamen. Nachteil ist das jeder Client oder Server die Datei aufruft und anfängt zu streamen.

Da ja jeder Client Zugang zum Internet hat, muss es ja irgendwie möglich sein dem Client mitzuteilen das er selber anfangen soll zu streamen.

Ich müsste ja bloss dem Server mitteilen von welchem Client die Anforderung kommt und quasi den lokalen Media Player starten um zum streamen zu überzeugen.

Aber vielleicht geht es ja wirklich nicht mit Boardmitteln. Frage mich dann bloss warum es anscheinend mit Sonos funktioniert oder Phillips WAC.

Hallo,
ich möchte das Thema noch einmal hochholen.
Ich beabsichtige einen TabletPC als Webfrontbedienung in der Küche einzubauen.
Was mir jetzt noch fehlt ist die Möglichkeit von Webfront aus auf diesem Rechner das Internetradio zu starten.
Gibt es einen Player, den man über das Netzwerk mit einfachen Befehlen fernsteuern kann? Bei Winamp geht das meines Wissens nach nur vom gleichen Rechner oder über GUIs.

Gruß
Klaus

Keiner eine Idee?

Eine Frage zu dem Punkt:
Tipp: wer möchte kann noch eine String-Variable mit entsprechenden Variablenprofil anlegen und den aktuellen Sender anzeigen

Ich bin grad am tüfteln wie ich das mit dem aktuellen Sender hin bekomme?
Hab folgendes gemacht:

*Den Media Player von IPS genommen.

*Für jeden Sender ein eigens Skript das wie folgt aussieht:

<?
$id_sound = 24555 /[Web Radio\Web Radio]/;

WAC_ClearPlaylist($id_sound);
WAC_PlayFile(24555 /[Web Radio\Web Radio]/ ,„http://www.surfmusik.de/m3u/antenne-vorarlberg-partymix-dsl,11256.m3u“);
WAC_Play ($id_sound);
?>

*Eine Variable hinzugefügt zum Mediaplayer mit „Sender“ Typ hab ich Srting ausgewählt.
Nur komm ich nicht weiter wie ich die Scripte der Sender so dort hinzufüge das ich dann den aktuellen Sender habe???

Danke